Имитировать медиа-ключи в терминале

16

У меня есть новый Android-телефон, в котором есть несколько приложений для общения через ssh-соединение. Я хотел бы знать, могу ли я использовать команды ssh, если я могу имитировать нажатие клавиши, в частности, клавиши мультимедиа (громкость паузы воспроизведения). Я бы предпочел не устанавливать дополнительное программное обеспечение.

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

    
задан Aaron Schif 02.01.2013 в 05:52
источник

1 ответ

29

Ответ будет xdotool , и он может быть уже установлен в вашей системе Ubuntu. Он может имитировать нажатия клавиш. См. Также [1].

Некоторые команды:

  • play / pause

    xdotool key XF86AudioPlay
    
  • предыдущий / следующий

    xdotool key XF86AudioPrev 
    xdotool key XF86AudioNext
    
  • объем вниз / вверх

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • mute

    xdotool key XF86AudioMute
    

Дополнительные команды XF86 см. в [2].

Вместо того, чтобы делать шаг за шагом, вы также можете установить его с помощью alsamixer или pulseaudio (рекомендуется). Предполагая, что вы используете устройство 0 (вы можете проверить это с помощью alsamixer или pacmd list-sinks ), вы можете установить том, например, на 80% с помощью

  • alsamixer (-c 0 указывает идентификатор звукового устройства)

    amixer -c 0 sset Master,0 80%
    
  • pulseaudio (0 перед 80% - это идентификатор звукового устройства)

    pactl set-sink-volume 0 80%
    

Дополнительные сведения об этих командах см. в их файлах.

EDIT: Если вы пытаетесь выполнить команды xdotool по ssh и получите следующее сообщение об ошибке

Error: Can't open display: (null)
Segmentation fault

вам нужно установить переменную DISPLAY:

export DISPLAY=':0.0'

После этого он должен работать без проблем

[1] Ссылка
[2] Ссылка

    
ответ дан Gerhard Burger 02.01.2013 в 11:06
источник