餅屋LGTM

餅つきのあとの静けさ

Bash on Ubuntu on Windowsでまぁいい感じのターミナル

備忘録として

完成図

f:id:umaz1051:20170720165419g:plain
タスクバーから1発でgnome-terminalを起動できる。

なんでgnome-terminal

単純に使い慣れてるから。 Ctrl+Shift+vでペーストできたりCtrl+Shift+nで新しいウィンドウが開けたりといつもとほぼ同じショートカットが使える。
PowerShellもそんなに嫌いじゃないけどフォントがつらいので厳しい。

BoWとVcXsrvのインストー

以下がよくまとまっているので参考にやっていく。
qiita.com

gnome-terminalのインストールと日本語環境の設定

bash上で sudo apt-get install gnome-terminal uim uim-xim uim-anthy
7/22追記 日本語表示のためにフォント追加 sudo apt-get install fonts-ipafont
.bashrcに以下を追加

export LC_MESSAGES=ja_JP.UTF-8
export LC_IDENTIFICATION=ja_JP.UTF-8
export LC_COLLATE=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
export LC_MEASUREMENT=ja_JP.UTF-8
export LC_CTYPE=ja_JP.UTF-8
export LC_TIME=ja_JP.UTF-8
export LC_NAME=ja_JP.UTF-8
#
export DISPLAY=localhost:0.0
export XIM=uim
export XMODIFIERS=@im=uim
export UIM_CANDWIN_PROG=uim-candwin-gtk
#export UIM_CANDWIN_PROG=uim-candwin-qt
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
export NO_AT_BRIDGE=1

.uimを作成する

.uim

(define default-im-name 'anthy)
(define-key generic-on-key? '("Henkan_Mode" "zenkaku-hankaku" "<Control> " "<Control>\\"))
(define-key generic-off-key? '("Muhenkan" "zenkaku-hankaku" "<Control> " "<Control>\\"))
(define-key anthy-extend-segment-key? '("<Control>o"))
(define-key anthy-shrink-segment-key? '("<Control>i"))

wsl-terminalのインストー

タスクバーからgnome-terminalを起動するためにwsl-terminalをインストールする。
github.com
ここから最新のバージョンをダウンロードし、任意の場所に展開する。
7/22追記 最新版だとうまく動かないのでv0.6.9をダウンロード
open-wsl.exeを起動すると、端末が開くが、カレントディレクトリが展開した場所になってしまうので、/home/usernameがカレントディレクトリになるようopen-wsl.exeのショートカットを作成して、オプションとして-lを付与する。
f:id:umaz1051:20170720191439p:plain
ショートカットをタスクバーに設置すればタスクバーから端末が開く。

gnome-terminalが立ち上がるようにする

wsl-terminalを起動したときシェルの深度が4なので、これを利用してgnome-terminalを立ち上げる。ついでにwsl-terminalは邪魔なので閉じる。
.basrcに以下を追加

if [ $SHLVL -eq 4 ]; then
    gnome-terminal
    exit
fi

このままだとexitでwsl-terminalを閉じたときにgnome-terminalも一緒に閉じるので、バックグラウンドで常にbashを走らせておく必要がある。
そこでbash.vbsを作成する

bash.vbs

Set ws = CreateObject("Wscript.Shell")
ws.run "bash", vbhide

スタートアップの登録

起動時にいちいちbash.vbsやVcXsrvを手動で起動するのは面倒なのでスタートアップに登録する。
f:id:umaz1051:20170720200755p:plain
参考
pc-karuma.net

補足

C:\Users\usernameかC:\Users\username\hogeシンボリックリンクを貼っとくといい
ln -s /mnt/c/Users/username/hoge
7/22追記 ubuntuのバージョンが古い場合うまく動かないようなのでそのときは sudo do-release-upgrade