⌨️

【Windows】US配列で快適に日本語入力する

に公開

前提として,私はWindows 11を利用しています.

JIS配列はクソ

皆さんご存じの通り,JIS配列はクソです.特に記号の配置がぐちゃぐちゃですし,見た目も悪いです.なので,私がキーボードを買うときは必ずUS配列のモノを選びますし,ラップトップを買う際もUSキーボードが選択できるものの中から選びます.

私は長いことCaps LockをIME切り替えキーとして利用していたのですが,一つのキーを切り替えに用いるトグル方式は,現在のモードを把握する必要があり,これもまた不便です.

一方で,MacやSurfaceのJIS配列は,スペースの左右にIME ON/OFFを配置しており,とても合理的です.そこで,それらの配列とUS配列の良いとこどりをした配列を実現したいと思います.

理想の配列

一般的な配列のキーボードしかない環境で作業しなければいけないこともあるため,いくら効率のためとはいえ特殊な配列にはできません.そこで,最低限のレイアウト変更で快適なタイピングを実現することを考えた結果,以下のようになりました.元はUS配列想定です.

  • Caps Lock → Alt
  • Left Alt → IME OFF
  • Right Alt → IME ON

なんとかこれを実現したいと思います.

Power Toys じゃ不完全

WindowsでキーレイアウトをいじるとなるとPower Toysが真っ先に思いつくと思います.私もしばらくはPower Toysでなんとかやりくりしていました.ただ,使っていくうちにいくつか不満が出てきました.具体的には,

  • PCの起動直後からPower Toysが起動するまではレイアウト変更が反映されない
  • 日本語入力におけるCaps Lockの仕様が特殊でうまく扱いきれない
    • Shift + Caps Lock(Alt割り当て済み)等の入力が変になる

といった問題点がありました.

レジストリをいじる

上記のような問題を解決するには,レジストリをいじるのが一番早いと考え,以下のように設定しました.

Registry Editorを開き,
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
を選択する.

Scancode Mapが無ければNew > Binary Valueから作成し,既にあればそれを編集する.

編集内容は以下のサイトを参考に

  • Caps Lock → Alt
  • Left Alt → 無変換
  • Right Alt → 変換

としました.

しかし,そもそもUS配列には変換無変換が存在しないため,変換無変換の入力が正しく認識されませんでした.

AX配列を用いる

色々と調べると,US配列に変換無変換キーの定義が追加されたAX配列とやらが存在するようです.
こちらもレジストリをいじることで利用できるみたいです.

手順としては,
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
に移動し,以下のように値を編集します.

Name Type Data
LayerDriver JPN REG_SZ kbdax2.dll
OverrideKeyboardIdentifier REG_SZ AX_105KEY
OverrideKeyboardSubtype REG_DWORD 1

さらに,AX配列において無変換は005a,変換は005bであるため,それを考慮し

  • Caps Lock → Alt
  • Left Alt → 無変換
  • Right Alt → 変換

となるようにScancode Mapを編集します.

変換無変換キーでIME ON/OFFを切り替える

最後に,WindowsのIME設定から,変換無変換キーでIME ON/OFFができるように設定します.

結論

以上により,理想のキー配列が実現できました.理想とはいっても,

  • キー印字と入力が異なる
  • US配列はスペースが長いためMacやSurfaceのJIS配列よりも変換無変換が押しずらい
  • そもそもQWERTYが入力しづらい

等気になる点もありますが,他のキーボード配列との互換性を考えると,丁度良い妥協点だと思います.

Discussion