2010年2月14日日曜日

Ubuntu9.10作業メモ2:.Xmodmapを使ってキーバインドを変更する

Ubuntuでは、 $HOME/.Xmodmap ファイルに設定を書き込むことで
キーバインドを変更することができます。

設定を書くためには、変更したいキーを特定するための
「番号」あるいは「呼び方」がわからなければなりません。
この「番号」と「呼び方」がキーコードとKeySym名です。

キーコードとKeySym名を調べるためには、xevコマンドを使います。
端末で xev と打つとキーボードやマウスの操作内容が端末に
反映されるようになるので、他の箇所に触らないように目的のキーを押してください。

例えば自分の環境でEnterキーを押すと以下のように表示されました。

KeyRelease event, serial 36, synthetic NO, window 0x5200001,
root 0x109, subw 0x0, time 96083768, (110,502), root:(701,553),
state 0x10, keycode 36 (keysym 0xff0d, Return), same_screen YES,
" XLookupString gives 1 bytes: (0d) "
XFilterEvent returns: False

ここでは、keycodeと書かれている横にある「36」がキーコード、
keysymと書かれている横にある「Return」がKeySym名になります。

キーの特定方法がわかったところで設定の具体的な書き方ですが、
普通のキーとAlt/Ctrl/Shift/Superキー/Caps Lockキー(修飾キー)では
書き方が少し異なります。

普通のキーを塗り替えたい場合は、

keycode [keycode] = [keysym]

と書きます。[keycode]の所にxevで調べたキーコード、
[keysym]の所にxevで調べたKeySym名を指定するわけです。
これで、=の左のキーコードに指定したキーが、
=の右のKeySym名で指定したキーに変わります。

もしくは

keysym [keysym] = [keysym]

という書き方もあるようです。

次に、修飾キーが絡む場合ですが、こっちはaddとremoveを使って
修飾キーの機能をキーに付加したり外したりします。
キーを塗り替えるのとは考え方が違うので注意してください。

修飾キーの機能を取り去るには、

remove [修飾キー名] = [keysym]

修飾キーの機能を付加するには

add [修飾キー名] = [keysym]

とります。=の右側で指定したキーが修飾キーになる(ならなくなる)キーです。

修飾キー名ですが、ターミナルで xmodmap -pm と打った時に
左側に並んでいるshift、lock、control、mod1などのことです。
また、このコマンドで現在の修飾キーの割り当てがわかるので、参考にしてください。

設定を書き終わったら一旦ログインしなおすとキーバインドが反映されるはずです。
もっと詳しく調べたい場合は、「xmodmap」等で検索してみてください。

0 件のコメント:

コメントを投稿

フォロワー