Encuentre qué proceso recibe un comando de teclado dado

Estoy tratando de averiguar por qué una determinada combinación de teclado ya no funciona.

Como ejemplo, Sublime Text 2 viene con un atajo de teclado para abrir el panel Buscar/Reemplazar:

Command+ Option+F

Este combo funcionó bien hasta que hice una instalación limpia de OSX 10.8.5, después de lo cual dejó de funcionar misteriosamente en Sublime Text.

Sé que las secuencias de teclado pueden ser capturadas por procesos que no sean los primeros (como por el sistema operativo), por lo que me preguntaba si hay alguna forma de verificar mediante qué proceso se "consumió" un comando de teclado en particular.

Para VSCode CMD+SHIFT+P, consulte github.com/prettier/prettier-vscode/issues/250

Respuestas (3)

ShortcutDetective resuelve tu problema. Es gratis, simple y al grano.

Fantástica recomendación! Esto hizo el truco para mí.
¡¡¡Gracias!!! ¡Esto me salvó de perder la cordura!
Software impresionante, pero no parece funcionar para teclas/accesos directos de medios: [
Genial, esta aplicación realmente ayuda.
Después de migrar mi Intel MacBook Pro a una nueva Apple Silicon (M1 Max) Macbook Pro, ShortcutDetective a veces se bloquea. ¿Alguien más está experimentando este problema? (Lo usé con tanta frecuencia que lo mantendría funcionando en mi monitor lateral, pero debido a esto, ya no. Todavía es útil para problemas únicos, como la pregunta del OP).
Sí, también tuve un bloqueo en mi M1 MacBook Air, pero funcionó lo suficiente como para decirme qué aplicación estaba robando el atajo de teclado que estaba tratando de usar (era Opciones de Logitech, y actualizarlo solucionó el problema).
Hace años que no se actualiza. Se bloquea cada vez que se activa un acceso directo que maneja el sistema (por ejemplo, accesos directos definidos en Preferencias del sistema)

No conozco ningún método rápido y eficiente para encontrar el destinatario de un acceso directo. Pero aquí hay una receta para iniciar la caza:

  1. Cierre la mayoría de sus aplicaciones en ejecución para mejorar la eficiencia de la búsqueda.

  2. Abra una Terminalventana y ejecute el siguiente comando:

    /usr/bin/sudo opensnoop
    

    Este comando rastreará cada openllamada al sistema.

  3. Cambie al contexto donde su acceso directo es interceptado por una aplicación desconocida y escriba ⌘ cmd++ ⌥ option.F

    Busque una pista culpable de los nombres de archivo abiertos.

  4. whilesin éxito, agregue una aplicación y GOTO 3.

¡Bonito! Si hace esto lo suficientemente rápido, debería tener una lista de procesos bastante sucinta. Tenía alrededor de 50 líneas, la mitad de las cuales eran un proceso en segundo plano que sabía que no estaba escuchando las pulsaciones del teclado, por lo que pude filtrarlas fácilmente en un editor de texto. Las restantes 20 líneas más o menos registraron otros 3 procesos, y el 75% de ellos contenían mi culpable. Muchas gracias por compartir, @daniel
gracias daniel Estuve frustrado durante mucho tiempo porque algo más estaba capturando un acceso directo destinado a una de mis aplicaciones (¡y lo que es peor, estaba reproduciendo un pequeño sonido de ping!). ejecuté esto, vi tal vez 4 aplicaciones haciendo llamadas, una de ellas estaba abriendo "ping.aiff", ¡me llevó directamente al culpable!
Usé este método para encontrar que, frustrantemente, Logi Tune está capturando CMD+N. Funcionó perfectamente.
Esto funcionó muy bien, pero en macOS 12 parece que opensnoopno funciona debido a la Protección de integridad del sistema.
¿Recibe un mensaje de error o leyó esta limitación dentro de man opensnoop?

KeyCue proporciona información visual sobre los atajos de teclado. Se puede descargar como versión de prueba.

KeyCue de Ergonis

Lo tengo configurado para que un doble toque y mantenga presionada la tecla Comando muestre todos los accesos directos activos actualmente.

Después de probar KeyCue, me parece que solo muestra los atajos de teclado asociados con los comandos de menú para la aplicación activa actual. Además, parece mostrar teclas de acceso rápido globales de Keybaord Maestro y tal vez una o dos otras aplicaciones compatibles específicas. ¿Muestra teclas de acceso rápido globales para todas las aplicaciones para usted?
Encuentro algo misterioso en cuanto a qué teclas de acceso rápido se muestran para 'otras' aplicaciones. Creo que intenta (pero no tiene éxito completo) mostrar teclas de acceso rápido globales que son relevantes para el lugar donde se encuentra. La Guía del usuario se refiere específicamente a Keyboard Maestro.