Найти, какой процесс получает заданную команду клавиатуры


17

Я пытаюсь выяснить, почему не работает определенная комбинация клавиш.

Например, Sublime Text 2 поставляется с сочетанием клавиш для открытия панели «Найти / Заменить»:

Command+ Option+F

Это комбо работало нормально, пока я не сделал чистую установку OSX 10.8.5, после чего он загадочным образом перестал работать в Sublime Text.

Я знаю, что последовательности клавиатуры могут быть захвачены процессами, отличными от самого переднего (например, в ОС), поэтому мне было интересно, есть ли способ проверить, каким процессом конкретная клавиатурная команда была «потреблена»?


Ответы:


19

Я не знаю ни одного быстрого и эффективного способа найти получателя ярлыка. Но вот рецепт, чтобы начать охоту:

  1. Закройте большинство запущенных приложений, чтобы повысить эффективность поиска.

  2. Откройте Terminalокно и выполните следующую команду:

    /usr/bin/sudo opensnoop
    

    Эта команда будет отслеживать каждый openсистемный вызов.

  3. Переключитесь в контекст, где ваш ярлык перехвачен неизвестным приложением и введите ⌘ cmd+ ⌥ option+ F.

    Ищите подсказку виновника из открытых имен файлов.

  4. whileнеудачно, добавьте одно приложение и GOTO 3.


1
Ницца! Если вы делаете это достаточно быстро, у вас должен быть довольно краткий список процессов. У меня было около 50 строк, половина из которых была фоновым процессом, который, как я знал, не слушал нажатия клавиш, поэтому я легко мог отфильтровать их в текстовом редакторе. Оставшиеся около 20 строк записали 3 других процесса, и 75% из них содержали моего преступника. Большое спасибо за то, что поделились, @daniel
Джоэл Меллон

Спасибо Даниэль. Я был разочарован целую вечность, что кое-что еще захватывало ярлык, предназначенный для одного из моих приложений (и еще хуже, играя немного звука пинга!). запустил это, увидел, может быть, 4 приложения звонили, одно из них открывало «ping.aiff», привело меня прямо к виновнику!
Biglig


0

KeyCue обеспечивает визуальную обратную связь по сочетаниям клавиш. Его можно скачать как пробную версию.

KeyCue от Ergonis

Я настроил его так, чтобы при двойном нажатии и удерживании клавиши Command отображались все активные в данный момент ярлыки.


После попытки KeyCue, мне кажется, что он показывает только сочетания клавиш, связанные с командами меню для текущего активного приложения. Кроме того, он показывает глобальные горячие клавиши от Keybaord Maestro и, возможно, одного или двух других поддерживаемых приложений. Он показывает глобальные горячие клавиши для всех приложений для вас?
Пол

Я нахожу несколько загадочным, какие горячие клавиши показываются для «других» приложений. Я думаю, что он пытается (но не в полной мере) показать глобальные горячие клавиши, которые имеют отношение к тому, где вы находитесь. Руководство пользователя специально относится к Keyboard Maestro.
Гилби,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.