2018年9月16日日曜日

Openbox + tint2 + compton

Openbox + tint2 + compton

Solaris 11.4 の GNOME-shell が個人的な使用状況に適さない事が判明したので、 代替となるソフトウェアを試してみた。

openbox 軽量ウィンドウマネージャー。スタック型。非コンポジット型。
ソースコードの変更無しで構築可能。
obconf openbox 構成ツール。openbox 本体には含まれない。
ソースコードの変更無しで構築可能。
obamenu openbox メニュー項目自動生成。openbox 本体には含まれない。
変更する事が前提の Python スクリプトで、簡明に記述されている。
tint2 パネル・タスクバー。openbox にはこの機能は含まれない。
要ソースコードの変更。
compton コンポジタ。非コンポジット型である openbox にはこの機能は含まれない。
ソースコードの変更無しで構築可能。

openbox

機能的に必要充分。

初期設定で困ったのは Meta-d (Meta は「◇」の刻印があるキー。 Super としても認識されている模様。 openbox の設定ファイルでは W (Windows) として扱われている。) の扱い。 Emacs では kill-word に割り当てられているが、 openbox では ToggleShowDesktop に割り当てられている。 これは、openbox の設定の変更で対応。

Alt-F7 〜 Alt-F10 も設定されていないので、これらも追加設定。

メニューは、Solaris 用に新規作成。メニューの呼び出しもキーに割り当て。

obconf

GUI で openbox の設定を行えるが、キーの割り当ては対象外。

openbox の設定は XML ファイルの直接編集を主にして、obconf は参照用に使う程度か。

obamenu

/usr/share/applications/*.desktop から コマンド、名前、カテゴリ、アイコンなどの情報を抽出し、 openbox 用のメニューとして構成する仕組み。

.desktop ファイルの多くは日本語名称も含んでいるので、 そちらを抽出するように obamenu を書き換えれば、一応の日本語対応になる。

カテゴリ名にの日本語対応は、obamenu に直接埋め込み。

アイコンは、様々なディレクトリに分散して配置されているため、 それらを探すように obamenu を書き換え。

tint2

初期設定で必要としている機能をほぼ提供してくれる。 アプリケーションの起動機能を削除するくらいか。

tint2 のソースコードの変更内容
src/tint2conf/md4.c
src/util/timer.c
src/util/window.c
u_int8_t u_int32_t u_int64_t といった非標準な型が使用されているので、 これらを typedef、マクロ、直接変更等で修正する。
src/launcher/apps-common.c
src/launcher/icon-theme-common.c
/usr/share/applications に類するディレクトリを、 必要に応じて追加・削除する。
src/util/cache.c 非標準関数 flock() を使用しているので、 これを fcntl()lockf() 等で置き換える。

compton

コンポジタ。

openbox 単独で使用すると画面のちらつきが発生するので、それの対策として。

画面のちらつきは、以下の手順で簡単に再現できる。

  1. compton (またはその他のコンポジタ) が動いているのであれば、それを停止する。
  2. 端末ウィンドウを複数(例えば四枚)並べる。
  3. それぞれの端末ウィンドウを、文字が表示されている状態にする(ちらつきの視認性を上げるため)。
  4. 任意の端末ウィンドウのタイトルバーをポインティングデバイスで掴み、画面内を継続的に移動させる。

メディアプレイヤー使用時の CPU 負荷は、 GNOME-shell に比べれば少ない。

CPU% 値
いずれも 2 仮想CPU構成、mpv で動画再生、top で目視測定。
openbox の CPU% 値はいずれの場合でも 0.1% 未満。
 非再生時再生時
 Xorg CPU% 値自身の CPU% 値Xorg CPU% 値自身の CPU% 値
非使用時0.1% 未満-1% 未満-
compton0.1% 未満0.1% 未満3% 前後2% 前後
GNOME-shell0.1% 未満0.1% 未満8% 前後20% 前後

0 件のコメント:

コメントを投稿