
Macで日本語入力ができない・Cmd+Tabが効かない原因と直し方(再起動不要)
この記事のポイント
- ✓Mac で日本語入力の切り替えや Cmd+Tab が急に効かなくなったときの原因は
- ✓macOS のセキュア入力のことがあります
- ✓表示される犯人が当てにならない落とし穴
ある朝、Mac で次のことが同時に起きました。
- Cmd+Tab でアプリを切り替えられない
- 日本語入力の切り替えがおかしい
- マウスやほかのキーは普通に動く
再起動すれば直るかもしれません。 ただ、私の Mac では録画や長い作業が常に動いていて、気軽に再起動できません。 原因を突き止めると、裏に隠れていたアプリのパスワード欄でした。
原因は macOS の「セキュア入力」
macOS には「セキュア入力」という仕組みがあります。 パスワード欄にカーソルがある間、ほかのアプリがキー入力を読めないようにする仕組みです。 パスワードを盗み見られないための、正しい仕組みです。
困るのは、これが Mac 全体に効くことです。 セキュア入力が入っている間は、キー入力を読んで動くアプリ(Cmd+Tab の切り替えアプリ、日本語入力の補助、キーボードの割り当てアプリなど)にキーが届きません。 修飾キー(Cmd や Shift)を押したことは届くのに、文字のキーは届かない、という状態になります。
そして、パスワード欄にカーソルが残ったままだと、そのアプリの窓が裏に隠れていても、セキュア入力は入りっぱなしになります。
私の Mac で起きたこと
1回目は、ブラウザのパスワード管理の拡張機能でした。 Safari のパスワード管理の拡張機能がセキュア入力を入れたまま外し損ね、Cmd+Tab が効かなくなりました。 Safari を終了しても、画面をロックして解除しても、直りませんでした。
2回目は、自動操作で動かしていたブラウザの窓でした。 裏で動いていたブラウザがログイン画面で止まり、パスワード欄にカーソルが残っていました。 窓は画面の外にあって、私には見えていませんでした。 夜中から朝まで、Cmd+Tab と日本語入力の切り替えが効かない状態が続きました。
セキュア入力が入っているかを確かめる
ターミナルで次を打ちます。
ioreg -l -w 0 | grep -i SecureInputkCGSSessionSecureInputPID の行に0以外の番号が出たら、セキュア入力が入っています。
何も出ないか、番号が0なら、入っていません。
落とし穴:表示されるアプリが犯人とは限らない
kCGSSessionSecureInputPID には、プロセスの番号が出ます。
これを見て「このアプリが犯人だ」と考えたくなりますが、ここに罠がありました。
この番号は、最後にセキュア入力を入れたプロセスの番号でしかありません。 いまセキュア入力を握っているアプリとは限らず、もう終了したアプリの番号が残っていることもあります。
2回目のとき、表示された番号は、関係の無い別のアプリでした。 そのアプリを再起動しても直りませんでした。 本当の犯人は、画面の外にあったブラウザの窓のパスワード欄でした。
犯人の見つけ方
番号を信じる代わりに、次を順に疑います。
- いま開いているアプリの中に、カーソルがパスワード欄にあるものがないか。画面の外や裏に隠れている窓も含めて見る
- パスワード管理の拡張機能やアプリ(ブラウザの拡張機能を含む)が動いていないか
- ブラウザを自動操作している道具が、ログイン画面で止まっていないか
macOS のアクセシビリティの仕組みを使えば、各アプリでいまカーソルがある部品が「パスワード欄」かどうかを、カーソルを動かさずに調べられます。 私はこれで、画面の外にあった窓のパスワード欄を見つけました。
直し方
犯人が分かれば、再起動は要りません。
- パスワード欄にカーソルが残っているアプリなら、その窓でカーソルをほかの場所に移すか、窓を閉じる
- パスワード管理の拡張機能なら、その拡張機能のプロセスだけを終了する(ブラウザ本体は終了しなくてよい)
1回目のときは、Safari のパスワード管理の拡張機能のプロセスだけを終了したら、その場でセキュア入力が外れ、Cmd+Tab が戻りました。
# Bitwarden の Safari 拡張機能の場合(拡張機能は次に必要になったとき自動で立ち上がる)
pkill -f "Bitwarden.app/Contents/PlugIns/safari.appex"自動操作でブラウザを動かす人へ
ブラウザを自動操作していると、作業がログイン画面で止まり、パスワード欄にカーソルが残ることがあります。 窓が見えていなくても、Mac 全体のキー入力に影響します。
私の環境では、自動操作が終わるときに必ずパスワード欄からカーソルを外すようにしました。 自動操作の道具では、ログイン画面に当たったら欄には触れず、人に任せるようにしています。
まとめ
- Cmd+Tab や日本語入力が急に効かなくなったら、まずセキュア入力を疑う
- 確かめるのは
ioreg -l -w 0 | grep -i SecureInput - 表示されるプロセスの番号は、犯人とは限らない
- 裏や画面の外の窓のパスワード欄、パスワード管理の拡張機能、自動操作のブラウザを疑う
- 犯人が分かれば、再起動しなくても直る




