キーマップの変更方法
Caps Lockキーって使ったことあります?使わないのに、非常にいい場所にありますよね。そのくせよく使うCtrlキーとかはちょっと遠い配置になってます。vimやemacsといったプログラマがよく使うエディタではこのCtrlキーを非常によく使います。
そのため、大抵のプログラマはキーは一をいじって、ここら辺のキーの入れ替えをしてます。今回は素の方法を簡単に紹介。
ちなみに、まわりを見る限り、CtrlとCaps Lockを入れ替えている人が多いような気がします。個人的には、さらにEscキーも入れ替えてしまって、
Ctrl -> Esc
Caps Lock -> Ctrl
Esc -> Caps Lock
にするのがおすすめデス。これは、viを使っていると非常によくEscキーを使うのですが、これが非常に遠くて使いにくいためです。
Windowsでの変更方法
Windowsでキーマップをいじるには、レジストリを直接いじる必要があります。ただ、よく知らないのに直接レジストリをいじるのはとても危険です。
幸いなことに、フリーソフトでキーマップを変更するようなソフトがいくつかあります。色々使い比べて見るのがいいんじゃないかと思います。なお、レジストリ変更系は、ソフトをアンインストールしただけでは元に戻らないのが普通なので、注意が必要です。
取り合えずこれあたりがいいんじゃないでしょうか?
KeySwap for XPの詳細情報 : Vector ソフトを探す!
Linux (debian) での変更方法
Linux(debian)の場合はもう少し直接的にいじれるようになっています。GUI部分での変更とターミナル上での変更両方があります。
まずはGUIでの変更。GNOMEでは、「システム -> 設定 -> キーボード」のキーボードの設定中で、「[レイアウト]タブ -> レイアウトのオプション」から設定変更ができます。ここから、「CapsLock key behavior」と「Ctrl key position」辺りをいじっておけばいいかと思います。
次は、ターミナルでの変更です。これには「xmodmap」を使って変更することになります。そのためには、まずそれぞれのキーの「キーコード」を知る必要があります。
キーコードを調べるためには「xev」を使います。ターミナル上でxevを実行すると、何かが開くと思います。この状態で、変更したいキーを押します。すると、その押したキーの情報が表示されます。
KeyRelease event, serial 33, synthetic NO, window 0x2e00001,
root 0x75, subw 0x0, time 6918335, (166,-15), root:(170,35),
state 0x4, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
たくさん出てきますが、そのなかのkeycodeとkeysymの部分をメモしておいてください。
次に、xmodmapに読み込ませる設定を書きます。これは.Xmodmapに書きます。次のように、それぞれのキーコードと、各キーを押したときに発行されるコードを対応付けます。
keycode 9 = 0xff36
keycode 37 = 0xff1b
keycode 66 = 0xffe3
これであとはxmodmapにこの設定を読み込ませるだけです。
xmodmap .Xmodmap
これで反映されると思います。