Bash on Windows (以下BoW) は事実上CUIのみのUbuntuなので, GUIアプリは使えない訳です. 大抵はそれで困らないけども, 科学計算の文脈では計算結果をgnuplotなりPythonなりでグラフにしたいので, フラストレーションが溜まります. それを解決する話.
1. とりあえずGUIを使えるようにする
1. VcXsrvをインストール: https://sourceforge.net/projects/vcxsrv/ からインストーラを落としてきて, いつも通り進めるだけです.
2. VcXsrvを起動 (いろいろ聞かれるかもしれませんがデフォルトでいいです)
3. BoWを起動して次のコマンドを実行
$ export DISPLAY=localhost:0.0
2. gnuplotでグラフ描画
以下の操作は上に続けて行ってください (BoWを再起動した場合は上の3をもう一度実行する必要があります. 第3節参照).
1. gnuplotをインストール
$ sudo apt install gnuplot5※単なるgnuplotをインストールするとgnuplot 4.6が入りますが, gnuplot 5.0を使いましょう.
2. gnuplotを起動
$ gnuplot
3. グラフを描いてみる
> plot sin(x)
4. 念のため. gnuplotを抜けてbashに戻るには
> qまたは
quit
またはexit
を実行します.
5. デフォルトのターミナルをQtからwxtに変更する方法. まずgnuplotを起動した状態で
> show loadpathを実行してgnuplotrcの場所を確認します. 私の場合,
/usr/share/gnuplot5/gnuplot/5.0
でした.
そこで (gnuplotを抜けてから) このディレクトリに移動すると, gnuplotrcが見つかります.
$ cd /usr/share/gnuplot5/gnuplot/5.0 $ ls gnuplotrc ... (他は省略しました)そこで任意のエディタでこのファイルを開き, 任意の行 (最下段に加えるのがわかりやすいと思います) に
set terminal wxt
と書き足します.
その際にsudo
を用いて管理者としてエディタを起動しないと編集できません.
3. BoW起動時に自動的にGUIを使えるようにする
1. 既に指摘したように, 現状ではBoWを再起動すると毎回
$ export DISPLAY=localhost:0.0を実行しないとGUIが使えません. これを回避して自動化するには, ~/.bashrcに
export DISPLAY=localhost:0.0と書き足せばよいです.
2. Win10をシャットダウンするとVcXsrvも一緒に終了します. 従って次回Win10起動時には再びVcXsrvを起動する手間がかかります. これも回避できて, Win10のスタートアップにVcXsrvへのショートカットを登録しておけばよいのです. 具体的には, ディレクトリ
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupにvcxsrv.exeへのショートカットを配置するだけです. VcXsrvインストール時にデスクトップやスタートメニューにショートカットを設置していたら, それをコピーするのが楽です.
参考文献
コメント
コメントを投稿