47 votes

Raccourci clavier pour coller la sélection primaire

Existe-t-il un raccourci clavier standard ou conventionnel pour coller la sélection primaire ?

J'aimerais sélectionner un texte et aller dans une autre application pour le coller. sin le contenu de mon presse-papiers. Je préfère garder mes doigts sur le clavier plutôt que de passer à la souris, trouver le pointeur, le positionner où je veux et faire un clic moyen.

S'il n'y a rien de conventionnel, ou si c'est spécifique à une application et non supporté par beaucoup, y a-t-il une solution de contournement pour que cela fonctionne globalement (ou au moins dans plus d'applications) ?

34voto

L'envoi de touches virtuelles ne fonctionne pas pour moi (voir commentaires ), mais cette réponse m'a incité à rechercher des solutions similaires. L'envoi d'un événement "texte" avec xvkbd ignore l'état actuel de votre clavier physique :

sh -c 'xsel | xvkbd -xsendevent -file - 2>/dev/null'

xvkbd -text utilise quelques séquences d'antislash, donc plutôt que de danser avec les échappements, -file œuvre. Ajouter -delay 0 pour saisir le texte sans délai entre les "frappes". xvkbd produit également un texte d'avertissement sur les modificateurs, mais il ne semble pas pertinent pour cette utilisation (mais je ne voulais pas le voir dans la rubrique ~/.xsession-errors ).

Je l'ai lié à un raccourci en utilisant Système > Préférences > Raccourcis clavier .

Notez que les paquets xsel et xvkbd doivent être installés :

sudo apt-get install xsel xvkbd

8voto

Anne Points 181

Je cherchais une réponse à cette même question, et j'ai trouvé 本答 qui dit que Shift + Insert s'efforce de coller la sélection primaire. Cela fonctionne pour moi. Plus simple.

7voto

Neall Points 251

Vous pouvez obtenir ce résultat en combinant les programmes suivants xdotool ( cliquer pour installer ) et xsel ( cliquer pour installer ).

xdotool peut simuler la saisie dans une fenêtre ; xsel émet le le contenu de la sélection PRIMAIRE (par défaut) ; le Shell suivant suivant fera l'affaire :

 xdotool type `xsel`

Pour lier cela à n'importe quelle touche à l'aide de la fonction Système->Préférences->Clavier raccourcis il est nécessaire de l'envelopper dans une invocation Shell :

 sh -c 'xdotool type --clearmodifiers -- "`xsel`"'

Taper dans xdotool ne fonctionnera pas avec certains programmes ; voir les notes dans la section l'article Documentation xdotool .

3voto

Robert Jakob Points 31

Appel xdotool click --clearmodifiers 2 simule un clic sur le bouton du milieu de la souris. Cela fonctionne beaucoup mieux que d'utiliser xsel (du moins pour moi). Par contre, il faut positionner la souris avant de taper...

2voto

Chema Points 146

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)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X