仮想環境のUbuntuが重すぎる

Ubuntu16.04をHyper-V環境に入れて、openboxに切り替えたのですがxtermのvimで日本語入力の挙動が安定していなくてどうしようもない状態なので、Debian8.7+twmの環境をひとまず用意しました。

Debianのインストール

https://www.debian.org/distrib/ から 64ビット PC netinst.isoをダウンロードして、デスクトップ環境をインストールしない状態でCUIのみのインストールにしました。後でインストールも可能ですが、SSHサーバはこの時に有効にしました。Windows10のHyper-Vにインストールする場合は、http://www.lowefamily.com.au/2016/08/05/how-to-run-debian-on-hyper-v/が参考になります。

マルチメディア

debianは初期設定でロイヤリティーフリーなので、マルチメディア関係を有効にするために、debian-multimediaのリポジトリを追加しました。apt-get install deb-multimedia-keyringが必要になると思います。

最小のX環境構成

https://www.xmisao.com/2014/01/16/debian-initial-settings.html

X環境を用意するには、xserver-xorgをインストールします。xinitコマンドとそのフロントエンドスクリプトのstartxを実行するためにxinitをインストールします。ウィンドウマネージャーは、twmをインストールします。X標準なのでxserver-xorgとともにインストールされると思ったのですが別途必要でした。x11-appsはxclockなどです。とりあえずxterm以外も動作確認できるようにインストールしました。xclock -d -update 1&で起動したら漢字の表記も問題ありませんでした。xtermは、xserver-xorgと同時にインストールされるので、個別にapt-getする必要はありません。x11-xserver-utilsをインストールするとxrdbコマンドが使えるようになります。

情報の整理

GNOMEやKDEやopenboxやtwmはXウィンドウマネージャーと言います。これが画面の見た目を左右します。もうひとつ重要な概念としてXディスプレイマネージャーというがあります。これは単純にGUIのログイン画面です。最もシンプルなのはX11ができたころからのxdmがあります。GNOME環境だとgdmです。

DebianをCUIの構成でインストールすると、グラフィックなログイン画面(Xディスプレイマネージャー)を使わず、CUIでログインして、startxコマンドでGUI環境を起動することも可能です。私のXの最小構成もXディスプレイマネージャーをインストールしていません。(apt-get install gdmで簡単にインストールできます。)

initxとstartxとxinitrcの関係

Xの最小構成の場合、WindowsやOSXなどのように優しくありません。単純にstartxをするとXが立ち上がりますが、何も表示されず何も動かせない状態になり、他の環境からSSHで接続してkillするなどが必要になります。なのでinitxとそれを呼び出すstartxシェルスクリプトをこの機会にすこし調べてみるとよいです。

initxの全体の設定ファイルは、/etc/X11/xinit/xinitrcになります。見てもらえば分かるように/etc/X11/Xsessionを読み込む以外は何も書かれていません。そのためstartxやinitxをやると、GUI画面にはなるけど真っ黒な状態で何もできなくなってしまいます。

GNOMEやKDEのようにやさしくはありませんが、ユーザー用の数行の設定ファイルを書けばよいだけです。

ユーザー用の.xinitrcを作成

startxはシェルスクリプトで内部でinitxを呼び出します。initxのユーザー単位の設定ファイルは、$HOME/.xinitrcになります。とりあえず以下をコピペして使えばよいです。

一行目のユーザーの.Xresourcesを読み込んでデータベースを更新します。まだ.Xresourcesを使ってませんが、ここにxterm端末エミュレータのフォント設定などを書き込みます。.Xresourcesをすぐに反映したい場合は、以下のコマンドで出来るようです。ですが私の場合は以下のコマンドがうまくいかない場合があるので、ログアウト・再ログインをしています。

二行目は、xtermを起動しています。 -geometry +X座標+y座標で起動します。三行目でexecコマンドでウィンドウマネージャーを起動します。

GUI(twm)の停止の仕方

GNOMEやKDEはログアウトなどがありますが、twmは本当にウインドウ表示とリサイズなどシンプルなことしかできないです。twmをkillすると、ウィンドウマネージャーも停止できるので、起動したxterm上で、killall twmでGUI環境を終了します。

 

まとめ

Ubuntu16.04をHyper-Vで動かしていたので大変つらかったのですが、恐ろしく軽いGUI環境が手に入りました。あとは日本語IMEとopenboxウィンドウマネージャーに切り替えればかなりいい感じになりそうです。