Pour certains scripts, je dois obtenir le mot actuellement sous le curseur.
xdotool
ou un outil similaire peut-il l'obtenir?
Vous pouvez obtenir le texte actuellement sélectionné avec la commande suivante:
echo $(xclip -o -sel)
... mais vous devez d'abord installer xclip
:
Sudo apt-get install xclip
De man xclip
:
-o, -out
prints the selection to standard out (generally for piping to a file or program)
et:
-selection
specify which X selection to use, options are "primary" to use XA_PRIMARY (default), "secondary" for XA_SECONDARY or "clipboard" for XA_CLIPBOARD
Voir aussi ici ou, comme toujours, man xclip
.
D’un commentaire, j’ai compris que xclip
affiche la dernière sélection , même s’il n’ya plus rien de sélectionné (par exemple, lorsque le fichier est fermé) . Cela semble être un problème dans votre situation.
Bien que xsel
ait également ce problème, il peut être résolu: si nous faisons en sorte que votre script ne lise pas seulement la sélection actuelle dans le script, mais également écrit le même contenu dans un fichier. Nous pouvons alors vérifier si une nouvelle sélection est différente de la dernière sélection. Sinon, nous pouvons conclure qu'aucune nouvelle sélection n'est faite et que la commande produit probablement une sélection obsolète. Nous pouvons alors dire au script de passer.
Un exemple (en utilisant xsel
, qui présente de légers avantages dans ce cas):
#!/bin/bash
# make sure the file to store the last selection exists
f=~/.old_sel
touch $f
# get the previous & current selection
old=$(cat "$f"); new=$(xsel -o)
if [ "$old" != "$new" ]; then
# if selection changed, store the new selection to remember
echo "$new" > "$f"
# do the action, whatever that may be
echo $new
fi
Pas besoin de dire que vous auriez besoin d'installer xsel
:
Sudo apt-get install xsel