UbuntuでCapslockをEscキーに割り当て

CapsLockキーが邪魔になってきたので無効化しようと考えたが、Escに割り当てとけばvimのとき楽だと思ったので変更することにした。
Emacs使うときは左Ctrlにすれば良さそう。
ここらへんを読んでおけば参考になる。
Ubuntu日本語フォーラム / 【済】キーバインドの変更方法
「半角/全角」→「Esc」に、「Caps Lock」→「左Ctrl」にキーマップを変更する方法@(Ubuntu|Windows) : Verboseモードでいこう

Ubuntuでのキー割り当ての変更は、Capslockなら「System Setting」→「Keyboard」→「Layout Setting」から変更可能。
しかし、他のキーは必ずしも変更できるとは限らないのでもっと汎用的な方法で変更する。

Ubuntuの場合はホームディレクトリの下に.Xmodmapというキーボードの設定ファイルを作っておけば起動時に読み込まれ変更される。

vim ~/.Xmodmap

でファイルを開いた後

! CapsLockを修飾子から外しておく
remove Lock = Caps_Lock
! CapsLockキーをEscキーに割り当てる
keycode 66 = Escape NoSymbol Escape

でOK。
keycodeの66はCapsLockをあらわしているが、キーボードによって異なる。
自分のキーボードのkeycodeを調べる場合は

xmodmap -pke

を実行すればkeycodeの一覧が出力される。

次回のログインから設定ファイルが読み込まれ変更されるが、すぐに変更を適応した場合は

xmodmap ~/.Xmodmap

とする。