Ich schätze, ich muss eines der verfügbaren Schemas bearbeiten, gsettings
aber ich weiß nicht, welches. und wenn ich alle Schemata aufgelistet habe, gibt es einfach zu viele davon.
Ich schätze, ich muss eines der verfügbaren Schemas bearbeiten, gsettings
aber ich weiß nicht, welches. und wenn ich alle Schemata aufgelistet habe, gibt es einfach zu viele davon.
Antworten:
Der gewünschte Schlüssel ist favorite-apps
die Schema-ID org.gnome.shell
. Um nun Ihre Lieblings-Apps aufzulisten, können Sie sie einfach ausführen
gsettings get org.gnome.shell favorite-apps
oder
dconf read /org/gnome/shell/favorite-apps
Diese geben ein Array von Zeichenfolgen zurück, z
['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']
Um einen Wert aus diesem Array zu entfernen, können Sie Textverarbeitungswerkzeuge wie sed
/ verwenden awk
, um zu überprüfen, ob sich ein Element in dieser Liste befindet, und es im gleichen Format entfernen (nicht so trivial, aber definitiv machbar). Wenn Sie es richtig verstanden haben, schreiben Sie einfach das Neue Einstellungen für die Datenbank, z. B. vorausgesetzt, org.gnome.Nautilus.desktop
Sie möchten sie entfernen , werden ausgeführt (beachten Sie die doppelten Anführungszeichen):
gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
oder
dconf write /org/gnome/shell/favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
Es ist jedoch einfacher, ein eigenes Dienstprogramm ( mithilfe der gsettings
API ) zu schreiben , das einen oder mehrere Desktop-Dateinamen als Positionsparameter akzeptiert und aus den Favoriten entfernt. Um Ihnen den Einstieg python
zu erleichtern , finden Sie hier ein sehr einfaches Beispiel , das einen Parameter akzeptiert (ausführen als 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))