Practice of Programming

プログラム とか Linuxとかの話題

Gnomeを捨て、OpenBoxに変えてみた

compizも楽しかったけど、4GBメモリ積んでて通常作業でSwapも結構使っちゃうので、もういいや。
懐かしのblackboxにしようかと思ったけど、さすがに、数年間メンテされてないし、古すぎ感があるので、別のものを試してみた。
なお、Ubuntu 10.04の話です。


最初、Fluxboxを試したのだが、どうにもグラフィックが重い(特にデュアルディスプレイ)。で、他のものを物色していたところ、OpenBoxが目に止まり、何週間か使ってみていますが、かなり良い感じです。

こんにちは、Openbox

Openbox も Blackboxからforkされて作られたが、3.0からは全部rewriteされたそうだ。blackboxC++だが、openboxはC。
ちなみに、下記にX window manger の比較がある。
http://en.wikipedia.org/wiki/Comparison_of_X_window_managers

ショートカットキーの設定

Openbox の configは、 ~/.config/openbox/rc.xml にある。ここで、キーボードショートカットの設定ができる。まだ、ちゃんとできてないけど、結構柔軟そう。


Thinkpadのボリュームボタンがそのままだと効かないので、ショートカットに割り当てています。以下のようになります。

    <keybind key="XF86AudioRaiseVolume">
      <action name="Execute">
        <command>amixer sset Master,0 1+</command>
      </action>
    </keybind>
    <keybind key="XF86AudioLowerVolume">
      <action name="Execute">
       <command>amixer sset Master,0 1-</command>
      </action>
    </keybind>

"XF86AudioLowerVolume"のようなキーボードの名前を調べるときは、xev コマンドを使います。

バイバイ gdm

gdmも捨てることにしました。 wdm にしました。若干野暮ったい。xdmよりはマシっていうくらい。
SLIMが良い感じに見えるんだけど、どうも動かない。


shutdown 時は root の ID/Password で、halt を選ぶ。


(追記)iwaimさんに教えてもらって、LXDMにしました。こっちのがいいですね。

タスクバーアプリケーション(tint2)

Openboxは見た目、Blackboxより何も無い感じなので、以下のページを参考にアプリケーションを入れるといいかも。
http://openbox.org/wiki/Help:Contents#Cool_programs_to_run_with_Openbox


tint2はタスクバー用のアプリケーションです。packageからではなく、ソースからインストールしました。最新であれば、always on top が可能なので。

panel_layer = top
strut_policy = follow_size

という設定を~/config/tint2/tint2rcに書けばOKです。
ノートPCであれば、battery関係もon にしておけば良いかと。


tintwizard.py というGUIアプリでも設定可能です。起動後にファイルをopenしてから、設定を変更します。
起動時に自動でconfigファイルを読み込んくれません。


tintwizard
http://code.google.com/p/tintwizard/

※make とかは不要。実行ファイルをパスの通ったところにコピーするだけ

デュアルディスプレイ

gnomeのディスプレイ設定もないので、デュアルディスプレイの設定は、xrandr を直接叩くスクリプトを作りました。
例えば、こんな感じ。

#!/bin/sh

xrandr  --output LVDS1 --mode 1440x900  --pos 0x150  --output VGA1  --mode 1680x1050 --pos 1440x0 --rotate left

※最初 --left-of や --right-of を使っていたのだが、 最大化時に問題が出たので変えました(これは、OpenBox と tint2を使ったときに、tint2の上にかぶさってしまうという問題回避のためですが)
外付けのディスプレイを外す時は、

#!/bin/sh

xrandr  --output LVDS1 --mode 1440x900 --output VGA1  --off

こんな感じ。


LVDS1 とか、VGA1 とかの名前と解像度は、xrandr をオプションなしで実行すればわかります。

bluetooth

blueman ていうパッケージがありますので、それを入れるといいです。

% blueman-applet

で、システムトレイに現れます。

ボリュームコントロール

tint2 の other projects に上がっていた物を入れました。
http://softwarebakery.com/maato/volumeicon.html

これは、ソースからインストール。volumeicon コマンドで、それっぽいのがシステムトレイに出てきます。

nm-applet (ネットワーク接続管理用アプレット) がWifiのパスワードを覚えてくれない

ずっと解決できずにいたのですが、gnome-keyring-daemon のlocaleをCに変更することで直りました。
autostart.sh に

LC_ALL=C gnome-keyring-daemon &

としておけばOK。

自動起動用script、 autostart.sh

~/.config/openbox/autostart.sh にスタートアップのアプリケーションを書きます。必要最低限のために以下くらいをいれています。

# キーボードのスピード調節
xset r rate 200 70
# タスクバー
tint2 &
# keyring (日本語だとnetwork-managerがパスワードを保存してくれなかった)
LC_ALL=C gnome-keyring-daemon &
# ネットワークマネージャー
nm-applet &
# ボリューム
volumeicon &
# bluetooth
blueman-applet &
# 更新チェッカー
update-notifier &
# 壁紙設定(Esetrootとか、なんでもいいけど)
hsetroot -tile ~/path/to/picture/file.jpg   &

network-manager & nm-applet の代わりに wicd & wicd-gtk というのを組み合わせでもOK。
ただし、wicdは、VPNGUI設定はない。

メニューの編集

僕は、ショートカット厨なので、右クリックメニューはあんまり使わないのですが、ショートカットに割り当てるほどは使わないアプリケーションはメニューに入れます。
~/.config/openbox/menu.xml に書くのですが、obmenu(packageにあり) というGUIアプリケーションがあるので、それを使ったほうがいいでしょう。

その他微調整とか

右クリックメニューから、ObConfてのを選ぶと、テーマとか、マウスの設定とか、いろいろ選べます。

その後

なかなか調子良いです。ようやく落ち着いた。