Bash on Ubuntu on WindowsでGUIのアプリケーションを実行し、日本語入力するまでのまとめ

2017/04/07追記:Creators Update & Ubuntu16.04環境対応版を公開いたしました。今後はそちらをご利用ください。こちらの記事は資料として残しておきます。



※この記事はWin10 pro Build14393のUbuntu14.04環境を基準に書いています。見た目が違いますがWindows10です。
なお、開発者モードの有効化とBashのインストールまではできているものとします。


はじめに

WSLの日本語環境をcmdから実行するとテキストが崩れるので、wsl-terminalをインストールします。
2017/02/25追記:ここでopen-wsl.exeのショートカットを作成、パスの最後に -l を追加しておきましょう。ログインシェルとして扱われるために必要です。
インストールしたらOptions→Textからフォントを変更しておきましょう。細かい設定は割愛(Qiitaを参照)
※Windows Defenderにウイルスとして誤検出される場合があるそうです。うちのNortonでは大丈夫でしたが、もし誤検出された場合は検疫から復活させてスキャンの除外設定をするしかないかも。
 また、
$ sudo apt-get update
$ sudo apt-get upgrade
を実行しておきましょう。($は入力しない、以下同じく)

Xサーバーのインストール

VcXSrvをWin側にインストールし、起動しておきます。スタートアップに登録しておくとよいでしょう(Windowsに詳しくないので、方法は割愛。参考:Windows10の取扱説明書(非公式)さん)。

Xクライアントの設定

まず、Windowsのメモ帳(notepad)ではエンコードの関係で編集できないので、Linux環境で何らかのテキストエディターが使える状態にします(Ubuntu Server相当なのでgeditがない)。vimやemacsでもいいですが、どちらにも慣れていない人は先程のxサーバを利用してLeafpadを起動してしまいましょう。
$ sudo apt-get install leafpad uim uim-xim uim-anthy
$ export DISPLAY=localhost:0.0
$ leafpad
起動したら、ファイル→開くで開いたウィンドウでLinux環境のユーザーフォルダを開き、[Ctrl+H]を押して隠しファイルを表示させ、".bashrc"を起動します。
そして、ファイルの末尾に以下の文章を追加します。(引用元:tonopぶらり 様 一部変更)
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
#
if [ $SHLVL -eq 1 ]; then
  uim-xim &
fi
この設定は、簡単に言うとbash起動時に「言語を日本語に設定するよ」「localhostを通してxサーバ(この場合はvcxsrv)を使ってGUI(X)アプリケーションを表示するよ」「日本語入力に(先程インストールした)uimを使うよ」って感じのものです。

つまり、最初にleafpadを起動したときのような面倒臭い文字列を打たなくても、leafpadコマンドだけで起動できるようになります。


日本語入力の設定

続いて、同様の手順でleafpadで「.uim」を開きます。無ければ作成します。(ファイルを開くウィンドウからは作成できないので、新規作成にして保存するか、.uimを指定してleafpadを起動します)
(引用元:tonopぶらり 様)
(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"))

 これで、[半角/全角]キーで日本語入力が切り替えられるようになります。(キートップへの刻印は半角/全角だが入力する際はzenkaku-hankakuなので注意)
英語キーボードの方は、適宜自分の使いやすいキーに変更してください。

完了!


一度bash(wsl-terminal)を開き直しましょう。
$ leafpad
でleafpadが起動し、日本語入力が可能なことを確認しましょう(Windowsデスクトップ右下の表示とは連動しません。また、ユーザー辞書も連動しません。Linux側で管理しているためです)
 まだまだ進化途中のBash on Ubuntu on Windows。まだ動かないツールもたくさんありますが、そこは多目に見てあげましょう。この方法もいつまで通用するかわかりませんが、覚書程度に出しておきます。参考にさせていただいたサイト様、ありがとうございました。

おまけ

wsl-terminalに同包されているもの
  • cbwin→wsl-terminalインストールディレクトリetcフォルダのwsl-terminal.confでuse_cbwin=1に変更。bash上からwindowsの実行ファイルがある程度呼び出せるものらしいです。
  • vim.exe→wsl-terminalインストールディレクトリのvim.exeでWSL上のvim(cmd版)を直に起動できます。関連付けて使いたいときに便利です。(実装を見れば他のアプリケーションにも応用可能かもしれない。Windowsアプリケーションのように扱えれば便利だと思う)
  • run-wsl-file.exe→シェルスクリプトなどに関連付けると直にbashで開けます。
  • toolsフォルダ内add-open-wsl-here-menu.js→エクスプローラの右クリックメニューに、WSLでそのディレクトリをカレントディレクトリとしてBashを起動するメニューを追加します。イメージとしてはNautilusの「端末で開く」ですね。
vim.exeから起動したvim。扱いには慣れが必要な感じのエディタです。


コメント

このブログの人気の投稿

AndroidのWebブラウザー「Via」に感動した話

UbuntuなどのLinux上でOnedrive上のファイルを使う

Ubuntuでファミコン、ゲームボーイ、スーファミの名作をプレイ!