Immagino di dover modificare uno degli schemi disponibili in gsettings
ma non so quale. e quando ho elencato tutti gli schemi, ce ne sono troppi.
Immagino di dover modificare uno degli schemi disponibili in gsettings
ma non so quale. e quando ho elencato tutti gli schemi, ce ne sono troppi.
Risposte:
La chiave desiderata è favorite-apps
l'ID schema org.gnome.shell
. Ora per elencare le tue app preferite puoi semplicemente eseguire
gsettings get org.gnome.shell favorite-apps
o
dconf read /org/gnome/shell/favorite-apps
Questi restituiranno una serie di stringhe, ad es
['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']
Ora, per rimuovere un valore da quell'array potresti usare strumenti di elaborazione del testo come sed
/ awk
per verificare se un elemento è in quell'elenco e rimuoverlo mantenendo lo stesso formato (non così banale anche se sicuramente fattibile) e una volta capito bene basta scrivere il nuove impostazioni per il database, ad esempio supponendo che volessi rimuovere la org.gnome.Nautilus.desktop
tua esecuzione (nota le doppie virgolette):
gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
o
dconf write /org/gnome/shell/favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
Tuttavia, è più facile scrivere la propria utility ( utilizzando l' gsettings
API ) che accetterà uno o più nomi di file desktop come parametri posizionali e li rimuoverà dai preferiti; per iniziare, ecco un esempio molto semplice in python
cui accetta un parametro (esegui come 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))