Liste rapide des icônes d'accueil (mise à jour automatique à partir des signets)
Voici un petit Shell Shell qui met à jour votre Home-Quicklist avec tous vos signets. Aucune manipulation manuelle. Il lit votre fichier de signets et crée les éléments de menu à partir de celui-ci. Il ajoute également l'entrée de menu "Root Filemanager".
-
Copiez le script listé ci-dessous dans un fichier vide et mettez-le dans votre script-dossier (nous supposerons qu'il s'agit de ~/bin/
et le nom du script que vous choisissez est unityhome.bash
).
-
Exécutez le script une fois pour ajouter les entrées :
bash ~/bin/unityhome.bash
-
En option, vous pouvez demander à cron d'exécuter le script pour vous de temps en temps. Pour l'ajouter à cron, tapez la commande suivante dans un script :
crontab -e
Un éditeur s'ouvrira. Là, ajoutez une ligne comme :
@reboot /bin/bash/ $HOME/bin/unityhome.bash > /dev/null 2>&1
Si vous ne faites pas cette étape, vous devrez exécuter le script à la main chaque fois que vous modifiez vos signets nautilus si vous voulez que la liste rapide soit mise à jour.
-
Les modifications ne prennent effet qu'à votre prochaine connexion ou après avoir appuyé sur Alt+F2.
unity --replace
Alors faites-le. Note : Ne pas exécuter unity --replace
dans un terminal. Si vous fermez ce terminal, cela tuera l'unité avec lui.
-
Profitez-en et jetez un coup d'œil à la script similaire pour gnome-terminal qui analyse vos signets ssh (en ~/.ssh/config
).
script :
Voici le script :
#!/bin/bash
# tabsize: 4, encoding: utf8
#
# © 2011 con-f-use@gmx.net. Use permitted under MIT license:
# http://www.opensource.org/licenses/mit-license.php
#
# CONTRIBUTORS: Chris Druif <cyber.druif@gmail.com>
# Scott Severance <http://www.scottseverance.us/>
# jacopoL <jacopo.jl@gmail.com>
#
# This script updates the unity quicklist menu for nautilus to contain the user
# bookmarks. The updates will have efect after unity is restarted (either on
# the next login or by invoking 'unity --replace').
# location of template and unity bar launchers
nautempl="/usr/share/applications/nautilus-home.desktop"
target="$HOME/.local/share/applications/nautilus-home.desktop"
bookmarks="$HOME/.gtk-bookmarks"
# backup if file already exists
if [ -e "$target" ]; then
echo "Creating backup of: $target."
mv -n "$target" "$target.bak"
fi
# copy template
cp "$nautempl" "$target"
if ! grep -q 'OnlyShowIn=.*Unity' "$target"; then # add only if not already present
sed -i "s/\(OnlyShowIn=.*\)/\1Unity;/" "$target"
fi
# due to a bug in Unity (Ubuntu 11.10+) we will have to completely remove the OnlyShowIn line:
# https://bugs.launchpad.net/ubuntu/+source/unity/+bug/842257/comments/6
sed -i '/^OnlyShowIn=/d' "$target"
if ! grep -q 'X-Ayatana-Desktop-Shortcuts=' "$target"; then # add only if not already present
echo -e "\nX-Ayatana-Desktop-Shortcuts=\n" >> "$target"
else
echo >> "$target"
fi
bmcount=0
while read bmline; do
bmcount=$(($bmcount+1)) # number of current bookmark
bmname=${bmline#*\ } # name of the bookmark
bmpath=${bmline%%\ *} # path the bookmark leads to
# deal with bookmarks that have no name
if [ "$bmname" = "$bmpath" ]; then
bmname=${bmpath##*/}
fi
# fix spaces in names and paths
bmname="$(echo "$bmname" | sed 's/%20/ /g')"
bmpath="$(echo "$bmpath" | sed 's/%20/ /g')"
# fix accents in names and paths (for french users)
bmname="$(echo "$bmname" | python -c 'import sys,urllib;sys.stdout.write(urllib.unquote(sys.stdin.read()))')"
bmpath="$(echo "$bmpath" | python -c 'import sys,urllib;sys.stdout.write(urllib.unquote(sys.stdin.read()))')"
# extend shortcut list with current bookmark, prepending a ; if needed
sed -i "s/\(X-Ayatana-Desktop-Shortcuts=\(.*;$\|$\)\)/\1Scg${bmcount};/
t
s/\(X-Ayatana-Desktop-Shortcuts=.*\)/\1;Scg${bmcount};/" "$target"
# write bookmark information
cat - >> "$target" <<EOF
[Scg$bmcount Shortcut Group]
Name=$bmname
Exec=nautilus "$bmpath"
TargetEnvironment=Unity
EOF
done < "$bookmarks"
# Add a root file manager entry
sed -i "s/\(X-Ayatana-Desktop-Shortcuts=.*\)/\1RootFM;/" "$target"
cat - >> "$target" <<EOF
[RootFM Shortcut Group]
Name=Root
Exec=gksudo nautilus
TargetEnvironment=Unity
EOF
exit 0
Amélioration : Ne pas dupliquer "Dossier personnel" et "Nom d'utilisateur".
Si vous ne voulez pas avoir deux éléments ciblant votre dossier d'accueil ("Dossier d'accueil" au bas de la liste rapide et le nom d'utilisateur cliquable), vous pouvez remplacer le code suivant :
# write bookmark information
cat - >> "$target" <<EOF
[Scg$bmcount Shortcut Group]
Name=$bmname
Exec=nautilus "$bmpath"
TargetEnvironment=Unity
EOF
done < "$bookmarks"
par le code suivant :
# write bookmark information
if [ "file://$HOME" != "$bmpath" ]; then
cat - >> "$target" <<EOF
[Scg$bmcount Shortcut Group]
Name=$bmname
Exec=nautilus "$bmpath"
TargetEnvironment=Unity
EOF
fi
done < "$bookmarks"