Je suppose que je dois modifier l'un des schémas disponibles, gsettings
mais je ne sais pas lequel. et quand j'ai énuméré tous les schémas, il y en a juste trop.
Je suppose que je dois modifier l'un des schémas disponibles, gsettings
mais je ne sais pas lequel. et quand j'ai énuméré tous les schémas, il y en a juste trop.
Réponses:
La clé que vous voulez est favorite-apps
, l'ID du schéma est org.gnome.shell
. Maintenant, pour répertorier vos applications préférées, vous pouvez simplement exécuter
gsettings get org.gnome.shell favorite-apps
ou
dconf read /org/gnome/shell/favorite-apps
Ceux-ci renverront un tableau de chaînes, par exemple
['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']
Maintenant, pour supprimer une valeur de ce tableau, vous pouvez utiliser des outils de traitement de texte comme sed
/ awk
pour vérifier si un élément se trouve dans cette liste et le supprimer en conservant le même format (pas si trivial que ce soit faisable) et une fois que vous l'avez bien écrit, écrivez le de nouveaux paramètres dans la base de données, par exemple en supposant que vous vouliez les supprimer, org.gnome.Nautilus.desktop
vous exécuteriez (notez les guillemets doubles):
gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
ou
dconf write /org/gnome/shell/favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
Pourtant, il est plus facile d'écrire votre propre utilitaire (en utilisant l' gsettings
API ) qui acceptera un ou plusieurs noms de fichiers de bureau comme paramètres de position et les supprimera des favoris; pour vous aider à démarrer, voici un exemple très basique python
qui accepte un paramètre (exécuté comme script.py firefox.desktop
):
#!/usr/bin/env python
from sys import argv
from gi.repository import Gio,GLib
item=argv[1]
gschema = Gio.Settings('org.gnome.shell')
gvalues=gschema.get_value('favorite-apps').unpack()
if item in gvalues: gvalues.remove(item)
gschema.set_value('favorite-apps', GLib.Variant('as', gvalues))