メモ@inudaisho

君見ずや出版 / 興味次第の調べ物置き場

BashOnWindows(WSL)のGUIの日本語表示

追記(2017/12)
今の環境は

ターミナル GitHub - mintty/wsltty: Mintty as a terminal for Bash on Ubuntu on Windows / WSL
Xサーバ VcXsrv Windows X Server download : SourceForge.net

です。



 Windows10 の一周年記念アップデートの目玉ということで早速 bash を走らせて遊んでみた。Windows10 が用意してるターミナルはやはり後方互換性のうんこ ShiftJIS のローカルな壁があるのかしらんがなんかおかしかったが、ネット上の先学の成果に従い、ConEmu いれたらだいたい解決した。Windows 側の IME が使えるのは非常によい。Windows の手書き入力は面倒くさい漢字を入れるのに非常に便利だからだ。まぁしかしそれはターミナルを入力対象とした場合の話だ。
 自分程度の利用ではGUIが使えた方がいい。たとえば display くらい使えたら便利だ。しかし Windows10 の方では X に対応する気はないらしい。黒い箱でも使ってろということでまぁ正しいのかもしれないが絵くらい見れた方がいい。ここでも先学の成果に従い、適当に Xming という Windows 上で動く X server をいれたら絵が出るようになった。便利だ。ここでも Xming-font をいれておけば日本語表示に問題がないらしい。ということだったが、Gimp など入れて動かしてみると日本語が文字化けする。うーむ? いろいろやってみると gtk 周りが日本語表示できてないだけのようだ。xterm で vim をつかって日本語など書いてあるファイルをみるとちゃんと見れてる。
 ちゃんと Xming のフォントは入ってるのだからおそらく Xminggtk の問題だろうということで探すとこれも事例があって、それによると unifont をいれる...とにかく何でもいいから日本語フォントを入れておけばよいらしい。なるほど。仕組みとしてはこうなのかな?

ConEmu + bash + vim ConEmu が Windows のフォントをつかって描画
Xming + xterm + bash + vim XmingXming のフォントをつかって描画
Xming + gtkアプリ gtkUbuntu 側のフォントをつかって描画し Xming に送信
Xming は画像として表示してるだけ

 ならばだ。わざわざ unifont など入れなくても Windows10 に入ってる Windows フォントをつかえばよいのではなかろうか。ということで「デュアルブートしてるマシンで Windows フォントを使いたい」事例を探すとこれも見付かった。Sリンクをはってフォントキャッシュの再構築させればよいらしい。具体的にはこんな感じ。

sudo ln -s  /mnt/c/Windows/Fonts /usr/share/fonts/WindowsFonts
sudo fc-cache -fv

 ただし ConEmu は Windows アプリなので Windows 側の IME の入力が渡るようになっているが、そこから動かした GUI アプリには WindowsIME の入力が渡らない。Gimp を動かして絵でも書いて源真ゴシックの極太な字をいれようとしても日本語が渡らないということだ。せっかく Windows 側に入っているフォントが使えるようになったのに残念なことだ。まぁ Ubuntu の方の IME を動かせばよいらしいが Windows と二重になるのでなんかいやだ。結局環境が二個になるのなら仮想マシンの方が作業中の状態を保存できる分マシかもしれない。GUIでの日本語入力が必要な処理は Windows 側でやればよいだけの話であるが。

 これは bash から動かした gimpWindows から動かした gimp を同時に並べた画像。手前が bash から動かしたもの。背景のインド人は壁紙。




  • Windows10のアップグレードインストールで20G近く空きがあるのに容量が足りないといわれたとき、ISOだけ落としてそれから実行させたらできる。

下手に文章かいてもダラダラしてすっきりしないので箇条書きで書いたほうがいいかもしれん