Eu tenho um fone de ouvido estéreo Bluetooth LG Tone (HBS 700) e estou usando-o com o OS X Lion.
O fone de ouvido possui um botão de alternância de reprodução / pausa, mas, diferentemente do botão de reprodução do meu teclado, que alterna entre reproduzir / pausar para, por exemplo, o VLC media player se estiver em execução, o botão de reprodução do fone de ouvido iniciará o iTunes se ainda não estiver aberto ou alterne a reprodução / pausa no iTunes, se já estiver aberto. Não alterna a reprodução / pausa em qualquer outro media player.
Alguém pode explicar qual evento do sistema provavelmente está sendo acionado quando eu pressiono play? É claro que algum daemon do sistema está ouvindo alguma coisa, já que o iTunes é iniciado e pode interpretar os controles play / pause / next / prev muito bem ... Existe uma maneira de interceptar o evento de pressionamento de tecla e remapear sua função? Gostaria que ele tivesse o mesmo comportamento que o botão de reprodução do teclado.
Obrigado pela ajuda!
fonte
Primeiro, você precisará de um aplicativo de remapeamento de teclado de terceiros chamado Karabiner (anteriormente KeyRemap4MacBook). O aplicativo é um pouco hostil, mas em teoria você só precisa fazer isso uma vez. Além disso, atualmente não funciona no MacOS Sierra ... portanto, lembre-se disso.
Aqui vamos nós...
Instalar o Karabiner
https://pqrs.org/osx/karabiner/index.html.en
Run Karabiner
Você deve conceder algumas permissões de acessibilidade se desejar todos os recursos.
Use o aplicativo auxiliar "EventViewer" para obter códigos de chave
Abra o EventViewer para obter códigos-chave / IDs de aplicativos / dispositivos:
Vá para a guia Principal e pressione a (s) tecla (s) no teclado, no controle remoto bluetooth etc. que deseja mapear novamente. Nesse caso, você pode ver códigos de tecla para Media-Forward e Media-Back no meu controle remoto Satechi bluetooth (que eu quero mapear novamente para as teclas de seta esquerda / direita).
Vá em frente e "copie para a área de transferência" e cole-a em um documento de texto para mais tarde. Agora, dependendo do seu caso de uso, você pode ir para a guia App ou Dispositivos.
Se você deseja limitar o remapeamento da chave para aplicativos específicos, crie uma regra de mapeamento que seja para um ID de aplicativo específico (por exemplo, google chrome). Então, você iria para a guia do aplicativo e obteria o ID do aplicativo de seu interesse (a ser usado posteriormente quando criarmos a regra).
No meu caso, SÓ quero remapear essas teclas no meu controle remoto Satechi bluetooth e não quero estragar o funcionamento de minhas teclas de teclado existentes ... então, quero criar uma regra específica para o dispositivo. Então, eu vou para a guia Dispositivos.
Nota!!! Para aplicativos e dispositivos, você também deve copiar e colar em um arquivo de texto para ter as sequências completas de ID de dispositivo / aplicativo para uso em nossa regra.
Construindo as regras
Agora que você tem códigos-chave, IDs de aplicativos e / ou dispositivos copiados e colados em um arquivo de texto para referência posterior, você pode fechar o EventViewer e voltar ao aplicativo principal.
As regras padrão não são muito interessantes para nós, portanto, precisamos criar uma regra personalizada, mas editando
private.xml
Isso apenas iniciará uma janela do localizador mostrando private.xml. Vá em frente e abra private.xml no seu editor de texto favorito.
Agora você está pronto para criar regras ...
A documentação sobre o formato deste arquivo está aqui: https://pqrs.org/osx/karabiner/xml.html.en
Para cada um
<item>
você precisa de mínimo<name>
<identifier>
e<autogen>
. Nome é apenas um nome para você. O identificador também é composto por você, mas deve ser exclusivo. autogen é onde você especifica a regra / mapeamento (ou seja, a chave de interesse deve enviar as chaves para a barra).De interesse adicional, você pode especificar que a regra é executada apenas para aplicativos ativos específicos (acho que é aqui que as permissões de acessibilidade do MacOS entram em jogo ... para que o Karabiner possa determinar a janela ativa). Isso é feito com
<only>
.Também é interessante (para mim) o
<device_only>
que me permite fazer uma regra apenas para um teclado específico (ou seja, meu controle remoto via satélite bluetooth). Veja o link acima para mais detalhes.De qualquer forma. Use os IDs de código-chave, de dispositivo e de aplicativo que você obteve do EventViewer para construir suas regras personalizadas.
O meu fica assim:
Resumo: 2 regras. Apenas dispositivo remoto Bluetooth Satechi. o botão "próximo" da mídia é mapeado para a seta direita, o botão "anterior" para a seta esquerda. Aplica-se a todos os aplicativos.
Carregar as regras
Salve seu arquivo XML. Volte para o aplicativo Karabiner. Vá para a guia "Alterar chave". Clique em "Recarregar XML" no canto superior esquerdo. Suas novas regras devem aparecer agora. Marque as caixas para ativar as regras. Teste se seus novos mapeamentos de teclas funcionam como esperado.
O aplicativo definitivamente não é fácil de usar, mas me permitiu configurar exatamente o que eu queria com bastante facilidade, depois que entendi as opções. O Karabiner é um pouco problemático ... Alguns eventos pararam de aparecer no visualizador de eventos, embora as regras de remapeamento ainda estivessem funcionando ... reiniciar ajuda.
fonte