xmodmapでキーバインド変更する方法
CapsキーをCtrlキーにする方法はよく紹介されており、Gnomeなどを使っていれば簡単に変更できる。
しかし、そこではあまり詳細に変更できない、詳細に設定したい場合はxmodmapを用いる。
まず現在のkeymapは以下のコマンドで得られる。
xmodmap -pke
この出力を.xmodmapに書きだすために
xmodmap -pke > ~/.xmodmap
とする。
この.xmodmapを編集し、
xmodmap ~/.xmodmap
とすると、変更が反映される
Caps LockのキーをCtrlに変更したい場合の例
ターミナルでxevというコマンドを使用すると、押したキーが何にバインドされていて何番のキーなのかがわかる。
Capsキーを押すと66番、左Ctrlキーは37番だということがわかると思う。
では、capsキーの番号と左Ctrlきーの番号がわかったので.xmodmapを変更してキーバインドを変更しよう。
.xmodmapの66番を以下のように37番に書かれている内容と同じにする。
つまり、
keycode 66 = Eisu_toggle Caps_Lock Eisu_toggle Caps_Lock
から
keycode 66 = Control_L NoSymbol Control_L
へと変更する。
通常のキーはこれで変更できるが、 Ctrl, Caps Lock, Shift, Altなどは特殊キーなので更に変更を加える必要がある。
末尾に
clear Lock add Control = Control_L
を加える。clear LockによってLockの特殊キーを削除する。
その後Controlの特殊キーにControl_Lを追加する。
もともとControl_L特殊キーに入っているがここで、新しくControl_Lの割り当てキーを増やしたのでそれを反映させるために行う。
この特殊キーの一覧はターミナルで
xmodmap
と叩くことによって得られる。これらのキーを削除または追加するときは注意しよう。
最後に以下のコマンドを叩くことによって以上までの編集内容が反映される。
xmodmap ~/.xmodmap