透過TPB調整X61的螢幕亮度

參見: ThinPad Buttons (http://www.nongnu.org/tpb/)

在 ThinkPad 上,使用 acpid 可以處理一些 + 的組合功能鍵,但是音量調整和背光調整的組合按鍵無法處理。

TPB 是透過監視 /dev/nvram 的變化來擷取按鍵改變的事件。所 以,使用 TBP,要在 kernel 中開啟 nvram 的選項。

執行 'watch --differences=cumulative -n 0 xxd /dev/nvram' 可以看到 nvram 的內容隨著按鍵改變。但在x61上,音量不會改變,只有mute on/off,等有空再來研究了。

執行下列指令來安裝 tpb,

# USE=xosd emerge tpb

"xosd" 的選項,使得按鍵時會在螢幕下方隨著變化的長條圖,請參見screenshot。

注意,emerge tpb 時,因為要安裝driver至kernel中,會參考到 /usr/src/linux,所以需留意其 link 是正確的。

tbp 執行時,其設定檔為 /etc/tpbrc 或者 ~/.tpbrc。

設定其中的 callback function,在按鍵時會執行指定的script程式。

CALLBACK /home/me/tpb_callback.sh

然後建立script檔 tpb_callback.sh,就直接把它附的 sample 拿來用吧,因為在x61上,只有幾個鍵會改變 nvram 的內容,對我來說,只有調整背光有用,所以只在其中對應的位置加了一行 "xbacklight =$2",利用 xbacklight 來調整背光。

(brightness)

echo "CALLBACK: $0 $1 $2 (should be brightness PERCENT)"

xbacklight =$2

;;

因為tpb要讀取 /dev/nvram的內容,一般使用者沒有讀取權限,所以要在 /etc/udev/rules.d 的目錄下,建立檔案 10-local.rules,內容如下

# Rule needed for tpb + xosd program

KERNEL==nvram, MODE=664

此外,我是用xfce4,所以在 ~/.config/xfce4/xinitrc 中加入 "tpb -d",以 daemon 的方式執行 tpb。

tpb 有 port 到 kde,稱為 kmilo,會在kcontrol中出現 thinkpad 的 hotkey 設定功能,但就是沒有背光調整的按鍵設定,所以裝了後又移除掉。

Well,到此大功告成,可以在登入後,使用 + 和 + 來調整螢幕的背光了。