- 2020-05-30 更新:WSL2対応版を書きました。(この記事を読んでる前提ですので先にこちらを読んでから)
普段 Debian GNU/Linux Desktop 環境で使っている i3 window manager を Windows 10 でも使いたい。Windows Terminal も悪くないんだけど、やっぱり使い慣れている xfce4-terminal や Thunar が使いたい。そのためだけに VirtualBox 入れるのも良いのだけど、それはそれで独立環境になっちゃうので、Windows 10 そのものとシームレスに使いたい。
必要なもの
- Windows 10
- WSL (私の場合は Debian)
- VcXsrv
セットアップ
Windows 10
- WSL を有効にする
- Debian を入れる
- Microsoft Store から WSL 用 Debian を入れる
- /etc/apt/sources.list を編集する(任意): 私は Sid を使っちゃう
VcXsrv
- VcXsrvのサイトから、ダウンロードする
- ダウンロードしたインストーラからインストールする
WSL上での作業
$ sudo apt install i3 j4-dmenu-desktop xfce4-terminal thunar dunst i3pystatus uim-mozc uim-gtk3
その他、入れておきたいパッケージは適宜入れる
i3 設定
WSL のユーザホームディレクトリに .config/i3 ディレクトリを作って、そこに i3 設定ファイル config を作る。
キモは、i3 の終了方法。以下のように書く。
# Exit i3 and VcxSrv Together (Thanks for https://gist.github.com/marfillaster/85a3da3a19902236655db1232fa9d8df)
bindsym $mod+Shift+e exec "taskkill.exe /IM vcxsrv.exe /T"
i3 を終了する際に、Windows の taskkill コマンドで vcxsrv も終了させる
WSL 起動時に i3 を動かす shellscript を書く
#!/bin/bash
# .scripts/wm
export DISPLAY=:0
source ~/.bashrc
cd
i3
これを ~/.scripts/wm として保存する。
VcXsrv を起動して、WSL を実行する vbscript を書く
Set shell = CreateObject("WScript.Shell" ) |
shell.Run """C:\Program Files\VcXsrv\vcxsrv.exe"" :0 -fullscreen -wgl", 0, false |
shell.Run "debian -c "" ~/.scripts/wm""", 0, false |
これを i3wm.vbs とか名前を付けて保存する。
起動
Windows 10 で、i3wm.vbs をダブルクリックすると VcXsrv が起動して、X Client として i3 wm が動作する
- 各種設定ファイルやスクリプト類は こちら