本当、もう何回もやっています。
なんかこう開発環境で 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
と言う感じのスクリプトを経由して起動できる様にして、そのスクリプトを、
Windows Subsystem for Linux + X Window を 1.024 倍くらい使いこなすための方法 - Qiita
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 で開発環境を整えましたって話でした。はい。