Améliorer un Script

tuxboy Messages postés 1083 Statut Membre -  
tuxboy Messages postés 1083 Statut Membre -
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,

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
    1. tuxboy Messages postés 1083 Statut Membre 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
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Euh... j'ai pas tout pigé là ;-((
      0
    3. tuxboy Messages postés 1083 Statut Membre 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
  2. tuxboy Messages postés 1083 Statut Membre 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