ThinkPadのブラウザキーに機能を割り当てる(xorg編)

普段、ぷらっとほーむで購入した
OKI minikeyboard III を使用しているので
ThinkPadを使っているときもついつい HOME キーを押すときに
ブラウザキー(←と→の上についてるやつ)を押してしまう。

いい加減イライラしてきたので xorg の設定をいじることにする。
(Host OS : xubuntu-8.04 LTS)

以下のようにするのがGoal

  • ブラウザキー左 ⇒ Home
  • ブラウザキー右 ⇒ End

xorg でキーコードを拾う

まず、なにはともあれキーコードの確認。どうやって?

google様にお伺いをたてても上位に回答が見つからない。

しばし悩んだ後、xorg のイベントビュアーで取れそうと思った。
xorgのイベントビュアーは xev というやつらしい。

ターミナルから

$ xev

とするとすごい勢いで X のイベントを文字列表示してくれる。
このツールで "ブラウザキー左" と "ブラウザキー右" のキーコードを拾う。

ブラウザキー左を押す

KeyPress event, serial 28, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148069263, (168,-8), root:(591,293),
    state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148069263, (168,-8), root:(591,293),
    state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

ブラウザキー右を押す

KeyPress event, serial 31, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148070627, (168,-8), root:(591,293),
    state 0x0, keycode 233 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 31, synthetic NO, window 0x3000001,
    root 0x56, subw 0x0, time 148070627, (168,-8), root:(591,293),
    state 0x0, keycode 233 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

ということで

  • ブラウザキー左 : 234
  • ブラウザキー右 : 233

が得られました。あっけないほど簡単。

xorgでキーマップ設定変更

こっちはgoogleですぐに引っかかる。
xmodmap をいじればよいっぽい。

$ nano -cw ~/.xmodmap

して、以下の内容を作成。

keycode 233 = End
keycode 234 = Home

そして反映。

$ xmodmap ~/.xmodmap

なかなか簡単であるな、と思ったり。