3

Я работаю с Synergy (GUI) и пытаюсь создать клавиши регулировки громкости, которые изменяют громкость одного компьютера независимо от того, какой экран активен в данный момент. У меня есть два экрана, давайте назовем их A и B. Для простоты я буду ссылаться только на горячую клавишу увеличения громкости, так как добавление громкости вниз и отключение звука должно быть простым, если я могу понять один из них.

Если я нажму F12 на A или B, я хочу увеличить громкость на B.

Я пробовал несколько настроек:

1)

On keystroke(F12):
   Switch to Screen B
   Send key VolumeUp

2)

On keystroke(F12):
   Switch to Screen B
   Send key F12

AHK Script defines F12 as hotkey VolumeUp On B

3)

Both of the above
Switch to Screen A

Ни один из них не дал мне ту функциональность, которую я ищу. Часто громкость не меняется, как и экран. Фактически, их настройка иногда приводила к тому, что скрипт AHK не работал. Моя абсолютно предпочтительная функциональность будет:

On keystroke(F12):
  Determine which screen is currently active
  Make Screen B active if it isn't already
  Increase the system volume
  Return to the previously active screen

У кого-нибудь есть указания на то, как заставить это работать?

== Редактировать, больше информации == Сценарий AHK:

F11::Send {Volume_Down 3} ; Lower the master volume by 3 interval (typically 5%)
Return

F12::Send {Volume_Up 3}  
Return

F10::Send {Volume_Mute} ; Mutes The system Volume
Return

Опять же, обратите внимание, что этот скрипт отлично работает локально.

Синергия Config:

section: screens
balthazar:
    halfDuplexCapsLock = false
    halfDuplexNumLock = false
    halfDuplexScrollLock = false
    xtestIsXineramaUnaware = false
    switchCorners = none 
    switchCornerSize = 0
midnight:
    halfDuplexCapsLock = false
    halfDuplexNumLock = false
    halfDuplexScrollLock = false
    xtestIsXineramaUnaware = false
    switchCorners = none 
    switchCornerSize = 0
end

section: aliases
end

section: links
balthazar:
    right = midnight
midnight:
    left = balthazar
end

section: options
relativeMouseMoves = false
screenSaverSync = true
win32KeepForeground = false
switchDelay = 10
switchCorners = none 
switchCornerSize = 0
keystroke(F11) = switchToScreen(midnight), keyDown(F11,midnight) ; keyUp(F11,midnight)
keystroke(F12) = switchToScreen(midnight), keyDown(F12,midnight) ; keyUp(F12,midnight)
keystroke(F10) = switchToScreen(midnight), keyDown(F10,midnight) ; keyUp(F10,midnight)
end

Как видите, я ковырялся с горячими клавишами. Я был почти уверен, что это будет работать, но это не так :(

== РЕДАКТИРОВАТЬ, больше информации ==

Хорошо, основываясь на некоторых IRC-чатах, которые я делал, я решил подойти к этому следующим образом: клиентам придется индивидуально переводить любой ключ, который они хотят, в AudioUp, а Synergy отправит все команды AudioUp до полуночи. Горячая клавиша Synergy теперь выглядит так:

keystroke(AudioUp) = keystroke(AudioUp,midnight)

Затем я установил AHK с:

F12::Send {Volume_Up 3}

И я надеялся, что это сделает. Но это не так. Я собираюсь выяснить, является ли AHK виновником здесь (возможно, Volume_Up!= AudioUp)

1 ответ1

1

Я просто хотел сказать, что мне удалось заставить это работать, используя в основном то, что вы сказали, что ваша вторая попытка была.

Вероятно, у вас был конфликт с AHK и Synergy, потому что это сработало для меня:

Когда я нажимаю громкость вниз / вверх воспроизведения / паузы на моем главном компьютере, я хочу, чтобы это влияло на мой другой компьютер (тот, который воспроизводит мою музыку)

    keystroke(AudioDown,PC1) = keystroke(AudioDown,PC2)
    keystroke(AudioUp,PC1) = keystroke(AudioUp,PC2)
    keystroke(AudioNext,PC1) = keystroke(AudioNext,PC2)
    keystroke(AudioPrev,PC1) = keystroke(AudioPrev,PC2)

Мой совет - сохранить файл конфигурации, а затем открыть тот, который вы сохранили, и отредактировать его.

Вот мой полный файл конфигурации:

section: screens
PC1:
    halfDuplexCapsLock = false
    halfDuplexNumLock = false
    halfDuplexScrollLock = false
    xtestIsXineramaUnaware = false
    switchCorners = none 
    switchCornerSize = 0
PC2:
    halfDuplexCapsLock = false
    halfDuplexNumLock = false
    halfDuplexScrollLock = false
    xtestIsXineramaUnaware = false
    switchCorners = none 
    switchCornerSize = 0
end

section: aliases
end

section: links
PC1:
    right = PC2
PC2:
    left = PC1
end

section: options
    keystroke(AudioDown,PC1) = keystroke(AudioDown,PC2)
    keystroke(AudioUp,PC1) = keystroke(AudioUp,PC2)
    keystroke(AudioNext,PC1) = keystroke(AudioNext,PC2)
    keystroke(AudioPrev,PC1) = keystroke(AudioPrev,PC2)
    relativeMouseMoves = false
    screenSaverSync = true
    win32KeepForeground = false
    switchCorners = none 
    switchCornerSize = 0
 end

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