Améliorer un Script

tuxboy Messages postés 995 Date d'inscription   Statut Membre Dernière intervention   -  
tuxboy Messages postés 995 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   6 430
 
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   Statut Membre Dernière intervention   190
 
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   Statut Contributeur Dernière intervention   6 430
 
Euh... j'ai pas tout pigé là ;-((
0
tuxboy Messages postés 995 Date d'inscription   Statut Membre Dernière intervention   190
 
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   Statut Membre Dernière intervention   190
 
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