読者です 読者をやめる 読者になる 読者になる

Folioscope

プログラミング/Unix系/デザイン/CG などのメモがもりもり

コンソールでのキーマップをカスタマイズ

Linuxのコンソール画面でのキーマップを変更し,忌々しいCaps LockキーをControlキーに置換し,Underscoreキーの動作をMacのような動作にしてみましょう.

キーマップの場所

キーマップの設定は/etc/sysconfig/keyboardファイルのKEYTABLEに設定されていいます.
日本語キーボードの場合は,次のように設定されていると思います.

KEYTABLE="jp106.map.gz"

キーマップが定義されているファイルの場所は次のいずれかの場所が多いですが,OS・ディストリビューションによります.

  • /lib/kbd/keymaps/
  • /usr/lib/kbd/keymaps/
  • /usr/share/kbd/keymaps/

新しいキーマップを作る

今回はjp106を使用して,新しいキーマップファイルを作成します.
jp106の定義ファイルは,keymaps以下のi386/qwertyjp106.map.gzという名前で存在します.
このファイルを複製し,新しい名前をjp106-mod.map.gzとでもしましょう.
このファイルを編集するわけですが,gzipで圧縮されています.
しかし便利なことにVimではgzip形式で圧縮されているファイルも編集できます.
他のエディタを使用している人は,ここからgzipを解凍しましょう.

キーマップを編集する.

まずCaps LockをControlキーに置換します.キーコード58の項目を書き換えます.

# keycode  58 = Caps_Lock
keycode  58 = Control

そしてUnderscopeをMacっぽくします.キーコード89を,Shiftキーを押さずともunderscoreをタイプできるようにします.そしてControlキーを押した時の動作を,Control_underscoreとします.

# keycode  89 = backslash        underscore
#     control keycode  89 = Control_backslash
keycode  89 = underscore
    control keycode  89 = Control_underscore

設定ができたら,新しいキーマップをロードして,正しいかどうかを調べましょう.

sudo loadkeys jp106-mod

特にエラーが無ければ/etc/sysconfig/keyboardを編集します.

KEYTABLE="jp106-mod.map.gz"