Bash on Ubuntu on Windows でデスクトップ環境(Xfce)を動かしてみた

あまり実用的ではなかったですが,Bash on Ubuntu on Windows(BoW)にデスクトップ環境を導入することができるらしく,実際に試してみました.

この記事は,一応既にBoW を利用している人向けに書いています
BoWの導入方法などは,ここ(宣伝)ここを読むと良いと思います

wgg.hatenablog.jp
qiita.com

今回作ったもの

youtu.be


導入の流れ

  1. WindowsX Window Server をインストール & 色々設定
  2. BoWにデスクトップ環境(今回はXfce4)をインストー
  3. Xfce4を動かしてみる

1.WindowsX Window Server をインストール & 色々設定

前のBoWの記事と同様に,Xmingをインストールします
VcXsrvとかでも多分大丈夫です

Xmingの設定

  1. 起動オプションの設定
  2. XmingのWindowをアクティブにすると勝手に英字入力になる問題
1.起動オプションの設定

今回は以下のように設定しています
起動オプションの詳細はここを見てください

"C:\hogehoge\Xming.exe" :1 -clipboard -xkbmodel jp106 -xkblayout jp -dpi 100 -nodecoration

大雑把に言うと,日本語キーボードで,クリップボードWindowsと共有して,dpiが100で,フルスクリーンで,スクリーン番号が1です.
スクリーン番号はXmingを複数起動する場合,他とかぶっていなければ多分何でも大丈夫です.

-nodecoration

ですが,-multiwindowではデスクトップが表示されなかったりしたので,おそらくこれか, -fullscreenあたりが良いと思います.

2.XmingのWindowをアクティブにすると勝手に英字入力になる問題

Windowsのキーボード設定で,英字(US)キーボードをONにしていると,Xmingで表示したWindowをクリックした瞬間にUS配列に変わってしまうことがあります.
どうもXmingが特定のタイミングでUSキーボードに強制変更するようにプログラムされているみたいなので,調べたところ,実行ファイルのバイナリを書き換えることで対処できました

StirlingXming.exeを編集

Stirlingじゃなく,バイナリエディタなら多分なんでも大丈夫ですが

以下のように編集します
f:id:wgg00sh:20170602113024p:plain
編集前


f:id:wgg00sh:20170602113038p:plain
編集後

これで,今まで勝手にUSキーボードに変わっていたタイミングで,勝手にJPキーボードに変わるようになります

2.BoWにデスクトップ環境(今回はXfce4)をインストー

  1. Xfce4のインストー
  2. 起動用のbatファイルの作成
1.Xfce4のインストー

まずはXfce4をインストールします

$ sudo apt-get install xfce4-session
2.起動用のbatファイルの作成

従来のbash.exeと使い分けられるように,起動するとXfce4が開くbatをWindowsで書きます

@echo off
start /min "" "Xming.lnk"
"C:\hogehoge\bash.exe" -c 'export DISPLAY=localhost:1.0;export XMODIFIERS="@im=uim";export GTK_IM_MODULE=uim;export QT_IM_MODULE=uim; xfce4-session'
taskkill /f /im Xming.exe
export DISPLAY=localhost:1.0;

出力先のディスプレイ番号の設定です
Xmingの起動オプションで設定した :1 の部分(今回は1)と同じ数値を入れます

XMODIFIERS="@im=uim";
export GTK_IM_MODULE=uim;
export QT_IM_MODULE=uim;

開いたデスクトップ環境で日本語入力を行うための設定です
詳しくはこちらを見てください

taskkill /f /im Xming.exe

xfceが終了した直後に実行され,Xmingを終了します

Xfce4を動かしてみる

最後に,実際にインストールしたxfce4を起動してみましょう

先に作成したbatファイルを開くとbashからxfce4が起動し,Windowsから切り替わります.
ログアウトすると,bash,Xmingともに自動的に終了します
Windowsの仮想デスクトップ機能を用いれば,Windowsのデスクトップと,BoWのデスクトップを併用することもできます.

f:id:wgg00sh:20170602150200p:plain
Bash on Windows から起動したデスクトップ環境です

まとめ

正直今まで通り -multiwindow で必要な場合だけGUI表示するだけでいいような気がします...
普段と違う雰囲気で利用できますが,便利かといわれると微妙...
あと時々挙動が不安定になるかもしれません

Ubuntuでよく見かける Unityも導入できるらしいですが,容量が大きくて試すのが面倒だったのでやってません.