Synergy: Não é possível enviar chaves de mídia do Linux para o Mac

4

Eu tenho um servidor Linux Synergy (Si-Linux) servindo apenas um cliente Mac (Macbook Pro UK) (SiBook-Pro.local).

No meu servidor Linux, estou usando um teclado USB da Apple com o layout exato do teclado de laptops (o compacto teclado de alumínio do Reino Unido).

Eu gostaria de enviar as chaves de mídia para o cliente Mac em todos os momentos e tentei o seguinte no meu synergy.conf :

keystroke(AudioPlay) = keystroke(AudioPlay,SiBook-Pro.local)

Isso não funcionou, então executei o servidor e o cliente como processos em primeiro plano e com a depuração ativada e observei o seguinte:

Log do servidor:

DEBUG1: activate actions
DEBUG1: hotkey: keyDown(AudioPlay,SiBook-Pro.local)
DEBUG1: onKeyDown id=57523 mask=0x0000 button=0x0000
DEBUG1: send key down to "SiBook-Pro.local" id=57523, mask=0x0000, button=0x0000
DEBUG1: deactivate actions
DEBUG1: hotkey: keyUp(AudioPlay,SiBook-Pro.local)
DEBUG1: onKeyUp id=57523 mask=0x0000 button=0x0000
DEBUG1: send key up to "SiBook-Pro.local" id=57523, mask=0x0000, button=0x0000

Log do cliente:

DEBUG1: recv key down id=0x0000e0b3, mask=0x0000, button=0x0000
DEBUG1: mapKey e0b3 (57523) with mask 0000, start state: 0000
DEBUG1: key e0b3 is not on keyboard
DEBUG1: recv key up id=0x0000e0b3, mask=0x0000, button=0x0000
DEBUG1: recv enter, 1279,386 5 2000

Como você pode ver, o cliente afirma que a chave recebida não está no teclado . Eu não entendo, pois é a mesma chave que está no teclado do Macbook.

Eu tentei inverter a configuração cliente-servidor para ver se eu poderia capturar a chave que estava sendo enviada se eu pressionasse o botão Play no Macbook, mas a chave nem parece chegar ao Synergy. Quase todas as impressoras de teclado são registradas, mas as teclas de mídia parecem ignorar os logs e executar sua função localmente. Por exemplo. Eu pressiono o play no Macbook (com o Macbook como servidor) e a tecla toca música no Macbook e a chave não está conectada ao log de depuração.

    
por sjbx 17.10.2012 / 12:23

1 resposta

6

Esta é uma limitação no Mac Synergy Client. Há duas coisas que impedem o Mac Synergy de lidar com teclas multimídia:

  1. O Mac Synergy constrói seu mapa de teclado a partir do layout de teclado do Mac (por exemplo, inglês americano, francês, etc.) e estes não contêm chaves de mídia
  2. A API do Mac não permite gerar pressionamentos sintéticos de teclas que correspondam a pressionar teclas multimídia.

Eu escrevi um patch para o Mac Synergy (e enviei-o para o projeto no link ) que trabalha em torno de ambos os problemas, inserindo as teclas de mídia no layout manualmente e usando as teclas serializadas pressionadas durante uma tecla pressionada.

Você pode fazer o download do patch você mesmo e compilar a sinergia ou adicionar uma nota ao problema solicitando a integração. Se nenhum desses trabalhos, entre em contato comigo, e eu posso lhe enviar o binário que estou usando ...

    
por 11.01.2013 / 02:56

Tags