web-dev-qa-db-fra.com

Comment puis-je remapper une touche de jeu de lecture d'un casque Bluetooth sur OS X?

J'ai un Tonalité LG (HBS 700) casque stéréo Bluetooth et je l'utilise avec OS X Lion.

Le casque a une touche de lutte à la lecture/pause, mais contrairement au bouton de lecture de mon clavier, qui va basculer la lecture/pause pour, disons, VLC Media Player s'il est en cours d'exécution, le bouton de lecture du casque lancera iTunes si elle n'est pas déjà ouverte, ou Toggle Play/Pause dans iTunes si elle est déjà ouverte. Il ne bascule pas la lecture/pause dans un autre lecteur multimédia.

Quelqu'un peut-il expliquer quel événement système est probablement déclenché quand j'appuie sur la lecture? Il est clair que certains démon système écoutent quelque chose, car iTunes est lancé et peut interpréter les commandes de jeu/pause/next/prev/prévisuez simplement ... Y a-t-il une façon de pouvoir intercepter l'événement KeyPress et Remonter sa fonction? J'aimerais qu'il ait le même comportement que le bouton de lecture du clavier.

Merci pour ton aide!

13
Stew

Vous recherchez le démon de contrôle à distance situé dans:

/System/Library/CoreServices/rcd.app

Il peut être désactivé avec la commande

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

(Si vous venez de le tuer, launchd _ le redémarrera à nouveau). Pour le réactiver,

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

Puis déconnectez-vous pour faire launchd commencer.

Si vous êtes suffisamment d'ambitions, vous pouvez essayer de le modifier avec un éditeur Hex. Ceci est en dehors de mon royaume de la connaissance, mais j'ai deux suggestions.

  1. Ouverture QuickTime (juste vide, rien dedans) en arrière-plan peut empêcher le démon d'utiliser iTunes. Cela dépend de la question de savoir si votre appareil utilise le même événement système.

  2. Alternativement, il existe un utilitaire gratuit situé au lien suivant qui corrige le démon pour vous. Après l'avoir exécuté, le démon utilisera le programme actif, au lieu d'iTunes. Toutefois, cela ne refroidira pas VLC comme le programme à ouvrir lorsque vous appuyez sur PLAY. Il est conçu pour les touches de média du clavier, mais je pense que le système d'exploitation voit votre LG = le même événement système. Ce lien: http://lifehacker.com/5651055/5651055/GRATUIT-VOTRE-VOTRE-MACS-MED-MEDIA-TEX-KEYS-OF-ITUNES-NO-Manual-hacking-requis

Enfin, je peux vous dire que Apple n'a pas encore fourni de moyen simple de modifier les paramètres de la télécommande. Ceci est malheureux, car il s'agit d'une question commune concernant les clés multimédia sur les claviers et les autres contrôles sur Des dispositifs tels que le vôtre. Plutôt que de fournir une solution, il semble qu'ils ont apporté des modifications au système d'exploitation dans le passé pour s'assurer que iTunes est le programme utilisé par ce démon. Malheureusement, il est peu probable que ce soit une meilleure solution que celles-ci.

7
Blackjack00

Vous aurez d'abord besoin d'une application de séparation de clavier tiers appelée Karabiner (anciennement KeyRemap4Mackook). L'application est un peu d'utilisateur hostile mais en théorie, il vous suffit de le faire une fois. De plus, il ne fonctionne pas actuellement sur Macos Sierra ... alors gardez cela à l'esprit.

Nous y voilà...

Installer Karabiner

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

Karabiner

Vous devez lui donner des autorisations d'accessibilité si vous souhaitez toutes les fonctionnalités.

Utilisez l'application Helper "EventViewer" pour obtenir des codes clés

Ouvrez l'événementViewer pour obtenir des codes clés/des identifiants d'application/de périphérique:

enter image description here

Allez dans l'onglet PRINCIPAL, puis appuyez sur la touche de votre clavier, de votre télécommande Bluetooth, etc. Vous souhaitez ré-mapper. Dans ce cas, vous pouvez voir des codes clés pour les médias et le média-retour sur ma télécommande Satechi Bluetooth (que je souhaite reproduire les touches fléchées gauche/droite).

enter image description here

Allez-y et "Copier à Pasteboard" et collez-le dans un document texte pour plus tard. En fonction de votre cas d'utilisation, vous pouvez accéder à l'application ou à l'onglet Périphériques.

Si vous souhaitez limiter votre séparation de clé à des applications spécifiques, vous souhaitez créer une règle de mappage correspondant à un ID d'application spécifique (par exemple Google Chrome). Vous iriez donc à l'onglet APP et obtenez l'ID d'application pour votre application d'intérêt (à utiliser ultérieurement lorsque nous créons la règle).

enter image description here

Dans mon cas, je veux seulement remapper ces clés sur ma télécommande Satechi Bluetooth et ne voulez pas gâcher comment mes clés de clavier existantes fonctionnent ... Donc, je veux faire une règle spécifique du périphérique. Donc, je vais à l'onglet Appareils.

enter image description here

Noter!!! Pour les applications et les périphériques, vous devez également copier et coller dans un fichier texte afin de disposer des chaînes de périphérique complets/de l'application d'application pour une utilisation dans notre règle.

Construire les règles

Maintenant que vous avez des codes clés, des identifiants d'applications et/ou de périphériques copiés et collés dans un fichier texte pour référence ultérieurement, vous pouvez fermer l'événementViewer et revenir à l'application principale.

Les règles par défaut ne nous sont pas très intéressantes pour nous, nous devons donc créer une règle personnalisée mais modifier private.xml

enter image description here

Cela va simplement lancer une fenêtre de recherche indiquant privé.xml. Allez-y et ouvrez privé.xml dans votre éditeur de texte préféré.

Maintenant, vous êtes prêt à construire des règles ...

La documentation sur le format de ce fichier est ici: https://pqrs.org/osx/karabiner/xml.html.en

Pour chaque <item> vous avez besoin Minimum<name><identifier> et <autogen>. Le nom n'est qu'un nom pour vous. L'identifiant est également composé de vous, mais devrait être unique. Autogen est l'endroit où vous spécifiez la règle/la mappage (c'est-à-dire que la touche d'intérêt doit envoyer des clés FOO bar).

D'autres intérêts, vous pouvez spécifier la règle uniquement pour des applications actives spécifiques (je pense que c'est là que les autorisations d'accessibilité MacOS entrent en jeu ... Donc, Karabiner peut déterminer la fenêtre active). Ceci est fait avec <only>.

Aussi d'intérêt (pour moi) est <device_only> Ce qui me permet de faire une règle uniquement pour un clavier spécifique (c'est-à-dire que ma télécommande Satechi Bluetooth). Voir le lien ci-dessus pour plus de détails.

De toute façon. Utilisez les identifiants de code KeyCode, ID du périphérique et ID d'application que vous avez obtenu à partir de l'événement eventViewer pour construire vos règles personnalisées.

Le mien ressemble à ceci:

<?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>

Résumé: 2 règles. Dispositif distant Satechi Bluetooth uniquement. "Suivant" Bouton Media Maps sur la flèche droite, "prev" bouton multimédia à la flèche gauche. S'applique à toutes les applications.

Charger les règles

Enregistrez votre fichier XML. Retournez à l'application Karabiner. Allez à l'onglet "Changer de clé". Cliquez sur "Recharger XML" en haut à gauche. Vos nouvelles règles devraient maintenant se présenter. Cochez les cases pour activer les règles. Testez que vos nouveaux mappages clés fonctionnent comme prévu.

enter image description here

L'application n'est définitivement pas conviviale mais m'a permis de configurer exactement ce que je voulais assez facilement une fois que j'ai compris les options. Karabiner est un peu buggy ... j'avais des événements cesse de s'afficher dans le spectateur d'événements, même si les règles de remappage travaillaient encore ... le redémarrage aide.

3
mattpr