Améliorer un Script

Fermé
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 - 27 août 2012 à 15:32
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 - 27 août 2012 à 23:40
Bonjour,

Afin de modifier depuis le shell les icônes de dossiers du bureau gnome, j'utilise un petit script qui n'est pas terrible mais qui fonctionne très bien chez moi, en simulant un refresh de bureau (touche F5)

gvfs()
{
# Usage : gvfs nomdudossier icônedudossier
XDTW=$(xdotool getwindowfocus)
# Recherche de la résolution écran
T='xdpyinfo | egrep "dimensions" | cut -d" " -f7'
X=$(echo $T | cut -dx -f1)
Y=$(echo $T | cut -dx -f2)
gvfs-set-attribute $1 metadata::custom-icon file:///usr/share/icons/gnome/$2.png
xdotool mousemove $X $Y
xdotool click 1
xdotool key "F5"
xdotool windowfocus $XDTW
}

J'ai cherché à améliorer ce script en récupérant le pid de gnome-shell et lui envoyer un refresh mais sans succès. Auriez-vous une idée ? Avec mes remerciements,

A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
27 août 2012 à 17:45
Salut,

Je ne connais pas du tout Gnome-shell, mais en fouillant un peu j'ai vu qu'il possédait un débogueur accessible via les touches "Alt+F2" et qu'en rentrant juste "r" ou "restart" celà relançait gnome-shell (source).

Je suppose qu'il y a moyen de bidouiller un appel direct depuis le shell ;-))

Sinon concernant ton script, pour la résolution de ton écran et les variables $X et $Y, plutôt que :
T='xdpyinfo | egrep "dimensions" | cut -d" " -f7'
X=$(echo $T | cut -dx -f1)
Y=$(echo $T | cut -dx -f2)
gvfs-set-attribute $1 metadata::custom-icon file:///usr/share/icons/gnome/$2.png
xdotool mousemove $X $Y

Essaie plutôt histoire d'optimiser un chouïa :
T=$(xdpyinfo | awk '/dimensions/ {print $2}')
gvfs-set-attribute $1 metadata::custom-icon file:///usr/share/icons/gnome/$2.png
xdotool mousemove ${T%x*} ${T#*x}

En gros ça donne :
$ T=$(xdpyinfo | awk '/dimensions/ {print $2}')

$ echo ${T%x*}
1920

$ echo ${T#*x}
1080

;-))
0
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 190
27 août 2012 à 19:08
Merci,
C'est vrai que c'est mieux, mais la faiblesse du script c'est de bouger la souris aux confins de l'écran pour activer le desktop et lui envoyer F5, or, s'il y a une fenêtre plein écran, c'est celle-ci qui est activée...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
27 août 2012 à 19:10
Euh... j'ai pas tout pigé là ;-((
0
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 190
27 août 2012 à 19:17
Oui, avec xdotool mousemove ${T%x*} ${T#*x} la souris se déplace aux limites de l'écran, puis un clic sur le bureau, et j'envoie un refresh avec xdotool key "F5"

Mais s'il y a une fenêtre qui recouvre tout l'écran, du coup c'est elle qui reçoit le clic...
0
tuxboy Messages postés 995 Date d'inscription lundi 23 juillet 2012 Statut Membre Dernière intervention 28 mai 2019 190
27 août 2012 à 23:40
Ce script fonctionne aussi :

gsettings set org.gnome.desktop.background show-desktop-icons false
gvfs-set-attribute $1 metadata::custom-icon file:///usr/share/icons/gnome/$2.png
gsettings set org.gnome.desktop.background show-desktop-icons true


Il est presque idéal, sauf qu'il y a plus de latence (il "lagge") que par "F5"
0