巷で流行の WSL に移行しました。

X server

VcXsrv を試したが、4つの不具合があって常用には厳しかった。

Emacs 起動直後の画面サイズが異常である。 RandR の問題?

Emacs 入力中に突然にキー入力できなくなる。 システムトレイのアイコンをクリックすると復活する。 一日に一度くらいの再現頻度。一度再現すると X を再起動するまで簡単に再現する。

Emacs26 と double buffer extension (DBE) で何も表示されない。最新リリースでは改修されたようだ。

コピペで一部の文字が欠落する。具体的には『–』。 Bugzilla が title にその文字を入れるために、ブラウザ拡張でタイトルをクリップボードへコピーする度に困る。例えば、

というわけで Cygwin/X を使ってます。 上記の問題はなさそうです。 気になっているは high DPI でマウスカーソルが小さいことくらい。 とは言っても xterm と emacs でマウスはほぼ使用していない。

Cygwin の xlaunch をインストールすれば、拡張子 .xlaunch の関連付けをしてくれる。 xlaunch で -listen tcp を指定して起動する。 .xlaunch ファイル

あとは適当なファイル名でシェルスクリプトを書いて wsl コマンドで実行すればいいだけだが、 コンソールが表示されてしまう。 コンソールを非表示にするには XMing の The Run utility を使う方法と、 wscript の方法がある。 後者を採用した。適当なファイル start-wsl.js を作成して wscript で実行する。

var shell = new ActiveXObject("WScript.Shell");
shell.Run("wsl ~/.xstart", 0, true);

~/.xstart で初期化と xterm を起動する。

export SHELL=zsh
export DISPLAY=:0
export LIBGL_ALWAYS_INDIRECT=1
cd
xrdb ~/.Xresources
xterm -ls

APT のミラーサーバの設定

18.04 LTS (Bionic Beaver) 用 sources.list を /etc/apt/sources.list に置く。

start コマンド

Windows の start や Cygwin の cygstart のようなコマンド。下のページのものを拝借した。

Mozc の設定

Mozc の設定はコマンドで起動。

# 設定
/usr/lib/mozc/mozc_tool --mode=config_dialog
# 辞書ツール
/usr/lib/mozc/mozc_tool --mode=dictionary_tool
# 単語登録
/usr/lib/mozc/mozc_tool --mode=word_register_dialog
# 手書き文字入力
/usr/lib/mozc/mozc_tool --mode=hand_writing
# 文字パレット
/usr/lib/mozc/mozc_tool --mode=character_palette

感想

体感では Cygwin と同じくらい遅い。 ざっくり簡単にベンチマークすると Cygwin より WSL のほうがやや速いようではある。 下の続報に期待したい。

Cygwin の emacs-w32 は不安定だったが、Emacs が安定して嬉しい。 M-x view-hello-file がいい感じに多言語表示されてる。

これで脱 Cygwin できるかと思ったが、 現状は Cygwin/X を使っているので完全にはできてない。

VcXsrv の問題の調査でやたらと時間がかかった。 ひたすら検索してただけだが。 Cygwin/X がこんなによくできているなら、 emacs-w32 を使わなくても emacs-x11 で良かったんじゃないかと思えたが、今更 Cygwin に戻る気はない。

はじめてみた wscript.exe のアイコンにはかるく衝撃を受けた。

wscript.exe のアイコン

ConPTY がリリースされれば xterm はいらなくなりそうだし、VcXsrv のリリースも頻繁なので Cygwin/X も不要になるかもしれない。 WSL まわりの環境はしばらくは模索が続くだろう。

リンク