web-dev-qa-db-fra.com

Simuler les clés multimédia dans le terminal

J'ai un nouveau téléphone Android doté de nombreuses applications permettant de communiquer via une connexion SSH. Je voudrais savoir si je peux utiliser les commandes ssh si je peux simuler les touches enfoncées, en particulier les touches multimédias (volume de pause de lecture). Je préférerais ne pas installer de logiciel supplémentaire.

Remarque: je sais qu'il existe des applications qui le font hors de la boîte, c'est simplement pour une meilleure compréhension.

23
Aaron Schif

La réponse est xdotool et il est peut-être déjà installé sur votre système Ubuntu. Il peut simuler des pressions de touches. Voir aussi [1].

Quelques commandes:

  • jouer pause

    xdotool key XF86AudioPlay
    
  • précédent Suivant

    xdotool key XF86AudioPrev 
    xdotool key XF86AudioNext
    
  • volume bas/haut

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • mute

    xdotool key XF86AudioMute
    

Pour plus de commandes XF86 voir [2].

Au lieu de faire le volume étape par étape, vous pouvez également le régler avec alsamixer ou pulseaudio (recommandé). En supposant que vous utilisiez le périphérique 0 (vous pouvez le vérifier avec alsamixer ou pacmd list-sinks), vous pouvez régler le volume sur par exemple 80% avec

  • alsamixer (-c 0 spécifie l'ID du périphérique audio)

    amixer -c 0 sset Master,0 80%
    
  • pulseaudio (le 0 devant les 80% correspond à l'identifiant du périphérique audio)

    pactl set-sink-volume 0 80%
    

Pour plus d'informations sur ces commandes, voir leurs pages de manuel.


EDIT: Si vous essayez de faire les commandes xdotool sur ssh et obtenez le message d'erreur suivant

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

vous devez définir la variable DISPLAY:

export DISPLAY=':0.0'

Après cela devrait fonctionner sans problèmes


[1] http://www.semicomplete.com/projects/xdotool/xdotool.xhtml
[2] http://wiki.linuxquestions.org/wiki/XF86_keyboard_symbols

41
Gerhard Burger