昨日の続き。
xdviもxcb_lock関係でクラッシュすること判明。(「xcb_xlib_lock: Assertion `!c->xlib.lock' failed. 」みたいなエラー。)
これは致命的。これでは仕事が出来ない。
いろいろ調べていたところ、この手のクラッシュは、Xサーバの方ではなく、クライアントの方のコードに問題があるらしく、lockやunlockを二重にしてしまうと出るものらしい。
ということで、xdviの新しいのを探そうと思ったのだけど、面倒そうなので、昨日と同じくassertionをはずす方向で対処。libxcb-1.1のソース、src/xcb_xlib.cの中のxcb_xlib_lockとxcb_xlib_unlockの関数の中のxcb_assertの行をコメントアウト。
とりあえずxdviのクラッシュはおさまりました。
---
Fn+Home/Endの画面の明るさ調節が出来なかったのだけど、これはどうやらX61あたり以降からこのボタンの明るさ調節はソフトウェア的にやらないと効かないようになったらしい。xrandrというのとxbacklightというプログラムをインストールして、acpidの設定ファイル+スクリプトで、ボタンに応じて「xbacklight -inc 10%」「xbacklight -dec 10%」を実行するようにして、明るさ調節できるようになった。
(注:xbacklightはXのクライアントになっているので、ボタンに反応するスクリプトに「export DISPLAY=localhost:0.0」という命令を付けておく必要あり。)
---
音量調節ボタンは、acpidで扱う方法が分からず、またいろいろ調べているうちに、xbindkeysというXのツール(特殊キーに操作を割り当てるツール)を使えることが分かった。設定ファイル(~/.xbindkeysrc)に
"amixer set Speaker on; amixer set Master 1+"
c:176
"amixer set Speaker on; amixer set Master 1-"
c:174
"amixer set Speaker off"
c:160
のように書き、X起動時にxbindkeysを動かすようにすればよい。
(2008.5.4)