Simuler des clés multimédias dans le terminal

25

J'ai un nouveau téléphone Android qui a un certain nombre d'applications pour communiquer via une connexion ssh. Je voudrais savoir si je peux utiliser les commandes ssh si je peux simuler une touche appuyée, en particulier les touches média (lecture du volume de pause). 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.

Aaron Schif
la source

Réponses:

44

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
    
  • baisse / augmentation du volume

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • muet

    xdotool key XF86AudioMute
    

Pour plus de commandes XF86, voir [2].

Au lieu de faire le volume pas à pas, vous pouvez également le régler en utilisant alsamixer ou pulseaudio (recommandé). En supposant que vous utilisez le périphérique 0 (vous pouvez le vérifier avec alsamixerou pacmd list-sinks), vous pouvez régler le volume 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 le 80% est l'identifiant du périphérique audio)

    pactl set-sink-volume 0 80%
    

Pour plus d'informations sur ces commandes, consultez 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, cela devrait fonctionner sans problème


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

Gerhard Burger
la source
Que faut-il pour que cela fonctionne sur SSH? L'utilisation de ces commandes dans un shell distant entraîne une simulation sur machine locale vs machine distante.
earthmeLon
3
@earthmeLon Êtes-vous sûr que vous exécutez la commande sur la machine distante? Parce que pour moi ça marche bien sur ssh. Je devais cependant définir la variable DISPLAY, voir ma modification.
Gerhard Burger
Le réglage de l'affichage comme vous l'avez suggéré a résolu le problème. Merci: D
earthmeLon
2
Notez que lorsque vous les liez à certaines clés dans xfce4, vous devrez utiliser l' --clearmodifiersindicateur, quelque chose comme ceci:xdotool key --clearmodifiers XF86AudioPlay
cab404
Ce que @ cab4040 a mentionné s'applique également à GNOME. Si l'on souhaite ajouter des touches multimédias personnalisées sur un clavier qui en manque, on peut aller dans la Keyboard Shortcutssection des paramètres et ajouter une liaison entre un raccourci clavier et une xdotool keycommande avec --clearmodifiers, voir ci-dessus.
Pierre Thalamy