2010年5月30日

Linux下的多媒體鍵盤(multimedia keys)

現在鍵盤很多都已經是多媒體鍵盤了,的確在使用上會比較方便一點,只要一個按鈕就可以叫出檔案瀏覽器或者說做出播放的動作,真的相當方便
可是許多人都不知道哪裡設定,其實只要兩個簡單的步驟
  1. 使用xev取得keycode
  2. 設定.Xmodmap(在使用者目錄下,沒有請自行建立)
打開xev之後會跳出一連串文字,先不理會,可能會跳出一個白色的視窗,作為監測鍵盤滑鼠移動的視窗,點了之後,不要移動滑鼠(免得資訊太多),然後按下'a',就會收到兩個event,分別是key press跟key release,表示按鍵按下跟放開,其中有個重要的資訊叫做keycode,表示該按鍵的代號,是要寫入.Xmodmap
例如把keycode為162的按鍵對應到檔案瀏覽器上

keycode 162 = XF86Explorer

最後,那麼有多少已經設定好的key呢?可以參考最後的列表,如果英文有點底子的話,大多可以望文生義,不然就自行測試囉
另外就是有許多鍵盤上面有function key,就是寫著fn的按鍵,配合其他按鍵可以產生類似調整螢幕亮度大小的功能,這是跟一般按鈕事件不一樣的,因為會產生硬體控制的方式,所以這樣的組合key是送給bios,不會當作一般事件。
function key使用的是 apcil(Advanced Configuration & Power Interface)這個daemon來控制,所以如果說系統沒有裝好良好的driver,可能function key並不會作用。使用acpi_listen可以抓到這樣的組合key的keycode。接著把keycode的資訊寫到/etc/apcil裡面去就可以,可以參考這裡


一般keycode對應動作的列表
XF86AddFavorite
XF86ApplicationLeft
XF86ApplicationRight
XF86AudioLowerVolume
XF86AudioMedia
XF86AudioMute
XF86AudioNext
XF86AudioPause
XF86AudioPlay
XF86AudioPrev
XF86AudioRaiseVolume
XF86AudioRecord
XF86AudioRewind
XF86AudioStop
XF86Away
XF86Back
XF86BackForward
XF86Book
XF86BrightnessAdjust
XF86CD
XF86Calculater
XF86Calculator
XF86Calendar
XF86Clear
XF86Close
XF86Community
XF86ContrastAdjust
XF86Copy
XF86Cut
XF86DOS
XF86Display
XF86Documents
XF86Eject
XF86Excel
XF86Explorer
XF86Favorites
XF86Finance
XF86Forward
XF86Game
XF86Go
XF86History
XF86HomePage
XF86HotLinks
XF86Launch0
XF86Launch1
XF86Launch2
XF86Launch3
XF86Launch4
XF86Launch5
XF86Launch6
XF86Launch7
XF86Launch8
XF86Launch9
XF86LaunchA
XF86LaunchB
XF86LaunchC
XF86LaunchD
XF86LaunchE
XF86LaunchF
XF86LightBulb
XF86LogOff
XF86Mail
XF86MailForward
XF86Market
XF86Meeting
XF86Memo
XF86MenuKB
XF86MenuPB
XF86Messenger
XF86ModeLock
XF86Music
XF86MyComputer
XF86MySites
XF86New
XF86News
XF86OfficeHome
XF86Open
XF86OpenURL
XF86Option
XF86Paste
XF86Phone
XF86Pictures
XF86PowerDown
XF86PowerOff
XF86Q
XF86Refresh
XF86Reload
XF86Reply
XF86RockerDown
XF86RockerEnter
XF86RockerUp
XF86RotateWindows
XF86RotationKB
XF86RotationPB
XF86Save
XF86ScreenSaver
XF86ScrollClick
XF86ScrollDown
XF86ScrollUp
XF86Search
XF86Send
XF86Shop
XF86Sleep
XF86Spell
XF86SplitScreen
XF86Standby
XF86Start
XF86Stop
XF86Support
XF86TaskPane
XF86Terminal
XF86ToDoList
XF86Tools
XF86Travel
XF86User1KB
XF86User2KB
XF86UserPB
XF86VendorHome
XF86Video
XF86WWW
XF86WakeUp
XF86WebCam
XF86WheelButton
XF86Word
XF86Xfer
XF86ZoomIn
XF86ZoomOut
XF86iTouch

沒有留言: