Une autre suggestion de xdotool, fonctionnant dans Debian Jessie 8.7 (janvier 2017) :
xdotool click --delay 0 --clearmodifiers 2
- xdotool gère les chaînes de caractères multi-octets (p.e. UTF-8), contrairement à xvkbd.
-
xdotool click
simule un clic réel, de sorte que vous n'avez pas à cliquer vous-même pour coller à la position de la souris, comme vous l'auriez fait si vous aviez utilisé xdotool type
ou xvkbd.
Le seul problème est que --clearmodifiers
renverra tout modificateur (Ctrl/Alt/Shift/Meta) que vous utilisez après avoir simulé le clic. Même avec --delay 0
(au lieu de 12ms), la commande prend un peu de temps à s'exécuter. Si vous relâchez les touches avant la fin, vos modificateurs seront à nouveau "pressés" et resteront bloqués jusqu'à ce que vous pressiez et relâchiez à nouveau la touche.
Il faut donc être un peu "lent" (50 ms ?) pour libérer les modificateurs, si vous en utilisez.
Vous pouvez tester cela en configurant votre raccourci clavier, en l'utilisant dans un éditeur de texte, puis en appuyant sur une touche (comme a
ou une flèche). La lettre doit apparaître en minuscules. Si quelque chose d'autre se produit, c'est que vous êtes trop rapide et qu'un modificateur est bloqué (p.ex. Shift s'il est en majuscules, Ctrl si vous avez sélectionné tout le texte, Alt si vous avez ouvert un menu). Appuyez à nouveau sur vos modificateurs et relâchez-les pour les réinitialiser.
Si vous êtes trop rapide, vous pouvez utiliser la suggestion d'ilkerk :
sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0 "`xsel`"'
Vous devez ensuite les libérer en moins de 300 ms, et attendre une demi-seconde pour que le texte apparaisse.
De même, l'utilisation de xdotool type
signifie que vous insérez le texte comme si vous le tapiez, à la position du curseur de texte et non à celle du pointeur de la souris. Vous pouvez le modifier en click
si vous préférez le comportement habituel du clic du milieu.
(ce billet a été créé pour que les nouveaux arrivants n'aient pas à reconstituer les pièces du puzzle dans les commentaires)