Linux で CapsLock を Ctrl にする方法

[戻る]

昔はコンソールの場合、
keycode  58 = Control
とか書いた定義ファイルを/etc/rc なんとかで loadkeys 使って読み込ませば良かったし、 X の場合は、.xinitrc に
xmodmap -e "keycode 37 = Control_L"
とでも書けば良かったのですが (うろ覚え)、 どうも最近の Linux ではこれでは駄目なようです。

まず、コンソールの場合ですが以下のような手順が必要のようです。

  1. 以下のように jp106.kmap.gz を編集
    # cd /usr/lib/kbd/keytables
    # gunzip jp106.kmap.gz
    # vi jp106.kmap
    
  2. 編集内容は以下の通り
    keycode 58 = Caps_Lock → keycode 58 = Control
    
  3. 編集後元に戻す。
    # gzip jp106.kmap
    

続いて X の場合ですが /usr/X11R6/lib/X11/xkb/keycodes/xfree86 を次のように編集すればいいようです。

< CAPS > = 66; → < CAPS > = 300;

なお、この方法は CapsLock と Ctrl を入れ替える方法ではなく、 CapsLock キーを押しても Ctrl が入る方法です。 でも、X 上でのキーバインドなんて login して使う人の好みで変えられるべき なので、昔の解の方がスマートな気がします。 なんかいい手って無いんですかね...


2004.4