Bonjour, Nal,
Si tu t'es toujours demandé pourquoi X11 avait besoin d'avoir des palliatifs comme les différents gestionnaires de presse-papier* (par exemple xfce4-clipman, que j'utilise) pour avoir une gestion intuitive et correcte de cet outil, je vais te proposer aujourd'hui une utilisation que je vois difficilement possible sous d'autres environnement non-synchrones, comme Wayland (même si j'avoue ne même pas avoir vérifié). Si vous pouvez me contredire, je n'en serai que plus heureux d'avoir été instruit !
Car peut-être que comme moi, tu as à faire avec des outils de tableur en ligne (dans un navigateur), ou qui s'en rapprochent, et qui n'ont pas de fonctions d'interopérabilité comme l'import de données tabulaires (et ne proposent que l'export…). Du coup, l'entrée de données dans ces outils peut être très laborieuse vu l'ergonomie souvent désastreuse des applications Web, de mon point de vue. Du coup, l'idée est de remplir les données dans un logiciel adéquat de mon choix, puis de copier-coller le résultat dans l'interface Web. D'accord, mais ça s'annonce laborieux, non ?
Pas du tout ! Car grâce à l'architecture synchrone de X11, on va pouvoir rentrer ça en deux temps, trois mouvements. Mais quézaco cette architecture ? C'est que dans X11, une sélection (destinée au presse-papier) est gérée par une application source, qui est responsable d'envoyer les données au moment où on veut les coller à l'application cible. Sans gestionnaire de presse-papier, peut-être vous est-il arrivé de copier un contenu, fermer l'application pour aller le coller ailleurs et constater que le presse-papier était… « vide » ? C'est propre à cette architecture : c'est à l'application source (qui copie) de gérer le fait qu'elle sera appelée pour coller. D'où l'invention de ces intermédiaires que sont les gestionnaires de presse-papier, qui « enregistrent » les sélections au cas où l'application source n'existerait plus (ils ont également d'autres rôles en général, comme garder un historique).
Pour procéder, je vais me baser sur plusieurs choses : déjà, le format des données, pour être manipulé facilement avec un bout de shell, sera du Tab Separated Values, ou TSV ; très proche du CSV mais qui évite l'écueil des virgules comme séparateur. Ensuite, un outil d'interaction avec le presse-papier depuis le shell : xclip
. Et pour lier tout ça, j'aime bien faire un peu de awk !
Alors forcément, vu que les données à copier-coller vont dépendre de votre cas d'utilisation, je vous laisse adapter, mais ici les miennes c'est que j'ai une première colonne d'identifiant, qui me permet de faire l'appairage visuellement et manuellement (j'ai parfois rentré les données dans un ordre légèrement différent), et du contenu à copier-coller dans la deuxième colonne.
#!/usr/bin/awk -f
# loop copying the second column once per line; xclip will wait for it to be
# paste before iterating to the next, thanks to the (very badly named) "-quiet"
# option which keeps it in foreground, along with -loop 1
BEGIN { FS="\t"; xclip = "xclip -i -loop 2 -selection clipboard -quiet" }
# skip blank lines
/^\s*$/ { next }
{
print $1;
printf("%s", $2) | xclip;
close(xclip);
}
Et voilà, en passant en paramètre à ce programme le fichier TSV, vous allez pouvoir coller une à une toute vos cellules, sachant que chaque collage va automatiquement faire passer à la cellule suivante. La magie du presse-papier synchronisé !
Vous remarquerez ici que j'ai utilisé -loop 2
contrairement à ce que j'ai indiqué en commentaire juste au-dessus : c'est parce que dans mon cas, j'utilise justement un gestionnaire de presse-papier, qui « consomme » déjà la sélection une première fois ; il faut donc proposer la sélection une seconde fois pour que le navigateur la récupère et que ça déclenche le passage à la cellule suivante. Donc à adapter en fonction de votre utilisation ; sans gestionnaire, un -loop 1
suffit. Également, notez (ça devient technique) que j'utilise la sélection CLIPBOARD et non PRIMARY, cette dernière étant celle de la sélection à la souris implicitement copiée dans X11, car souvent ces applications Web sélectionnent automatiquement la case lors du clic dessus, trashant la sélection en cours. J'utilise donc ici uniquement le presse-papier qui fonctionne à partir du coller avec Ctrl+v.
Voilà, le but de cette astuce était de vous faire gagner du temps et de la sérénité, car la prolifération d'applications Web débiles est une peste difficile à contrer… Et j'espère que ça vous aura fait aimer ce vénérable X11 !
* Au passage, je n'ai jamais aimé cette appellation : un presse-papier sert à maintenir des feuilles volantes. Un clipboard, en anglais, selon mon vieux Robert & Collins, c'est un écritoire à pince, et le terme informatique qu'il propose est bloc-notes, selon les petites notes qu'on écrit pour utiliser plus tard et qu'on garde dans un coin ; j'aime bien.
# wl-clipboard
Posté par Psychofox (Mastodon) . Évalué à 3 (+0/-0).
wl-clipboard
[^] # Re: wl-clipboard
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . Évalué à 4 (+2/-0).
À vous faire regretter X11. Sans rire, la disparition progressive du copier-coller par simple clic du milieu commence à devenir sérieusement handicapante dans ma manière de travailler.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace
[^] # Re: wl-clipboard
Posté par BAud (site web personnel) . Évalué à 4 (+2/-0).
idem chez moi. Résultat, je martèle mon touchpad à 3 doigts, puis me résout à un
alt-tab
, éventuellement re-sélection de ce que je souhaitais copier/coller, clic-droit/copier,alt-tab
, clic-droit/coller, la misère quoi /o\Si encore le clic droit donnait accès à des fonctions avancées comme supprimer le formatage, transposer une liste, remplacer les
tab
à la volée par des espaces… mais, non, rien de tout ça :/Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.