xserver
WSL
X410

X Server の X410 を試してみる


1. はじめに

WSL に最適化した Linux ディストリビューション WLinux のアナウンスの中で,X410 の情報があったので試してみました.WLinux は情報が出てくるまでしばらく様子見します.X410 が 88% オフの 580円 だったのも購入した要因の一つです.定価の 4,650 円なら試してないかもしれません.


2. X410


動作確認

Microsoft Store から X410 をインストールします.他の X Server (VcXsrv など) が動作を止めて,X410 を起動します.他の X Server などを動作させていたなら設定されていると思いますが,環境変数などの設定をします.ターミナルから下記のように設定てして,X アプリを起動します.

$ export DISPLAY=localhost:0.0

$ export LIBGL_ALWAYS_INDIRECT=1

動作に問題がなければ,上記設定を,~/.bash_profile などに追加します.


ターミナルの変更

今までは,Hyper を使っていましたが,更新もあまりされなくなった(?)ので,Linux のターミナル tilix に乗り換えます.apt を使ってインストールします.手順はここ にあります.

$ sudo -E apt install tilix

$ sudo -E apt install libsecret
$ sudo -E apt install dbus-x11

$ dbus-launch --exit-with-x11
$ tilix &

dbus-launch の起動でエラーがでたら上記サイトを参考にしてください.私は問題なく動作してので試していません.

このままでは,ログインシェルにならないので,tilix の設定から Run command as a login shell にチェックをいれます.

tilix 起動時に Vte-WARNING が表示されますが,Ubuntu の libvtePCRE2 をサポートしなくなったのが要因のようですが,私の使っている範囲では,問題がないので放っておきます.気になる方は,他のターミナルを使うのが良いかと思います.

このままだと,tilix の起動が面倒なので,ここここ を参考に設定します.

適当な場所に,bat-launcher.vbs,open-x410-wsl-shell.bat を作成します(私は,C:\Programs\bin\wsl です).


bat-launcher.vbs

If WScript.Arguments.Count <= 0 Then

WScript.Quit
End If

bat = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\")) & WScript.Arguments(0) & ".bat"
arg = ""

If WScript.Arguments.Count > 1 Then
arg = WScript.Arguments(1)
Else
arg = "c:\home\xxx"
End If

CreateObject("WScript.Shell").Run """" & bat & """ """ & arg & """", 0, False


(c:\home\xxx は, WSL のホームディレクトリです.)


open-x410-wsl-shell.bat

@echo off

REM ### Start X410 in Windowed Apps Mode. If X410 is already running in Desktop Mode,
REM ### it'll be terminated first without any warning message box.

start /B x410.exe /wm

REM ### Setup a D-Bus instance that will be shared by all X-Window apps

ubuntu1804.exe run "sh -ic 'if [ -z \"$(pidof dbus-launch)\" ]; then export DISPLAY=localhost:0.0; dbus-launch --exit-with-x11; fi;'"

REM ### Go to the selected folder path and open your terminal app

ubuntu1804.exe run "exec tilix --display=localhost:0.0 --geometry 90x90-0-0 --working-directory=\"$(wslpath '%1')\""


(tilix の引数は適当に設定してください.)

あとは,コンテキストメニュー(右クリック)の新規作成からショートカットを作成します.項目の場所に

wscript.exe "c:\Programs\bin\wsl\bat-launcher.vbs" "open-x410-wsl-shell" にして,名前を tilix にします.アイコンなどは好みに応じて変更してもいいと思います.ショートカットをダブルクリックすると,tilix が X410 経由で起動します.


不具合

少し使っていたら,pipenv shell がクラッシュしたので,tilix の不具合かなと思って検索したら ここ に引っ掛かりました.どうやら pipenv 側の不具合みたいなので,アップデートされるまでは,export PIPENV_SHELL="$SHELL" を設定してしのぎます.


Emacs

基本的には,ターミナルから起動することが多いのですが,直接起動したいときもあるので,ショートカットを作成します.bat-launcher.vbs と同じところに start-emacs.bat を作成します.


start-emacs.bat

@echo off

REM ### Start X410 in Windowed Apps Mode. If X410 is already running in Desktop Mode,
REM ### it'll be terminated first without any warning message box.

start /B x410.exe /wm

REM ### Start Emacs

ubuntu1804.exe run "cd \"$(wslpath '%1')\"; export DISPLAY=localhost:0.0; exec /bin/bash -lc emacs


tilix と同じようにショートカットを作成して,場所を wscript.exe "c:\Programs\bin\wsl\bat-launcher.vbs" "start-emacs" にします.ダブルクリックして Emacs が起動することを確認します.


3. おわりに

取り敢えずしばらく使ってみます.Windows 側のフォントも /etc/fonts/local.conf でできるようですが,もろもろ影響がでそうなので止めておきます. fontconfig の設定で X410 は関係ないですね.