Forum de LAPLLA.net
[DESKTOP] Sauver/Restaurer la pos. de vos raccourcis et lanceurs de votre bureau ! - Version imprimable

+- Forum de LAPLLA.net (https://laplla.net/forum)
+-- Forum : Besoin d'aide (https://laplla.net/forum/forum-12.html)
+--- Forum : Logiciel (https://laplla.net/forum/forum-14.html)
+--- Sujet : [DESKTOP] Sauver/Restaurer la pos. de vos raccourcis et lanceurs de votre bureau ! (/thread-638.html)



[DESKTOP] Sauver/Restaurer la pos. de vos raccourcis et lanceurs de votre bureau ! - PhilippeG - 17-07-2017

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



RE: [DESKTOP] Créer des actions script pour némo ! - PhilippeG - 27-07-2017

Après quoi Hans PUFAL est venu renforcer sérieusement la réflexion.

L'information originale vient du lien suivant :
https://github.com/linuxmint/nemo/blob/master/files/usr/share/nemo/actions

Pour faire cours voici les conclusions de ses recherches :

Pour créer des actions visibles et accessibles par le menu contextuel du bureau (clic droit sur le bureau), il faut les créer dans le dossier suivant :
Code :
/usr/share/nemo/actions
Copiez-y les fichiers sh dans le dossier
Code :
/usr/share/nemo/actions
puis les rendre exécutables :
Code :
chmod +x desktop-save-icons.sh
chmod +x desktop-restore-icons.sh

Créer les nemo_action :

/usr/share/nemo/actions/desktop-icon-save.nemo_action
Code :
[Nemo Action]
# from https://github.com/linuxmint/nemo/blob/master/files/usr/share/nemo/actions/sample.nemo_action
Active=true
Name=Save icon configuration
Comment=Saves desktop icon configuration in file
Dependencies=gvfs-info;gvfs-set-attribute;
Exec=<desktop-save-icons.sh>
Icon-Name=document-save
Selection=none
Extensions=any;
#Mimetypes=text/plain;
#Separator=,
#Quote=double
#Conditions=desktop;
EscapeSpaces=true

/usr/share/nemo/actions/desktop-icon-restore.nemo_action
Code :
[Nemo Action]
# from https://github.com/linuxmint/nemo/blob/master/files/usr/share/nemo/actions/sample.nemo_action
Active=true
Name=Restore saved icon configuration
Comment=Restores desktop icon configuration from file
Dependencies=gvfs-info;gvfs-set-attribute;
Exec=<desktop-restore-icons.sh>
Icon-Name=reload_page
Selection=none
Extensions=any;
#Mimetypes=text/plain;
#Separator=,
#Quote=double
#Conditions=desktop;
EscapeSpaces=true