Je souhaite simuler une entrée au clavier afin de pouvoir "coller" le contenu de mon presse-papiers dans des applications qui ne le permettent pas (par exemple, KVM distant). En ce moment, j'essaie d'utiliser xdotool
et xclip
:
xdotool type "$(xclip -o)"
Cette commande fonctionne si je reste dans une fenêtre de terminal et que je tape cette commande moi-même. Il tape en arrière le contenu de mon presse-papiers lorsque je lance la commande. Mon objectif est de lier cette commande à une touche de raccourci pour qu'elle fonctionne dans n'importe quelle application.
Si j'utilise ce raccourci clavier, un comportement inattendu se produit quelle que soit la fenêtre active. par exemple. la taille de ma fenêtre de terminal diminue (c'est plutôt amusant, en fait). Des résultats similaires se produisent si je l’enregistre en tant que script et l’appelle, ou si j’encapsule la commande avec sh -c
. Comment puis-je utiliser de manière pratique la puissante commande xdotool type
?
Vous avez deux problèmes avec cette commande. La première est que vous devez vous assurer que les méta-clés de la liaison ne sont pas enfoncées lors de la tentative d'exécution de la commande. Deuxièmement, par défaut, xclip sélectionne le tampon XA_Primary
plutôt que le XA_CLIPBOARD
. Vous devez donc passer clipboard
comme paramètre de sélection pour xclip. Modifiez votre commande de raccourci clavier comme suit:
sh -c 'sleep 0.5; xdotool type "$(xclip -o -selection clipboard)"'
xdotool crée des pressions sur les touches, sans que la touche Ctrl ne soit libérée. La solution la plus simple consiste à ajouter un délai, par exemplesleep 0.5
à attendre une demi-seconde et à laisser que vous relâchez assez vite Ctrl.
sh -c 'type xdotool --clearmodifiers - "$ (xclip -o -selection clipboard)"'
"--clearmodifiers" se débarrasse de CTRL/ALT/Shift etc., ce qui signifie que le sommeil n'est pas nécessaire
"-" signifie la fin des options xdotool de sorte que si le test collé commence par - xdotool n'essaiera pas de l'interpréter comme une option.
En réalité, deux tampons sont accessibles avec Ctrl+V
(le copier-coller du presse-papiers) et Shift+Insert
(le repère de la souris et le collage du clic du milieu).
Si les sessions sont correctement connectées pour partager le Presse-papiers, l'une des deux devrait fonctionner automatiquement, non?