Windows 10 May 2020 Update 後に DvorakJ を使う

親指シフトなどかな入力系を使っている場合は以下が参考になります(本稿も当該記事を参考にしています。ありがとうございます)。

Windows 10 May 2020 Update とDvorakJ での親指シフト入力の問題を解消する

症状

Dvorak配列にしてローマ字入力をすると、[J]を打ったらhがIMEに送られてほしいところ、jが送られる。

ただし、アプリケーションを起動した直後の入力だけは、正しく動作する。

なぜこのような現象が起こるのか

日本語IMEが新しいバージョンにアップグレードされたからのようです。 https://support.microsoft.com/ja-jp/help/4462244/microsoft-ime#section-1

新しい IME では IME 自体のパフォーマンスを向上させるだけでなく、アプリケーションとの独立性を高めることで、アプリケーションへの影響を最小限にしました。

これが原因で、DvorakJとの相性が悪くなったのでしょう。

解決方法

以前のバージョンの Microsoft IME を使う

残念ながら新しいバージョンの Microsoft IME は相性が悪いので、以前のバージョンの Microsoft IME を使うことにします。

Windows の設定→時刻と言語→言語→(優先する言語の中の)日本語をクリック、オプション→Microsoft IMEをクリック、オプション→全般→以前のバージョンの Microsoft IME を使う、オン

DvorakJ の設定で「IME を経由せずに、特定の文字と記号を直接発行する」は適用しなくてよい

先ほど紹介したウェブページによれば、

日本語入力モードのときに数字記号を入力すると確定状態で入力されてしまう

という症状が発生したようです。

これは、NICORA配列の設定ファイルは最上段が定義されていないことが原因と思われます。

最上段を

1|2|3|4|5|6|7|8|9|0|「|」|¥|

のように定義している配列では、この問題は起こりませんでした。

逆に、この設定を適用してしまうと、キーボードにない文字(例えば、私は【】を打てるようにしています)を出力する場合にNUL文字が出力されてしまいます。