自分環境構築用のメモです。
市販されている一般的な日本語配列キーボードを使用しているのですが、矢印キーを打鍵しようとするとホームポジションから外れなければなりません。
Fnキーがあるキーボードだとホームポジションで済む場合がありますが、通常のキーボードでなんとかしたいのです。
やりたいことは、下記のようになります。
- 変換キー+J -> ←キー
- 変換キー+K -> ↓キー
- 変換キー+L -> →キー
- 変換キー+I -> ↑キー
- 変換キー+H -> Homeキー
- 変換キー+N -> Endキー
- 変換キー+U -> PageUpキー
- 変換キー+O -> PageDownキー
- 変換キーの機能自体は使いたいので、カタカナひらがなキーはつぶす
そこで、ソフトウェアでなんとかするための設定です。
PowerToys(Keyboard Manager)
ショートカットの再マップ機能で、修飾子キー+文字を、矢印キーなどに割り当てることができます。
ただし、変換キーは修飾子キーにはならないため、変換キー+Jといった組み合わせをマッピングできません。
ここでは変換キーのことは置いておいて、代わりにAlt(Right)を修飾子キーとして使用し割り当てます。
スキャンコードのマッピング
Alt(Right)キーとの組み合わせができるようになったので、変換キーをAlt(Right)キー扱いにしたいと思います。
PowerToys(Keyboard Manager)にキーの再マップ機能があるので、これを使って入れ替えれればいいのですが、残念ながらできませんでした。(v0.31.2時点)
そこで、Windows側の設定でキーをマッピングします。
よくCaps Lockキーの入れ替え方法として紹介されている、スキャンコードのマッピングを行います。
レジストリーのKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
下のScancode Map
に、下記の設定を行います。
- 変換キーをAlt(Right)キーに割り当て
- カタカナひらがなキーを変換キーに割り当て
レジストリーの値は下記です。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,38,e0,79,00,79,00,70,00,\
00,00,00,00
使用している値はスキャンコードで、Microsoftのドキュメントではscancode.docに記載があるようですが、面倒なのでSharpKeysというソフトを使って編集しました。
(編集が終われば不要)
編集後にログオフ&ログオンすれば反映されます。
これで望んでいたことができるようになりました。
制約
変換キーをAlt(Right)キーに割り当てているので、単体で押すと当然Altキーとして振舞ってしまいます。
また、コンテキストメニューのようなポップアップするメニューではメニューが閉じられてしまい、正しく動作しません。
(もしかしたらCtrl(Right)とかにすれば改善するかもしれません。)