Existe-t-il un raccourci clavier standard ou conventionnel pour coller la sélection principale?
Je voudrais sélectionner du texte et aller dans une autre application pour coller sans mettre à la corbeille le contenu de mon presse-papiers. Je préfère garder les doigts sur le clavier que de passer à la souris, de rechercher le pointeur, de le placer où je veux et de cliquer avec le bouton du milieu.
S'il n'y a rien de conventionnel, ou si cela dépend de l'application et n'est pas pris en charge par beaucoup, existe-t-il une solution de contournement pour que cela fonctionne globalement? (Ou du moins dans plusieurs applications.)
L'envoi de pressions de touche 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 de barres obliques inverses. Ainsi, plutôt que de danser avec l'échappement, -file
fonctionne. xvkbd
affiche également un texte d'avertissement sur les modificateurs, mais il semble ne pas être pertinent pour cette utilisation (mais je ne voulais pas le voir dans ~/.xsession-errors
).
J'ai lié cela à un raccourci utilisant Système> Préférences> Raccourcis clavier .
Notez que vous devez installer les packages xsel et xvkbd:
Sudo apt-get install xsel xvkbd
Vous pouvez obtenir ceci en combinant les programmes xdotool ( cliquez pour installer ) et xsel ( cliquez pour installer =).
xdotool
peut simuler la saisie dans une fenêtre; xsel
renvoie le contenu de la sélection PRIMARY (par défaut); le shell one-line suivant fera l'affaire:
xdotool type `xsel`
Pour associer cela à n'importe quelle touche à l'aide de l'élément de menu Système-> Préférences-> Raccourcis clavier , il est nécessaire de l'envelopper dans une invocation de shell:
sh -c 'xdotool type --clearmodifiers -- "`xsel`"'
Taper xdotool
ne fonctionnera pas avec certains programmes; voir les notes dans documentation xdotool .
Je cherchais une réponse à cette même question, et j’ai trouvé cette réponse qui dit que Shift+Insert travaille pour coller la sélection primaire. Je travaille pour moi Plus simple.
L'appel de xdotool click --clearmodifiers 2
simule un clic sur le bouton central de la souris. Cela fonctionne beaucoup mieux que d'utiliser xsel (du moins pour moi). Bien que vous deviez positionner votre souris avant de taper ...
Une autre suggestion de xdotool, travaillant dans Debian Jessie 8.7 (Jan 2017):
xdotool click --delay 0 --clearmodifiers 2
xdotool click
simule un clic réel, vous n'avez donc pas besoin de cliquer vous-même pour coller à la position de la souris, comme vous le feriez si vous utilisiez xdotool type
ou xvkbd.Le seul problème est que --clearmodifiers
"appuiera" sur tout modificateur (Ctrl/Alt/Shift/Meta) que vous utiliserez après avoir simulé le clic. Même avec --delay 0
(au lieu de 12ms), la commande prend un peu à exécuter. Si vous relâchez les touches avant la fin, vos modificateurs seront à nouveau "pressés" et collés jusqu'à ce que vous appuyiez une nouvelle fois sur la touche réelle.
Donc, avec cela, vous devez être un peu "lent" (50ms?) Pour libérer vos 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 (telle que a
ou une flèche). La lettre doit apparaître en minuscule. Si quelque chose d'autre se produit, vous êtes trop rapide et un modificateur est bloqué (par exemple, Maj si c'est en majuscule, Ctrl si vous avez sélectionné tout le texte, Alt si vous avez ouvert un menu). Appuyez et relâchez à nouveau vos modificateurs pour les réinitialiser.
Si vous êtes trop rapide, vous pouvez utiliser la suggestion de ilkerk:
sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0 "`xsel`"'
Ensuite, vous devez les libérer dans moins de que 300 ms et attendez une demi-seconde que le texte apparaisse.
De plus, utiliser xdotool type
signifie que vous insérez le texte comme si vous tapiez, à la position du curseur de texte et non au pointeur de la souris. Vous pouvez le changer en click
si vous préférez le comportement habituel du clic moyen.
(fait cet article pour que les nouveaux arrivants n'aient pas à reconstituer les pièces du puzzle dispersées dans les commentaires)
J'ai eu des problèmes avec les solutions qui simulent le collage de la sélection PRIMARY
name__, aussi j’ai ajouté un raccourci qui copie le PRIMARY
selection to CLIPBOARD
name __. Après avoir utilisé mon raccourci, je colle CLIPBOARD
de la manière habituelle, avec Ctrl+V
, Ctrl+Shift+V
ou Shift+Insert
, en fonction de l'application.
La commande permettant de copier la sélection PRIMARY
dans le CLIPBOARD
est
sh -c 'xsel --output --primary | xsel --input --cliboard'
que je lie à Ctrl+Insert
(choix arbitraire) dans les paramètres de raccourci Gnome sous System Settings -> Devices -> Keyboard
Résumé des problèmes avec d'autres solutions: J'ai essayé les solutions xsel | xvkbd ...
et xsel | xdotool ...
, mais j'ai constaté qu'elles ne fonctionnaient pas très bien, car elles simulent en tapant la sélection PRIMARY
caractère par caractère, ce qui n'est pas la même chose que le coller avec le clic du milieu. Les problèmes incluent: il y a un long délai pendant lequel une sélection importante est insérée un caractère à la fois; si vous voulez annuler le "coller", vous devez l'annuler caractère par caractère, ce qui est lent; si vous utilisez des "clés mortes", tout est brouillé, par exemple, "coller" "e
produit ë
; xvkdb
ne gère pas correctement les caractères unicode.
Attention: Cette solution écrase le contenu existant de CLIPBOARD
name__, mais l'OP a demandé des solutions préservant le contenu existant de CLIPBOARD
name__.
J'ai eu le même problème et la recherche sur Internet ne m'a pas beaucoup aidé. Le problème simulant le clic 2 est gênant comme l'OP mentionné.
Le problème avec les noms xdotool
et xsel proposés ci-dessus est lorsque xdotool
commence à "taper" lorsque vous appuyez toujours sur une autre touche. Cela ne résulte pas toujours avec une sortie. Par exemple, si vous le liez à la touche "insert", xdotool
envoie des clés pendant que votre doigt appuie sur la touche "insert", ce qui ne cause rien.
Vous trouverez ci-dessous une solution de contournement pour la relier à une touche:
sh -c 'sleep 0.3 && xdotool type --clearmodifiers --delay 0 "`xsel`"'
ce n'est pas parfait mais ça marche. vous avez maintenant 0,3 seconde pour terminer votre sélection de touche (et touche suivante).