¿Cómo puedo reasignar una pulsación de tecla de reproducción desde un auricular Bluetooth en OS X?

13

Tengo un auricular estéreo Bluetooth LG Tone (HBS 700) y lo estoy usando con OS X Lion.

El auricular tiene un botón de alternar reproducción / pausa, pero a diferencia del botón de reproducción de mi teclado, que alternará la reproducción / pausa para, digamos, el reproductor multimedia VLC si se está ejecutando, el botón de reproducción del auricular iniciará iTunes si aún no está abierto, o alternar reproducción / pausa en iTunes si ya está abierto. No alternará reproducción / pausa en ningún otro reproductor multimedia.

¿Alguien puede explicar qué evento del sistema es probable que se active cuando presiono play? Está claro que algunos demonios del sistema están escuchando algo, ya que iTunes se inicia y puede interpretar bien los controles de reproducción / pausa / siguiente / anterior ... ¿Hay alguna forma de interceptar el evento de pulsación de tecla y reasignar su función? Me gustaría que tuviera el mismo comportamiento que el botón de reproducción del teclado.

¡Gracias por tu ayuda!

Estofado
fuente

Respuestas:

7

Está buscando el Daemon de control remoto ubicado en:

/System/Library/CoreServices/rcd.app

Se puede deshabilitar con el comando

sudo chmod a-x /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd
killall -9 rcd

(Si lo acaba de matar, launchdlo reiniciará nuevamente). Para volver a habilitarlo,

sudo chmod a+x /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd

Luego, cierre sesión y vuelva a launchdiniciarla para iniciarlo.

Si tienes suficientes ambiciones, puedes intentar editarlo con un editor hexadecimal. Esto está fuera de mi ámbito de conocimiento, pero tengo dos sugerencias.

  1. Abrir quicktime (solo en blanco, sin nada) en segundo plano puede evitar que el demonio use iTunes. Depende de si su dispositivo usa el mismo evento del sistema.

  2. Alternativamente, hay una utilidad gratuita ubicada en el siguiente enlace que parchea el demonio por usted. Después de ejecutarlo, el demonio usará el programa activo, en lugar de iTunes. Sin embargo, esto no reasignará VLC como el programa que se abrirá cuando presione reproducir. Está diseñado para las teclas multimedia del teclado, pero creo que el sistema operativo ve el botón de su LG Tone como el mismo evento del sistema. Ese enlace: http://lifehacker.com/5651055/free-your-macs-media-keys-from-itunes-no-manual-hacking-required

Finalmente, puedo decirle que Apple aún no ha proporcionado una forma simple de cambiar la configuración del control remoto. Esto es lamentable, ya que esta es una pregunta común con respecto a las teclas multimedia en teclados y otros controles en dispositivos como el suyo. En lugar de proporcionar una solución, parece que han realizado cambios en el sistema operativo en el pasado para garantizar que iTunes sea el programa utilizado por este demonio. Desafortunadamente, es poco probable que haya una solución mejor que estas pronto.

Blackjack00
fuente
3
En mi experiencia, los dispositivos bluetooth que envían señales de reproducción / pausa no se interpretan de la misma manera que se interpretan las teclas multimedia del teclado. Usando el parche mencionado, mi teclado se comporta como se esperaba, pero mis auriculares bluetooth continúan lanzando iTunes. Solo pensé que no lo haría por el bien de la posteridad.
Wilco
¿Algún consejo sobre cómo hacer este cambio en OS X Sierra? Tienen un sistema de protección os, y es bastante difícil hacer tales cambios.
AB
3

Primero, necesitará una aplicación de reasignación de teclado de terceros llamada Karabiner (anteriormente KeyRemap4MacBook). La aplicación es poco amigable para el usuario, pero en teoría solo necesita hacer esto una vez. Además, actualmente no funciona en MacOS Sierra ... así que tenlo en cuenta.

Aquí vamos...

Instalar mosquetón

https://pqrs.org/osx/karabiner/index.html.en

Run Karabiner

Debe otorgarle algunos permisos de accesibilidad si desea todas las funciones.

Use la aplicación auxiliar "EventViewer" para obtener códigos de teclas

Abra EventViewer para obtener códigos de teclas / aplicaciones / identificadores de dispositivo:

ingrese la descripción de la imagen aquí

Vaya a la pestaña Principal y luego presione la (s) tecla (s) en su teclado, control remoto bluetooth, etc. que desee volver a asignar. En este caso, puede ver códigos de teclas para Media-Forward y Media-Back en mi control remoto Bluetooth Satechi (que quiero volver a asignar a las teclas de flecha izquierda / derecha).

ingrese la descripción de la imagen aquí

Continúe y "copie en el tablero" y péguelo en un documento de texto para más adelante. Ahora, dependiendo de su caso de uso, puede ir a la aplicación o la pestaña Dispositivos.

Si desea limitar la reasignación de su clave a aplicaciones específicas, entonces querrá crear una regla de mapeo que sea para un ID de aplicación específico (por ejemplo, Google Chrome). Por lo tanto, debe ir a la pestaña de la aplicación y obtener el ID de la aplicación de su aplicación de interés (para usar más adelante cuando creamos la regla).

ingrese la descripción de la imagen aquí

En mi caso, SOLO quiero reasignar estas teclas en mi control remoto Bluetooth Satechi y no quiero estropear cómo funcionan las teclas de mi teclado existente ... así que quiero hacer una regla específica del dispositivo. Entonces voy a la pestaña Dispositivos.

ingrese la descripción de la imagen aquí

¡¡¡Nota!!! Para aplicaciones y dispositivos, también debe copiar y pegar en un archivo de texto para tener las cadenas de identificación de dispositivo / aplicación completas para usar en nuestra regla.

Construyendo las reglas

Ahora que tiene códigos de teclas, identificadores de aplicaciones y / o dispositivos copiados y pegados en un archivo de texto para referencia posterior, puede cerrar EventViewer y volver a la aplicación principal.

Las reglas predeterminadas no son muy interesantes para nosotros, por lo que debemos crear una regla personalizada pero editar private.xml

ingrese la descripción de la imagen aquí

Esto solo lanzará una ventana del buscador que muestra private.xml. Continúe y abra private.xml en su editor de texto favorito.

Ahora estás listo para construir reglas ...

La documentación sobre el formato de este archivo está aquí: https://pqrs.org/osx/karabiner/xml.html.en

Para cada <item>uno necesita mínimo <name> <identifier> y <autogen>. Nombre es solo un nombre para ti. El identificador también está compuesto por usted, pero debe ser único. autogen es donde se especifica la regla / asignación (es decir, la clave de interés debe enviar claves para la barra).

De mayor interés puede especificar que la regla solo se ejecuta para aplicaciones activas específicas (creo que aquí es donde entran en juego los permisos de Accesibilidad de MacOS ... para que Karabiner pueda determinar la ventana activa). Esto se hace con <only>.

También es de interés (para mí) lo <device_only>que me permite hacer una regla solo para un teclado específico (es decir, mi control remoto satechi bluetooth). Vea el enlace de arriba para más detalles.

De todas formas. Use las ID de código clave, las ID de dispositivo y los ID de aplicación que obtuvo de EventViewer para construir sus reglas personalizadas.

El mío se ve así:

<?xml version="1.0"?>
<root>
    <item>
        <name>Satechi Right</name>
        <identifier>private.satechi.right</identifier>
        <device_only>DeviceVendor::RawValue::0x05ac,DeviceProduct::RawValue::0x023c</device_only>
        <autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_NEXT_17, KeyCode::CURSOR_RIGHT</autogen>
    </item>
    <item>
        <name>Satechi Left</name>
        <identifier>private.satechi.left</identifier>
        <device_only>DeviceVendor::RawValue::0x05ac,DeviceProduct::RawValue::0x023c</device_only>
        <autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PREV_18, KeyCode::CURSOR_LEFT</autogen>
    </item>
</root>

Resumen: 2 reglas. Solo dispositivo remoto Satechi bluetooth. el botón de medios "siguiente" se asigna a la flecha derecha, el botón de medios "anterior" a la flecha izquierda. Aplica a todas las aplicaciones.

Cargar las reglas

Guarda tu archivo XML. Regrese a la aplicación Karabiner. Vaya a la pestaña "Cambiar clave". Haz clic en "Recargar XML" en la esquina superior izquierda. Tus nuevas reglas ahora deberían aparecer. Marque las casillas para habilitar las reglas. Pruebe que sus nuevas asignaciones de teclas funcionen como se espera.

ingrese la descripción de la imagen aquí

La aplicación definitivamente no es fácil de usar, pero me permitió configurar exactamente lo que quería con bastante facilidad una vez que entendí las opciones. Karabiner es un poco defectuoso ... Tuve algunos eventos que dejaron de aparecer en el visor de eventos a pesar de que las reglas de reasignación aún funcionaban ... reiniciar ayuda.

mattpr
fuente
1
Parece que el sucesor de Karabiner, Karabiner-Elements, que es una actualización necesaria para las versiones más recientes de MacOS, no ve los controles del dispositivo multimedia Bluetooth. El nuevo EventViewer no registra tales pulsaciones de botones, pero iTunes aún se inicia de todos modos. :(
wfaulk