4

У меня есть сервер Linux Synergy (Si-Linux), обслуживающий только одного клиента Mac (Macbook Pro UK) (SiBook-Pro.local).

На моем Linux-сервере я использую USB-клавиатуру Apple с точной раскладкой клавиатуры ноутбука (компактная алюминиевая клавиатура Великобритании).

Я хотел бы постоянно отправлять медиа-ключи клиенту Mac, и я попытался сделать следующее в моем synergy.conf:

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

Похоже, это не сработало, поэтому я запустил сервер и клиент в качестве процессов переднего плана и с включенной отладкой и заметил следующее:

Журнал сервера:

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

Журнал клиента:

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

Как видите, клиент утверждает, что полученный ключ находится не на клавиатуре. Я не понимаю, так как это та же клавиша, что и на клавиатуре Macbook.

Я попытался отменить конфигурацию клиент-сервер, чтобы посмотреть, смогу ли я перехватить отправляемую клавишу, если бы нажал кнопку «Воспроизвести» на Macbook, но эта клавиша, похоже, даже не добралась до Synergy. Почти все нажатия клавиш регистрируются, но клавиши мультимедиа, кажется, обходят журналы и просто выполняют свою функцию локально. Например, я нажимаю кнопку воспроизведения на Macbook (с Macbook в качестве сервера), и ключ воспроизводит музыку на Macbook, и ключ не записывается в журнал отладки.

1 ответ1

6

Это ограничение в Mac Synergy Client. Mac Synergy не может обрабатывать мультимедийные клавиши двумя способами:

  1. Mac Synergy создает свою карту клавиатуры из раскладки клавиатуры Mac (например, американский английский, французский и т.д.), И они не содержат мультимедийных клавиш.
  2. Mac API не позволяет генерировать синтетические нажатия клавиш, которые соответствуют нажатию мультимедийных клавиш.

Я написал патч для Mac Synergy (и отправил его в проект по адресу http://synergy-foss.org/spit/issues/details/3375/ ), который решает обе эти проблемы, вставляя медиа-ключи в компоновка вручную и с использованием сериализованных нажатий клавиш мультимедиа, записанных во время фактического нажатия клавиши.

Вы можете скачать патч самостоятельно и скомпилировать синергию или добавить примечание к проблеме, требующее его интеграции. Если ни одна из этих работ не работает, свяжитесь со мной, и я могу выслать вам двоичный файл, которым я пользуюсь ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .