目前的 distribution 設計都進步很多了,各層分工合作,就算有特殊鍵沒支援的,要改成支援也是很簡單。這裡大致介紹一下怎樣讓特殊按鍵們產生作用。先說明原理:特殊鍵一般都是會產生 acpi event,但這個 event 往往系統認不得。這裡 acpid 扮演的角色就是把這個認不得的 event 利用呼叫 acpi_fakekey 的方式變成假裝按了一個鍵,而這個鍵系統認得,就可以產生相對應功能啦。
實例說明:我的 volume-down 降低音量鍵沒用,那先跑 acpi_listen,然後按 volume-down 一下,看看出來的結果。以下是我的 notebook 上出現的:
john@Portege-2000:~$ acpi_listen嗯嗯,可見按下跟放開都會產生事件,我們這裡抓那個放開的事件就好。畢竟按下了才有可能發生放開嘛。然後把這個事件加到 /etc/acpi/events 底下,新增一個檔案 tosh-volume-down
hkey VALD 00000000 00000102
hkey VALD 00000001 00000102
# /etc/acpi/events/tosh-volume-down這裡頭的意思是說,如果抓到了這個事件,就呼叫 /etc/acpi/voldownbtn.sh。這個 script 其實就是統一拿來降低音量的,內容為:
event=hkey VALD 00000001 00000102
action=/etc/acpi/voldownbtn.sh
#!/bin/bash其中 /usr/share/acpi-support/key-constants 就是 kernel 認得的按鍵代碼,$KEY_VOLUMEDOWN 的值是 114。所以日後每當我按了 Toshiba 自己特別的 volume-down,就會對應到 acpi_fakekey 114,等於是按下了系統認得的降低音量鍵。在新版的 gnome 中,這鍵系統會認得(也可以自訂,把他的作用換成其他的,例如升高音量? = =),所以會有漂亮的 UI 一起搭配起來,讓我看到目前的音量大小。一般說來特殊鍵也不過就那幾個,所以就算完全沒支援,也一下子就設起來啦。
. /usr/share/acpi-support/key-constants
acpi_fakekey $KEY_VOLUMEDOWN
沒有留言 :
張貼留言