[Mac][Keyboard Maestro] US キーボードで言語切り替え2

私の Mac で US キーボードを使っている。

そこで問題となるのが、日本語と英語の入力モード切り替えである。日本語キーボードの場合は、「英数」キーおよび「かな」キーで切り替えができた。しかし US キーボードにはそんなキーはない。

まさかメニューバーの言語アイコンをいちいちクリックして切り替えるのは大変だからそんなことはしたくない。

そこでこれまで Keyboard Maestro を使って入力モード切り替えをを行っていた。Esc キーのすぐ下にある ` のキーは滅多に使わないので、このキーを切り替え用のキー(トグル・キー)としていたのだ。具体的な方法は以下だ(私の Mac は英語環境にしているので、以降メニュー名が英語である)。

(1)リンゴアイコン>System Preferences>Keyboard>Input Sources>Select the previous input source に F6 を割り当てる。

F6 を割り当てているのは、滅多に使わないファンクションキーだから。

(2)Keyboard Maestro で以下のようにアクションを登録する。

Screen Shot 2019-08-02 at6.51.55

これだけだ。1の段階で ` キーを入力モード切り替えのショートカットにすればいいように思えるけれど、 ` キーは入力モード切り替えに割り当てられないようになっている。だから Keyboard Maestro を使うわけだ。

この方法については、以前もブログで書いていた。

[Mac] US キーボードで言語切り替え – with a Christian Wife
https://wacw.cf/2016/06/07/mac-language-switch/

しかしこの方法の欠点は F6 キーを殺してしまうこと。その他のアプリケーションで使わない適当なショートカットキーを考えてもいいんだけど、どうもスマートじゃない。

しかし、Mac の環境設定を経由せず、Keyboard Maestro 単体で設定する、もっとシンプルな方法を見つけた。

Keyboard Entry Language – Questions & Suggestions – Keyboard Maestro Discourse
https://forum.keyboardmaestro.com/t/keyboard-entry-language/2025/9

すなわち以下のようになる(私は ATOK を使っている)。

Screen Shot 2019-08-02 at6.52.09

JavaScript のコードを再掲載すると以下のようになる。

(function () {
    return Application(
        'System Events'
    ).applicationProcesses[
        'SystemUIServer'
    ].menuBars[0].menuBarItems.where({
        accessibilityDescription: 'text input'
    })[0].value();
})();

最初に使用するときに、許可を求めるダイアログが出てくるので OK にする。

これで Keyboard Maestro 単体の設定で入力モードの切り替えができるようになった。

ただ言語切り替えのタイミングが 0.5 秒ぐらい掛かる。` キーを押して即入力を開始するときに、切り替えが間に合わないことがあるんだよなあ・・・。

参考:
日本語入力の切り替えはトグルじゃダメ、の件 – DTP Transit
https://www.dtp-transit.jp/utility/post_2226.html