web-dev-qa-db-fra.com

Créer un raccourci personnalisé qui tape le contenu du presse-papiers

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.

Linux Sendkeys

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?

5
isuldor

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)"'
6
Alex L.

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.

3
Pierre Carrier

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.

1
Eschaton

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?

0
Nick Andrik