本当、もう何回もやっています。
なんかこう開発環境で Docker を使う様になってから、
(開発環境に)_Docker を使う_ なら別に NixOS にこだわらなくても良い んじゃね?
と言う感じになり、dual boot した NixOS と Windows を reboot で切り替えるのが面倒になってきた ため、 Windows 10 Pro をメインに据えて環境を再構築してました。
で、とりあえず開発環境については Ubuntu 18.04 on WSL をインストールして nixpkgs を導入 し、 そこから Experimental(LCOW)機能を有効にした Docker for Windows (Edge)へ接続 して開発をする、 と言う感じに落ち着いています。
ちなみに Terminal Emulator としては Ubuntu 18.04 on WSL 側の mlterm
を Windows 向け Xorg バイナリである VcXsrv
で表示し、
fcitx
+ fcitx-skk
で日本語入力を可能にした状態で使っています。
で、 mlterm
を起動する時には、先に VcXsrv
を起動した状態で
#!/usr/bin/env bash
cd $HOME
export DISPLAY=localhost:0.0
export GDK_SCALE=2
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
if ! pgrep fcitx ; then
fcitx -r -d
fi
export DOCKER_HOST=tcp://localhost:2375
exec $HOME/.nix-profile/bin/wcwidth-cjk -- mlterm --deffont="Myrica M" -e env SHELL=$HOME/.nix-profile/bin/zsh $HOME/.nix-profile/bin/zsh --login
と言う感じのスクリプトを経由して起動できる様にして、そのスクリプトを、
で紹介されていた WSH スクリプトを改変した、
var shell = new ActiveXObject("WScript.Shell");
var args = WScript.Arguments;
var cmd = [];
var i;
for (i = 0; i < args.length; i++) {
cmd.push(args(i));
}
shell.Run("bash --norc -c ' + cmd.join(" ") + '", 0, true);
という感じの WSH スクリプトを用いて、Windows のショートカットから、
wscript.exe C:\path\to\exec.js /path/to/launch/mlterm
と言う感じで起動しています。
なお、この mlterm
起動時のショートカットは C:\Users\nyarla\Documents\Software
という辺りに突っ込んであり、
Cortana の検索ウィンドウから mlterm
と検索するだけで起動できるため便利です。
とりあえず、こう言う感じで Windows で開発環境を整えましたって話でした。はい。