【macOS】グローバルショートカットを奪っている犯人を探す

VimキーバインドのCtrl+nを使いたいのに、いつの日か設定したグローバルショートカットのせいでメモアプリが起動してしまう。

犯人を探して削除する。

今後こんなことがあった時のための備忘録

確認したこと

  • 恐らく、設定したであろうProNotesというNote.appのenhanceアプリを消した

  • note appの設定を見たけど、ショートカットの項目はなかった。

  • 設定 → キーボード → キーボードショートカット → アプリのショートカットには何も設定されていなかった。

  • Raycastのホットキーには設定されていない。 (⌘+space → ⌘+. → Extensions)

怪しい

  • ProNotesの残骸がまだ残っている?

GPT5.5に聞いた

macではアプリをゴミ箱に入れても、Preference, LaunchAgentsは自動削除されないらしい

確認する

➜ ls ~/Library/LaunchAgents
 com.google.GoogleUpdater.wake.plist   com.google.keystone.xpcservice.plist   com.mathworks.mathworksservicehost.agent.plist
 com.google.keystone.agent.plist       com.koekeishiya.yabai.plist

blog on  main [$!?] is 📦 0.0.1 via ⬢ v24.16.0
➜ ls ~/Library/Application\ Support  | grep -i ProNotes

blog on  main [$!?] is 📦 0.0.1 via ⬢ v24.16.0
➜ ls ~/Library/Preferences  | grep -i ProNotes
com.dexterleng.ProNotes.plist

~/Library/Preferencesにはcom.dexterleng.ProNotes.plistがあった。

それ以外にはないんだが、それぞれの意味はなんだろう

Preferencesは単なる設定ファイルで、ショートカットを発火させることはない。

常駐起動するpsやLaunchAgentsにないとおかしいんだが、何故ないんだろう

➜ ps aux | grep -i ProNotes
nematatu         10538   0.0  0.0 435299584   1168 s027  R+    4:47PM   0:00.00 grep -i ProNotes

ちなみに、、

a: all processes

u: for user information

x: include GUI processes

らしい

とりあえず再起動する

先に ProNotesのPreferencesを削除しておく

rm ~/Library/Preferences/com.dexterleng.ProNotes.plist

plistを書き換えたり削除した場合は、↓で再起動するらしい (キャッシュとかを削除)

killall cfprefsd

cf: Core Foundation

prefs: Preferences

d: Daemon

再起動でもだめだった!!

原因見つかった

普通に設定のキーボードショートカットにあった…

見つけた過程

  1. システムで設定されてるショートカットを一時ファイルに書き込む
 defaults read com.apple.symbolichotkeys AppleSymbolicHotKeys > /tmp/hotkeys.plist
  1. jsonにして探しやすくする
➜ plutil -convert json -o - /tmp/hotkeys.plist | jq .

property List utilの略

apple独自の形式らしいのでjsonに変換する

出力例

➜ plutil -convert json -o - /tmp/hotkeys.plist | jq .

{
  "25": {
    "enabled": "0"
  },
  "18": {
    "enabled": "0"
  },
  "26": {
    "enabled": "0"
  },
  "190": {
    "enabled": "1",
    "value": {
      "type": "standard",
      "parameters": [
        "110",
        "45",
        "262144"
      ]
    }
  },
  "19": {
    "enabled": "0"
  },

.
.
.
Cont'd

この結果の中にQuick Memoの起動ショーカット情報が書かれているけど、それぞれ割り当てられた数字で記述されている。

例) Quick Memo → 190 や、n → 45 など

  1. jqのオプションでquick memoの設定を探す
➜ plutil -convert json -o - /tmp/hotkeys.plist | jq  '."190"'

{
  "enabled": "1",
  "value": {
    "type": "standard",
    "parameters": [
      "110",
      "45",
      "262144"
    ]
  }
}

45がn, 262144がControlを表すので、 Quick Memoはアップルの設定からCtrl+nに割り当てられている。