2022-07-26 とうとう wsl2 (Windows Subsystem for Linux 2) で emacs (GUI) が動きました。詳細を記録しておきます

食事、コンピューター、インドネシアについてのひとり言。 ときどき人類学なども。

[2022-07-26] とうとう wsl2 (Windows Subsystem for Linux 2) で emacs (GUI) が動きました。詳細を記録しておきます

一ヶ月ほど前 Lenovo Yoga 770 がやっと納品された。 ひさしぶりの重量級のマシンだ — Ryzen 7 6800U、メモリー 16GB、 ストレージが 1T、 14インチの OLED 2.8K 画面(^o^)。 なぜか発売後すぐに突然値上りしたのだが、 ぼくが買ったときはかなり安かった。 マシンは “Tweedledee” と名付けた。

いままではノート PC を買うと すぐにインストールされている Windows を潰して、 100 % Linux box にしてきた。 今回はこのようなウィンドウズ虐殺作戦は遂行しない。 じつは個人的な事情で、 Linux の伝導をする必要があるのだ。 そのために、 危険なしで Linux を導入できる(人に推薦できる)という 噂の wsl (Windows Subsystem for Linux)をインストールしてみることとした。 たぶん ChromeOS の crostini のようなものだと 思っていたのだが、 それほど簡単ではなかった。

さてさて・・・

wsl2 を Tweedledee にインストールするのは簡単だった。 役に立つサイトはいくつもあるのだろうが、 ぼくは ここ(「WindowsでWSL2を使って「完全なLinux」環境を作ろう!」) に従った。 簡単にいうと(Windows11 だから) wsl --install 一発で おしまいだ。

しばらく使っていたが、 emacs [–ぼくの使う唯一の GUI ソフトだ–]で問題がでた。 emacs からいったん離れて(たとえば terminal で ls したりして) もう一度 emacs にもどってくると、 emacs のキー入力がめちゃくちゃになるのだ — こうなると、emacs はまったく使いものにならなくなる。

そう言えば「wsl は CUI だけである」と聞いた覚えがある。 ここ(「WindowsのWSL2を使用しUbuntuのGUI環境を構築する」) とか見ると、 単にインストールしただけでは wsl2 で GUI 環境がつくれないという。 でも 「wsl2 on Windows 11 なら GUI 環境はすでに整っている」という 噂も聞いたことがある。

よく分からないので wsl には何もせずに、しばらくほうっておいた。 その間 wsl では emacs は使わず、 vim を練習していた。 これがけっこうはまる。

数週間 vim の勉強についやす。

三日ほど前、 そろそろ現実逃避をやめて emacs 問題を解決しよう・・・と決心した。 いくつかやり方があるようだ — 慣れないウィンドウズからの作業がほとんどない ここ(「WSL2+ubuntu20.04: どうやってGUI化するか」) に載っているやり方を試す。 ほとんどが Ubuntu からの作業である。 細かい手順は上記の url を見てもらおう。 大まかにいうと Ubuntu でリモートデスクトップの サーバー (xrdp) を立ち上げ、 ウィンドウズ側から 「リモートデスクトップ」というアプリ (rdp) をつかって そのサーバーに接続するというやり方だ。

ほとんど問題なく X Window のデスクトップ (ぼくは xfce4 を使った)が立ち上がった。 ChromeOS でいうと crostini ではなく、 crouton のイメージだ。 Emacs も順調である。

さて・・・

wsl で 作業する。 夜 Tweedledee をスリープさせた。 そして Tweedledee を翌日立ち上げた。 あららぁ・・・Ubuntu が真っ暗だ。 何もできない。

途方に暮れた時には Qiita 頼み。 「ありました!」 — ここ (「Xubuntu 20.04 の xrdp が認証の後、 真っ黒で接続できない場合」) に解決法が書いてあった。 pkill xfce4-session で問題解決である。

しかし、これは、言わば、Ubuntu の再起動だ。 これではまるで石器時代だ、 まるでウィンドウズだ。

きのうの夜、より良い解決法をみつけた。 (ウィンドウズ側で)rdp のアイコンをクリックして、 rdp のウィンドウを折りたたんでしまうのだ。 そうしてからマシンをスリープさせる。 そのようにしてスリープさせたマシンを 再び立ち上げると (アイコンクリックで rdp のウィンドウを開くのだが) rdp/xrdp の 「ウィンドウ真っ暗」はなくなる。 スリープ前の作業を続けられる、というわけである。

この解決策が万能なのかはまだ分からない。

[2022-07-27] 残念ながら 「タスクバーのアイコンクリックしてウィンドウを折り畳んでから スリープする」作戦は、 スリープ期間がながいとうまくいかないようだ。 きのうの夜にスリープした Tweedledee を、 24時間後に起こしたのだが、 残念ながら真っ黒の画面だった。