web-dev-qa-db-fra.com

Comment créer une liste rapide dynamique pour le dossier de départ?

Comment puis-je créer une liste rapide dynamique pour le dossier de départ qui ajoute tous les signets en tant que listes rapides (j'ai entendu dire que c'était possible via libunity)?

6
Lincity

Voici un petit script 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".

Screenshot of the quicklist in action

  1. Copiez le script ci-dessous dans un fichier vide et placez-le dans votre dossier scripts (nous supposerons que c'est ~/bin/ et le nom de script que vous choisissez est unityhome.bash).
  2. Exécutez le script une fois pour ajouter les entrées:

    bash ~/bin/unityhome.bash
    
  3. En option, vous pouvez avoir cron exécuter le script pour vous de temps en temps. Pour l'ajouter à cron, tapez la commande follwing dans un shell:

    crontab -e An editor will open. There add a line like:
    
    @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 souhaitez que la liste rapide soit mise à jour.

  4. Les modifications ne prennent effet qu'à votre prochaine connexion ou après Alt + F2

    unity --replace So do that. *Note: Don't run `unity --replace`
    

    dans un terminal. Si vous fermez ce terminal, il tuera l'unité avec lui. *

  5. Profitez-en et jetez un œil au script similaire pour gnome-terminal qui analyse vos signets ssh (dans ~/.ssh/config).

Script: ------- Voici le script:

#!/bin/bash
# tabsize: 4, encoding: utf8
#
# © 2011 [email protected]. Use permitted under MIT license:
#     http://www.opensource.org/licenses/mit-license.php
# 
# CONTRIBUTORS: Chris Druif <[email protected]>
#               Scott Severance <http://www.scottseverance.us/>
# 
# This script updates the unity quicklist menu for nautilus to

contiennent les signets de l'utilisateur. Les mises à jour auront un effet après le redémarrage de l'unité (soit # lors de la prochaine connexion, soit en invoquant 'unit --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"

sed -i "s/\(OnlyShowIn=GNOME;\)/\1Unity;/" "$target"

echo "X-Ayatana-Desktop-Shortcuts=" >> $target

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')"
    # extend shortcut list with current bookmark
    sed -i

"s/(X-Ayatana-Desktop-Shortcuts =. *)/\ 1Scg $ {bmcount}; /" "$ target" # écrire les informations du signet cat - >> "$ target" <

[Scg$bmcount Shortcut Group]
Name=$bmname
Exec=nautilus "$bmpath"
OnlyShowIn=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
OnlyShowIn=Unity
EOF

exit 0

Réponse originale - Écrit par con-f-use

1
Lincity

FYI L'API est expliquée sur le buntu Wiki

 Entrées de liste rapide dynamique 
 
 Des listes rapides peuvent également être créées et ajoutées au lanceur. Pour créer une liste rapide 
, Un nœud racine doit d'abord être créé en tant que conteneur, puis des nœuds enfants y sont ajoutés 
. Ce résultat final peut être emballé dans le lanceur qui est ensuite 
 Expédié par bus à Unity. Les mises à jour de la liste rapide sont également en ligne. 
 Plutôt que de décrire l'intégralité de l'API, un exemple d'utilisation de la liste rapide (ainsi que 
 Progression et nombre) est fourni ci-dessous à l'aide des liaisons vala. 
 
 Il est important de noter que la boucle principale doit être invoquée pour que le programme 
 Fonctionne réellement. Libunity nécessite l'utilisation de la boucle principale car le travail peut être effectué 
 Asynchrone. 

Je n'en ai pas encore vu d'exemple. Si je le fais, je l'ajouterai ici dans une heure;)

Les listes rapides dynamiques ne fonctionnaient PAS avant l'unité - 3.8.8-0ubuntu1 en raison d'un bug .

2
Rinzwind