J'essaie de simuler une pression de touche multimédia à l'aide d'un raccourci personnalisé.
Jusqu'à présent, j'ai pu réaliser la simulation dont j'ai besoin en utilisant la commande:
xdotool key XF86AudioPlay
Il fonctionne parfaitement, il met en pause ou démarre le lecteur de musique à chaque fois qu'il est exécuté.
Le problème survient lorsque vous essayez de l'exécuter en tant que raccourci.
J'ai d'abord essayé d'exécuter un alias avec un raccourci personnalisé, mais cela n'a pas fonctionné.
Comme expliqué sur cette question :
Les commandes exécutées par les liaisons clavier ne sont pas analysées via un shell. Votre meilleur pari est de créer un répertoire dans votre homedir.
Ensuite, j'ai créé le script suggéré et je l'ai nommé simplay
:
#!/bin/sh
xdotool key XF86AudioPlay
Il est situé dans un dossier bin qui fait partie de la PATH
, cela fonctionne bien et peut être exécuté à partir de n'importe quel emplacement.
Lorsque j'ai essayé de créer le raccourci personnalisé, je n'ai pas réussi à le faire exécuter, la configuration est la suivante:
Name: test
Command: simplay
Shortcut: Ctrl+Alt+R
Après avoir cherché un peu plus, j'ai trouvé une autre façon d'exécuter le raccourci:
gnome-terminal -e simplay
Je l'ai essayé sur un terminal et j'ai remarqué qu'en l'exécutant, il ouvrirait rapidement une nouvelle fenêtre de terminal, exécuterait le processus enfant, mettrait la musique en pause et fermerait immédiatement la fenêtre.
J'ai changé la commande sur le raccourci et en le frappant j'ai remarqué le même comportement ouvrant un terminal et étant immédiatement fermé mais cette fois le processus enfant n'a pas mis la musique en pause, ce qui me fait penser que le script a été appelé à toutes mes tentatives précédentes mais il ne peut en quelque sorte pas être exécuté.
Comment puis-je résoudre ce problème selon vos connaissances?
la source
Une alternative (pour des performances plus rapides) à l'utilisation
sleep 1 && xdotool ...
consiste à utiliser xdotool pour libérer vos touches de raccourci. Un peu plus long, mais vous pouvez également utiliserla source