Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[DESKTOP] Sauver/Restaurer la pos. de vos raccourcis et lanceurs de votre bureau !
17-07-2017, 22:43, (Modification du message : 27-07-2017, 11:58 par PhilippeG.)
#1
Smile  [DESKTOP] Sauver/Restaurer la pos. de vos raccourcis et lanceurs de votre bureau !
Pourquoi une telle question ?

Parce-qu'il arrive que mon bureau décide tout seul de réorganiser les icones... Dans la majorité des cas cela est consécutif que fait qu'il ait redimensionné l'affichage suite à la découverte d'un nouveau écran secondaire (moniteur, vidéo projecteur, etc.) dont la résolution est quelque peu étrange... Et voir tous mes icônes dans le désordre est pénible... Ainsi avoir la possibilité d'enregistrer leur position pour ensuite être en mesure de la rappeler est devenue un obsession... D'ailleurs pour quelle raison cette option est accessible sous Windows via de très nombreux FreeWare et pas sous l'environnement linux ?


Je ne suis pas un spécialiste du langage de script, ainsi je suis ouvert à toute remarque pour améliorer l'opération, je vous livre donc cette version en développement :

Environnement :
Kernel: 4.12.0-041200-generic x86_64 (64 bit)
Desktop: Cinnamon 3.4.4
Distro: Linux Mint 18.2 Sonya
Nemo: 3.4.6

desktop-save-icons.sh
Code :
#!/bin/sh
DESKTOPDIR=$(cat /home/$USER/.config/user-dirs.dirs | grep DESKTOP | cut -d\" -f 2 | cut -d\/ -f 2-)
if [ ! -d "/home/$USER/.$DESKTOPDIR" ]
then echo ">>> file /home/$USER/.$DESKTOPDIR is missing then creating /home/$USER/.$DESKTOPDIR"
     mkdir "/home/$USER/.$DESKTOPDIR"
fi

gvfs-info "/home/$USER/$DESKTOPDIR/"*.desktop | grep -E 'standard::name:|icon-position:' | awk -F : '{print $(NF)}' | sed 's/^ *//;s/ *$//' > "/home/$USER/.$DESKTOPDIR/desktop-icons-coord.dat"


desktop-restore-icons.sh
Code :
#!/bin/sh
CurrentLine=0
iCurrentFile=-1
sCurrentLine="aa"
sCurrentFile="bbb"
iParity=1
iImpair=1
DESKTOPDIR=$(cat /home/$USER/.config/user-dirs.dirs | grep DESKTOP | cut -d\" -f 2 | cut -d\/ -f 2-)

echo "Entrée dans desktop-restore-icons.sh" > "/home/$USER/.$DESKTOPDIR/test.txt"

if [ ! -f "/home/$USER/.$DESKTOPDIR/desktop-icons-coord.dat" ]
then
  echo "file /home/$USER/.$DESKTOPDIR/icones.dat is missing."
  echo "use desktop-save-icons.sh before."
  echo "bash aborted."
  exit
fi
while read sCurrentLine
do iCurrentLine=$((iCurrentLine+1))
   if [ $iParity -eq $iImpair ]
   then
        #echo "++ iParity" $iParity $iCurrentLine $sCurrentLine
        if [ -f "/home/$USER/$DESKTOPDIR/$sCurrentLine" ]
        then
          #echo ">>> file /home/$USER/$DESKTOPDIR/$sCurrentLine exists."
          sCurrentFile="$sCurrentLine"
          iCurrentFile=$iCurrentLine
        else
          sCurrentFile="aa"
          iCurrentFile=-1
        fi
   else
        #echo "-- iParity" $iParity $iCurrentLine
        #echo "-- sCurrentFile" $sCurrentFile "/" $iCurrentFile
        # Vérifier que la ligne actuelle correspond bien
        # aux coordonnées du dernier fichier testé existant
        if [ $iCurrentLine -eq $((iCurrentFile+1)) ]
        then
          #echo "-- Coord. ok" $sCurrentFile $sCurrentLine
          gvfs-set-attribute "/home/$USER/$DESKTOPDIR/$sCurrentFile" metadata::nemo-icon-position $sCurrentLine
          # Déplacer le fichier .desktop pour le mettre ensuite
          # dans le dossier bureau de telle sorte
          # à forcer le rafraichissement du bureau
          mv "/home/$USER/$DESKTOPDIR/$sCurrentFile" /var/tmp/; mv "/var/tmp/$sCurrentFile" "/home/$USER/$DESKTOPDIR/"
          #touch "/home/$USER/$DESKTOPDIR/$sCurrentFile"
          # Une fois le traitement fait, valeurs initialisées
          sCurrentFile="cc"
          iCurrentFile=-1
        fi
   fi  
   iParity=$((1-iParity))

done < "/home/$USER/.$DESKTOPDIR/desktop-icons-coord.dat"

Après quoi, vous pouvez les rendre exécutables :
Code :
chmod +x desktop-save-icons.sh
chmod +x desktop-restore-icons.sh
Répondre


Messages dans ce sujet
[DESKTOP] Sauver/Restaurer la pos. de vos raccourcis et lanceurs de votre bureau ! - par PhilippeG - 17-07-2017, 22:43

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)