インディーハッカー道
Macで日本語入力ができない・Cmd+Tabが効かない原因と直し方(再起動不要)
インディーハッカー

Macで日本語入力ができない・Cmd+Tabが効かない原因と直し方(再起動不要)

·4分で読める
平城寿
平城 寿(ひらじょう ひさし)
@SOHO創業者 / インディーハッカー

この記事のポイント

  • ✓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 SecureInput

kCGSSessionSecureInputPID の行に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
  • 表示されるプロセスの番号は、犯人とは限らない
  • 裏や画面の外の窓のパスワード欄、パスワード管理の拡張機能、自動操作のブラウザを疑う
  • 犯人が分かれば、再起動しなくても直る

シェア
#Mac#macOS#トラブルシューティング#日本語入力#セキュア入力
平城寿
平城 寿(ひらじょう ひさし)
インディーハッカー。2004年に@SOHOを創業し、20年間1人で運営。
フォロー

関連記事