背景と目的
普段は Mac をメインPCとして使い、Windows PC をサブで使う場合は、MacからRDPでWindowsを操作しています。
Windows に USキーボード(102キーボード)を設定していますが、唯一不便を感じるのが、IMEのオン/オフです。今は、タスクバー右の「A」「あ」をマウスクリックして切り替えていますが、キー操作で切り替えられないのが不便。
USキーボードを使用しているので、「変換」「無変換」キーが無いのは当然ですが、109キーボードを接続しても、スペースバーの左右にある「変換」「無変換」キーは まったく機能しません(押しても反応しない)。
もちろん、IMEの設定で「変換」「無変換」キーに IMEのオンとオフを割り当てているにもかかわらず、です。
キー スキャンツールで調べてみると、 USキーボード(102キーボード)設定の場合は、「変換」「無変換」キーが JPキーボード(109キーボード)設定のときとは 違う仮想キーコードに変換されているのが確認できます。深追いしておらず理由は分かりません。
そこで、↓ 以前の記事で紹介した ミニキーボード で、IMEのオン/オフを切り替えるようにするのが、今回の記事の主旨です。
IMEの設定で Ctrl+Spaceに「 IMEのオン/オフ 」を割り当てていますが、Macも同じキーコンビネーションで、入力モードの切り替えを行っている関係で、RDPの先のWindowsに Ctrl+Space を入力することができない、という背景も関係しています。
sketch(抜粋)
ボタンに対応した キーコードの送出の部分だけを示します。
全体のコードは、以前の記事を参照してください。
if (sw1on) {
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(' ');
delay(100);
Keyboard.releaseAll();
}
if (sw2on) {
Keyboard.press(KEY_HOME);
delay(100);
Keyboard.releaseAll();
}
if (sw3on) {
Keyboard.press(KEY_END);
delay(100);
Keyboard.releaseAll();
}
if (sw4on) {
Keyboard.write('0');
delay(50);
Keyboard.write('0');
delay(50);
Keyboard.write('0');
}
- SW1 に割り当てた「 Ctrl+Space 」が一番の目的です。
- SW2、SW3 に「 HOME 」「 END 」キーを割り当てました。これは 60%のUSキーボードを使用しているので、単純に「 HOME 」「 END 」キーが無いためです。
- SW4 に割り当てるキーは何でもよくて、とりあえず 今回は「 000 」(ゼロを3つ)にしてみました。
当然ながら、今回の BLEスリープブロッカー & ミニキーボードは、Windowsに接続して使います。
これで、RDPの先のWindowsの IMEオン/オフが楽になりました。
キーボードから指を離してミニキーボードのボタンを押すため、少しも楽になっていない、というツッコミがありそうですが・・・。スペースバーの手前に置ける細長いキースイッチを作成するか、フットペダルスイッチがベストかも。
以上