土曜日, 10月 20, 2007

CapslockをCtrlにする

CpasLockをCtrlにするには、XKeymacsを使うのが一番簡単で、間違いも無い。しかし、今回、XKeymacsのキーボードレイアウトを変更しても、変更が反映されなかった。

そこで、レジストリを変更することで、CapsLockをCtrlにした。(通常、CapsLockとCtrlを入れ替えるが、自分はCapsLockは使わないので、CapsLockをCtrlとした。)
また、右Altと右Shiftを入れ替えると使いやすくなるので、この設定も行った。

OS version : Windows 2000 SP4
1. 下記のレジストリキーを選択する。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
2. メニューバーの[編集]→[新規]→[バイナリ]を選択。
3. キー名を[Scancode Map]とする。
4. Scancode Mapをダブルクリックして値のデータを以下の通りとする。
------------------------------
00 00 00 00 00 00 00 00
04 00 00 00 1D 00 3A 00
38 E0 36 00 36 00 38 E0
00 00 00 00
------------------------------
5. Windowsを再起動する。


【解説】
レジストリのScancode Mapに設定した値のデータは、次のことを意味している。

00 00 00 00 ; header version[4byte]
00 00 00 00 ; flags[4byte]
04 00 00 00 ; エントリ数(terminateを含んだ数)
1D 00 3A 00 ; (00 3A -> 00 1D) CapsLock → 左Ctrl
38 E0 36 00 ; (00 36 -> E0 38) 右Shift → 右Alt
36 00 38 E0 ; (E0 38 -> 00 36) 右Alt → 右Shift
00 00 00 00 ; terminate (終了)


■参考
「Caps」と「Ctrl」の入れ替え

2 件のコメント:

  1. 右 Shift を右 Alt に変えると、Alt + Tab は動作するが、Alt + Shift + Tab が聞かない、また、Emacs で C-M-v が動作しない、といった問題があったので、右 Shift は左 Alt に、右 Alt は左 Shift になるようにした。右 Alt はほとんど使っていないのだが、念のため、変更しておいた。

    38 00 36 00; (00 36 -> 00 38) 右Shift → 左Alt
    2A 00 38 E0; (E0 38 -> 00 2A) 右Alt → 左Shift

    返信削除
  2. 右 Shift を右 Alt に変更しても、Alt + Shift + Tab は有効になりませんでした。

    (^_^;)

    ただ、Alt (右Shift) + 左Shift + Tab は有効にならなかったけど、Alt (右Shift) + Shift (右Alt) + Tab を押すことで、期待した動作をするようになったので、運用でカバーしようと思う。

    また、Emacs については、C-M-v が期待した動作をするようになったので、変更してよかったです!

    返信削除