カラクリスタ・ライフ

『輝かしい青春』なんて失かったヒトの日記です

普段使いの環境を Windows 10 Pro に統一した

本当、もう何回もやっています。


なんかこう開発環境で 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 で開発環境を整えましたって話でした。はい。