WSLg の解決策

WSLg をつかっていて emacs を起動した時に Ctrl-c 等が入力されてしまう現象、対処方法が分かったような気がする。

問題の根本的解決ではなくて、どういう条件の時にこの問題が生じるか?がはっきりしてきたので、その条件からはずれれば良いという消極的対処法。

どうやら X11セッションの再開時に問題がおきているようだ。セッションというのは正しい表現ではないかもしれない。具体的には Windows Terminal から emacs を起動すると、2回目に問題が生じる。

一度適当な X11 ターミナルソフトウェア(例えば xfce4-terminal 等)を動かし、その中から emacs を起動するなら問題は生じない。よくわからないが、最後の X11 Client が切れると WSLg の X11 Server は停止か休止するのだろうか?再開時になにか問題がある?

今回は X11 ターミナルソフトウェアで問題解消したわけだが、 xeyes なんかを動作させておいて Windows Terminal から複数回 emacs を起動したら・・・・・・、駄目ですね。

さらに問題が。Ctr-z が残ってしまった。emacs を起動すると瞬時に休止モードに入り、画面から消えてしまう。これはいけない。こうなってしまうと Power Shell から wsl --shutdown でWSL を終了しないと回復しない。

結局のところ正解は 「Windows Terminal を使わない」になりそう。Windows 11では(?) WSLg 環境のソフトもスタートメニューやタスクバーに登録できる。多分内部では wsl コマンドで起動しているのだと思うが、Windows の標準 GUI で普通のソフトと区別なく扱えるのは大きい。スタートメニューやタスクバーに Xfce4 Terminal を追加し、Windows Terminal の代わりに使う事にする。