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

IMUZA.com

Joomla!によるウェブ制作, PHP, Javascript, CSS

はてなブログ

はてなブログ テーマ制作
・とことこ with Menubar
・Simple Responsive with Menubar
・Mobile-First Responsive
・Hyperspace

Joomla!

Joomla! によるウェブ制作
・テンプレート自作
・モジュール自作
・Joomla!でサイト構築

Web Tips

ウェブサイトづくりに役立つかも
・Javascript
・CSS

Windows, Linux

Windows10
Plamo Linux

【Windows10】ThinkPad E420 のキーボードレイアウトをレジストリで変更する CapsLock → Ctrl 他

Windows, Linux

このノートだけではなく、どの PC でもなんですが、必ず「Caps Lock」を「Ctrl」に変更しています。これまでは「Ctrl2cap」というツールを使っていたのですが、今回はレジストリの書き換えで変更しようと思います。

参考サイト:ASCII.jp:CtrlとCapsを入れ替え! Windowsのキー配列をカスタマイズ (1/2)|深厚のWindows使いこなしテクニック

この記事を元に色々調べた結果、下のリンクがマイクロソフトのソースのようです。 記事の中ほど「Scan code mapper for keyboards」が該当する項目です。

Keyboard and mouse class drivers (Windows Drivers)

スキャンコードマッピングの要点

  1. レジストリ
    次の項目に「Scancode Map」という名前でマッピングデータを作成します。名前は何でもいいようですが変える意味もないでしょう。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
  2. データの構成
    Value Interpretation
    0x00000000 Header: Version. Set to all zeroes.
    0x00000000 Header: Flags. Set to all zeroes.
    0x00000003 Three entries in the map (including null entry).
    0x001D003A Left CTRL key --> CAPS LOCK (0x1D --> 0x3A).
    0x003A001D CAPS LOCK --> Left CTRL key (0x3A --> 0x1D).
    0x00000000 Null terminator.

    4バイト:すべて「00」(ヘッダー:バージョン)
    4バイト:すべて「00」(ヘッダー:フラグ)
    4バイト:マッピングする数、ターミネータを含みますのでプラス1する(上の例では3)
    4バイトを必要な数だけ:マッピングデータ(上の例では 1D,00,3A,00 と 3A,00,1D,00 の2組)
    4バイト:すべて「00」(ターミネータ)

  3. スキャンコードの取得
    ググれば一覧もありますが、「KT Software - Keymill」というツールもあります。立ち上げてキーを押せばスキャンコードを記録してくれます。下の画像は、Ctrl と CapsLock をクリックしたところです。
    f:id:ausnichts:20150827130233p:plain

レジストリエディタを立ち上げて...

実際にやってみましょう。「検索」に「regedit」と入れてエンターキーを押せばレジストリエディタが立ち上がりますので、階層を該当項目までたどっていきます。

f:id:ausnichts:20150827121138p:plain

編集→新規→バイナリ値をクリック、名前を「Scancode Map」とします。右クリック→修正で、マッピングデータを入力していきます。

CapsLock to Ctrl

00 00 00 00 00 00 00 00
02 00 00 00 1d 00 3a 00
00 00 00 00

f:id:ausnichts:20150827131306p:plain

再起動すれば反映されます。

レジストリファイルを ausnichts/Scancode-Mapper · GitHub に置いておきます。以下それぞれのファイルがありますのでダウンロードしてダブルクリックすれば読み込まれます。レジストリをいじることになりますので慎重に、そして自己責任でお願いします。

CapsLock to Ctrl & Ctrl to CapasLock

00 00 00 00 00 00 00 00
03 00 00 00 1d 00 3a 00
3a 00 1d 00 00 00 00 00

Home to Insert & Insert to Home, End to Delete & Delete to End

今回、Win10 に入れ替えて「あれ?」と思ったのが、右上の4つのキー Home,End,Insert,Delete の挙動です。

思い出しました。そういえば、Delete キーが使いにくいということで、マッピングも変更し、キートップを差し替えたのでした。

これが元々の位置です。画像は価格コムさんから拝借しました。Insert,Delete,Home,End となっています。

f:id:ausnichts:20150827134631j:plain

入れ替えた現在の位置がこちらです。

f:id:ausnichts:20150827135459j:plain

で、キートップのようにマッピングし直します。

スキャンコードを調べますと、52,53,47,4f なんですが、それぞれ e0 のプレフィクスがつくようです。*1

f:id:ausnichts:20150827140519p:plain

00 00 00 00 00 00 00 00
06 00 00 00 1d 00 3a 00
52 e0 47 e0 47 e0 52 e0
53 e0 4f e0 4f e0 53 e0
00 00 00 00

f:id:ausnichts:20150827141544p:plain