手機 - Nokia N900 - Maemo - 自定義Xbindkeys



Xbindkeys是一套相當好用的鍵盤事件處理軟體,該工具可以設定要觸發的組合鍵,然後搭配其它工具軟體處理觸發的事件,如下範例:

"wmctrl -r :ACTIVE: -b toggle,fullscreen"
    Control + Up

上面的範例代表,當使用者按下Control + Up時,執行wmctrl -r :ACTIVE: -b toggle,fullscreen命令,wmctrl是處理視窗的工具軟體,而該範例代表全螢幕顯示,所以如果使用者按下N900的Ctrl + Up按鍵時,當下主視窗會放大成全螢幕,不過司徒覺得xbindkeys最好用的地方是設定Easy Debian的滑鼠按鍵(需搭配xdotool),因為司徒時常使用Easy Debian執行KiCAD軟體,可是KiCAD如果沒有搭配滑鼠使用,操作會變得相當麻煩,目前Linux系統上,比較好用的滑鼠、鍵盤發送軟體是xdotool,比較值得注意的地方是Return和KP_Enter是不一樣的功能,如果要在xdotool發送Enter鍵,必需設定成KP_Enter,而非Enter鍵

安裝方式:

$ sudo apt-get install xbindkeys xdotool xvkbd

設定組合鍵

$ vim ~/.xbindkeysrc
    # for Maemo
    #"wmctrl -r :ACTIVE: -b toggle,fullscreen"
    # F7
    #"xdotool key KP_Enter"
    # F8

    # for Easy Debian
    # mouse button
    "xdotool click 3"
    Shift + Right
    "xdotool click 1"
    Shift + Left

    # For Easy Debian
    # mouse move
    "xdotool mousemove_relative 30 0"
    Control + Right
    "xdotool mousemove_relative -- -30 0"
    Control + Left
    "xdotool mousemove_relative 0 -30"
    Control + Up
    "xdotool mousemove_relative 0 30"
    Control + Down

    # For Easy Debian
    "xvkbd -xsendevent -text "\[F1]""
    m:0x81 + c:24
    "xvkbd -xsendevent -text "\[F2]""
    m:0x81 + c:25
    "xvkbd -xsendevent -text "\[F3]""
    m:0x81 + c:26
    "xvkbd -xsendevent -text "\[F4]""
    m:0x81 + c:27
    "xvkbd -xsendevent -text "\[F5]""
    m:0x81 + c:28
    "xvkbd -xsendevent -text "\[F6]""
    m:0x81 + c:29
    "xvkbd -xsendevent -text "\[F7]""
    m:0x81 + c:30
    "xvkbd -xsendevent -text "\[F8]""
    m:0x81 + c:31
    "xvkbd -xsendevent -text "\[F9]""
    m:0x81 + c:32
    "xvkbd -xsendevent -text "\[F10]""
    m:0x81 + c:33
    "xvkbd -xsendevent -text "\[F11]""
    m:0x81 + c:59
    "xvkbd -xsendevent -text "\[F12]""
    m:0x81 + c:22

如果想知道按鍵對應的數值,可以使用如下方式取得:

$ xbindkeys --key

組合鍵指令說明
F7wmctrl -r :ACTIVE: -b toggle,fullscreen按下F7時,切換當前主視窗成全螢幕
F8xdotool KP_Enter按下F8時,發送Enter鍵
Shift + Rightxdotool click 3按下Shift + Right時,發送滑鼠右鍵
Shift + Leftxdotool click 1按下Shift + Left時,發送滑鼠左鍵
Control + Rightxdotool mousemove_relative 30 0按下Ctrl + Right時,滑鼠相對右移30
Control + Leftxdotool mousemove_relative -- -30 0按下Ctrl + Left時,滑鼠相對左移30 (加上--是為了修復xdotool的bug)
Control + Upxdotool mousemove_relative 0 -30按下Ctrl + Up時,滑鼠相對上移30
Control + Downxdotool mousemove_relative 0 30按下Ctrl + Down時,滑鼠相對下移30