macOS MojaveでCommand + クリックが効かない時の対処

勇み足でmacOSをHigh SierraからMojaveへアップデートすると、Command クリックが効かなくなってしまいました。何かしらのアプリで複数選択する時とか、ブラウザでリンクを新規タブで開こうとする時に不便。

色々調べてみたところ、Karabinerが原因のようでした。USキーボード使いならほぼほぼ入れてると思うんですけど、入力切替をControl Spaceにするか、Command クリックを封じるかの2択になるのはつらい。

設定ファイルを眺めてみるとそれっぽい項目があり、項目を削除するとCommand クリックが復活しました。

設定ファイルは~/.config/karabiner/karabiner.jsonにあります。

vim ~/.config/karabiner/karabiner.jsonもしくはopen ~/.config/karabiner/karabiner.jsonで直接ファイルを編集できます。できない時は、open ~/.config/karabiner でフォルダを表示してから、karabiner.jsonを適当なアプリで開いてあげれば良い。

編集する項目は"lazy": trueで、"lazy": falseに変更します。デフォルト値はfalseなので行ごと削除しても良いです。

lazyは2つしか存在せず、どちらもfalseにする必要があるので、検索をかけて出てきたのをfalseにするくらいでいいでしょう。

以下蛇足。

調べてみた感じ、lazyがtrueのときは以下のような挙動をしているみたいです。

  1. commandキーをto_if_alone_timeout_millisecondsで設定した値(karabinerのparamertorで設定できる)より素早く離すと英数 / かな キーを送信
  2. commandキーと何かのキーが同時に押された場合はそのキーコンビネーションを送信する
  3. commandキーを遅く離すと何も送信しない

lazyをfalseにすると、commandキーを押した瞬間からとりあえずcommandキーを送信して、素早く離されたら英数 / かなキーを送信、という感じっぽいです。

High Sierraまではlazyがtrueで問題なかったということは、mojaveにするとクリックイベントを取得できなくなったのかな〜と思います。開発者じゃないからわからんけど。