Bonjour,
j'ai un script bash qui me rend bien des services : il récupère la sélection X (xsel -o) et la renvoie après transformation dans le presse papier et la zone de notification. Les transformations possibles sont :
passage en majuscules
passage en minuscules
passage en casse inverse
remplacement des . (points) par des , (virgule) ou inverse
traduction de auto vers anglais ou vers français (via google traduction)
J'appelle ce script via des raccourcis clavier, autant de raccourcis qu'il y a d'options. Cela ne pose pas de problème sous openbox grâce aux raccourcis doubles lames mais cela devient vite encombrant d'en d'autre environnements, notamment sur le PC de ma douce sous KDE.
J'ai tenté 'read -st 2 -N 1' mais sans surprise cela ne fonctionne pas quand le script tourne en tâche de fond. Cela fonctionne si je le lance dans xterm mais cela n'est pas bien élégant.
Mes recherches sur le web me laissent bien peu d'espoir mais peut-être ai-je mal posé la question.
Quelqu'un de cette noble assemblée aurait-il une piste à me proposer ?
Merci d'avance
le script :
#! /bin/bash
# dépendance xsel xclip html2text libnotify
IFS=$'\n'
traduction ()
{
# fonction provenant d'un script de Johnraff sur le forum de crunchbang
# http://crunchbang.org/forums/viewtopic.php?id=17034
result=$(curl -s -i --user-agent "" -d "sl=auto" -d "tl=$1" --data-urlencode "text=$selection" https://translate.google.com)
encoding=$(awk '/Content-Type: .* charset=/ {sub(/^.*charset=["'\'']?/,""); sub(/[ "'\''].*$/,""); print}' <<<"$result")
trad=$(iconv -f $encoding <<<"$result" | awk 'BEGIN {RS="</div>"};/<span[^>]* id=["'\'']?result_box["'\'']?/' | html2text | tr "\n" " ")
}
selection=$(xsel -o | tr "\n" " ")
#read -st 2 -N 1 key
#if [ -z $key ]; then exit 1;fi
case $1 in
u) # tout en majuscule
echo ${selection^^} | xclip -i -selection clipboard;;
l) # tout en minuscule
echo ${selection,,} | xclip -i -selection clipboard;;
i) # casse inverse
echo ${selection~~} | xclip -i -selection clipboard;;
v) # remplace le point par une virgule
echo $selection | sed "s/\./,/g" | xclip -i -selection clipboard;;
p) # remplace la virgule par un point
echo $selection | sed 's/,/\./g' | xclip -i -selection clipboard;;
a) # traduit de auto en anglais
traduction "en"
NotifyTime=15000
echo $trad | xclip -i -selection clipboard;;
f) # traduit de auto en français
traduction "fr"
NotifyTime=15000
echo $trad | xclip -i -selection clipboard;;
*) # cas non prévus
echo "usage inattendu" | xclip -i -selection clipboard
esac
notify-send --icon=dialog-information -t 10000 'scopy' $(xclip -o -selection clipboard)
# xev
Posté par GG (site web personnel) . Évalué à 2.
xev est une piste pour toi, je crois.
Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html
[^] # Re: xev
Posté par Vincent Gay (site web personnel) . Évalué à 2.
Merci pour cet avis. Toutefois cela ne me semble pas très évident à mettre en œuvre et pas plus élégant qu'une fenêtre xterm
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.