WSL
※以下は古いのでWSL2を参照のこと
/icons/hr.icon
saitotetsuya.iconEmacs(とSKK)がないと生きて行けないのでWSLでEmacsを動かしたい。
NTEmacs @ ウィキ WSL で Emacs を使うための設定
VcXservについては「Emacs-26系で発生するダブルバッファの問題を回避するため、1.20.1.2 以降をインストールしてください。」とのこと
WSL で Emacs 環境構築
Emacs26の起動時にウインドウサイズが小さくなる問題はGTK3のバグらしい
https://gyazo.com/d74a28948c3dcf24cbb9a848d5d08670
Windows 10 WSL (Windows Subsystem for Linux) 上のUbuntuからemacsを起動する - Qiita
こちらの方はウインドウの問題は出てない?
今までと違うのはlxdeをインストールしているのとDISPLAYの渡し方が環境変数ではなく引数なことくらい
DISPLAYの渡し方は関係ない
Windows版Xサーバで Emacs起動時の画面が小さい件、Cygwin/X では問題無い
WSL: Windows Subsystem for Linux
X ServerがないのでVcXsrv Windows X Serverを使う
普通にインストールしてスタートアップに入れて起動時に起動するようにしておく。
WSLはThinkPad T480sに入れる
ThinkPad T480sにはNVIDIA MX150というGPUが載ってる
Windows 10でLinuxプログラムを利用可能にするWSL(Windows Subsystem for Linux)をインストールする(バージョン1803対応版):Tech TIPS - @IT
saitotetsuya.iconUbuntu 18.04を入れた
saitotetsuya.iconホームディレクトリはどこにある?
%AppDataLocal%\Packages\CanonicalGroupLimited.Ubuntu18.4onWindows_(ランダムな文字列)\LocalState\rootfs\home\(ユーザ名)
saitotetsuya.iconなんかEmacsが4行くらいに縮んだりいろいろNVIDIAのGPUが認識されなかったりしたので16.04にする
saitotetsuya.iconUbuntu 16.04を入れた
Nvidia 384.59 Released with GT 1030, MX150 Support - Tips on Ubuntu
apt install nvidia-384でNVIDIA binary driver - version 384.130が入るのでMX150はサポートされてそう
code:console
$ sudo apt update
$ sudo apt upgrade -y
$ sudo add-apt-repository ppa:kelleyk/emacs
$ sudo apt update
$ sudo apt install -y language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF-8
$ sudo dpkg-reconfigure tzdata # タイムゾーンの変更をする
$ sudo at install fontconfig
$ mkdir -p ~/.local/share/fonts
$ ln -s /mnt/c/Windows/Fonts ~/.local/share/fonts/windows
$ sudo fc-cache -vf
$ sudo apt install -y nvidia-384 nvidia-384-dev
$ sudo apt install -y x11-apps x11-utils x11-xserver-utils
$ sudo nvidia-xconfig
$ DISPLAY=:0 emacs26 # 無事起動
~/.emacs.d/init.elに以下を入れておかないとリサイズしても再描画されない問題があった
(add-to-list 'default-frame-alist '(inhibit-double-buffering . t))
~/.emacs.d/init.elに以下を入れておく
code:~/.emacs.d/init.el
;; VcXsrv環境(WSL)でEmacs26を動かすときはダブルバッファリングをオフにする
(when (and (file-exists-p "/proc/sys/fs/binfmt_misc/WSLInterop")
(>= emacs-major-version 26))
(add-to-list 'default-frame-alist '(inhibit-double-buffering . t)))
WSL環境にいるかを判別する方法は?
WSL かどうかを判別する | もやもやプログラミング2
saitotetsuya.icon/proc/sys/fs/binfmt_misc/WSLInteropが存在すればWSLが一番楽そう
saitotetsuya.iconbashからWindowsバイナリを実行できるかどうかの設定らしい。
コンソールを経由せずにGUI版のEmacsを起動する
code:emacs.bat
@echo off
bash -c "DISPLAY=:0 nohup emacs > /dev/null 2>&1 & disown"
このバッチファイルをタスクバーに入れたくても入らない
ショートカットを作って,リンク先をcmd.exeにしてしまえいばいい。
リンク先:C:\Windows\System32\cmd.exe\cmd.exe /c emacs.bat
これだとショートカットを押すとアイコンが2つになる
タスクバーにピン留めをすると同じアイコンが 2 つ表示される
saitotetsuya.iconWSLのコマンドにAppIDが振られていなくて,ショートカットには振られているので2つになるようだ
saitotetsuya.icon特に実害はないので放置
これだと起動しないことがある #2018/07/27
saitotetsuya.iconEmacsを一度起動するとそれ以降は大丈夫になる。原因を探してるところ
参考にしたページ
Share Environment Vars between WSL and Windows – Windows Command Line Tools For Developers
Windows interoperability with Linux | Microsoft Docs
WSL の 覚書(+ ホームディレクトリの変更) - Qiita
WSL で emacs を使うための設定 - NTEmacs @ ウィキ - アットウィキ
Emacs: Windowsでやっていく2017 | 葉月夜堂
#Windows #Linux