Le manuel xclip indique qu'il existe trois emplacements de stockage nommés principal (XA_PRIMARY), secondaire (XA_SECONDARY) et presse-papiers (XA_CLIPBOARD). J'ai copié (Ctrl + c) du texte de mon navigateur et examiné le contenu des trois emplacements mentionnés ci-dessus dans le terminal:
xclip -s primary -o
xclip -s secondary -o
xclip -s clipboard -o
Les trois contiennent le même texte.
Si je tape maintenant
date | xclip -selection XA_PRIMARY
Seul le XA_PRIMARY doit contenir le texte de la date. Mais en fait, les deux autres, c'est-à-dire XA_SECONDARY et XA_CLIPBOARD contiennent également le même texte (informations de date). Alors, les trois sont-ils les mêmes? Et si oui, à quoi ça sert?
Ce qui m'a encore plus dérouté, Ctrl + Shift + v (toujours en mode terminal) colle le texte original que j'ai copié depuis le navigateur! ce qui suggère que le presse-papiers de Shell fonctionne également.
Quelqu'un a-t-il un exemple qui montre que les trois emplacements peuvent contenir des valeurs différentes en même temps et comment ils se rapportent au presse-papiers normal?
Malheureusement, xclip
ignore silencieusement les options de ligne de commande non valides:
Il n'y a pas -s
option comme les deux -selection
et -silent
Commencer avec -s
. Vous devez utiliser au moins -se
.
Comme xclip
ignore simplement votre -s
option les commandes
xclip -s primary -o
xclip -s secondary -o
xclip -s clipboard -o
xclip -s asdfghj -o
tous utilisent simplement la sélection par défaut (primary
).
Pour le nom de la sélection, seul le premier caractère est réellement utilisé, et s'il est différent de s
ou c
, la valeur par défaut est utilisée.
date | xclip -selection XA_PRIMARY
date | xclip -selection XA_SECONDARY
date | xclip -selection XA_CLIPBOARD
tous utilisent la sélection principale.
Utilisez quelque chose comme
date | xclip -se p # write to primary selection
xclip -se c -o # read from clipboard
Je vais aborder le point manquant, c'est "pourquoi 3 presse-papiers différents".
xclip
et xsel
fonctionnent par défaut sur XA_PRIMARY, car la plupart des applications X fonctionnent de cette façon: si vous mettez en surbrillance a texte, il est sélectionné et atterrit donc dans un tampon de SÉLECTION PRIMAIRE .
Si vous souhaitez coller PRIMAIRE, utilisez le bouton central de la souris ou Shift+Insert. Ou transférez son contenu sur CLIPBOARD et collez simplement xclip -o | xclip -se c
.
Excellente lecture: https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt