2 votes

Script ajoutant des lanceurs au panneau supérieur de GNOME

Pour un grand nombre de machines exécutant 12.04 avec gnome-classic. J'aimerais scripter l'ajout de lanceurs en haut à gauche du panneau gnome.

Je sais comment les ajouter manuellement mais c'est une procédure fastidieuse.

Est-ce que quelqu'un sait s'il est possible de scripter cela?

1voto

user.dz Points 45060
  • Juste pour faciliter le script, on a fait l'hypothèse:

    1. le panneau supérieur par défaut est 'top-panel-0' obtenu à partir de:

      gsettings get org.gnome.gnome-panel.layout toplevel-id-list
    2. Il n'y a pas beaucoup d'icônes déjà là-haut dans le panneau, juste pour éviter d'écraser un autre objet avec le même indice (ex: 'object-0-9'), obtenu à partir de:

      gsettings get org.gnome.gnome-panel.layout object-id-list

    Script objectif:

    gsettings set org.gnome.gnome-panel.object:/org/gnome/gnome-panel/layout/objects/object-0-9/ object-iid 'PanelInternalFactory::Launcher'    
    gsettings set org.gnome.gnome-panel.object:/org/gnome/gnome-panel/layout/objects/object-0-9/ toplevel-id 'top-panel-0'    
    gsettings set org.gnome.gnome-panel.object:/org/gnome/gnome-panel/layout/objects/object-0-9/ pack-type 'start'
    gsettings set org.gnome.gnome-panel.object:/org/gnome/gnome-panel/layout/objects/object-0-9/ pack-index 1
    gsettings set org.gnome.gnome-panel.launcher:/org/gnome/gnome-panel/layout/objects/object-0-9/instance-config/ location '/usr/share/applications/gedit.desktop'
    gsettings set org.gnome.gnome-panel.layout object-id-list "[`gsettings get org.gnome.gnome-panel.layout object-id-list  | awk '{ gsub("\[|\]",""); print;}'`, 'object-0-9']"
  • Pour réinitialiser/supprimer tous les lanceurs, je n'ai pas réussi à faire fonctionner gsettings reset avec des données stockées sans schéma (l'API ne supporte peut-être pas cela), alors que dconf reset oui:

    for o in $(dconf list /org/gnome/gnome-panel/layout/objects/); do if [ ! "${o##object*}" ] ; then dconf reset -f /org/gnome/gnome-panel/layout/objects/$o; fi; done
    dconf write /org/gnome/gnome-panel/layout/object-id-list "`dconf read /org/gnome/gnome-panel/layout/object-id-list | awk '{ gsub(/(, [:\47]object-[0-9]-[0-9][:\47]|[:\47]object-[0-9]-[0-9][:\47], )*/,"");  print; }'`"

Remarques:

  • Mieux vaut utiliser dconf-editor pour voir ou faire des changements de clé rapide pour les tests.
  • Surveiller les changements dconf & ce que le script fait:

    dconf watch /org/gnome/gnome-panel/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X