Zgaduję, że muszę edytować jeden ze schematów dostępnych w, gsettings
ale nie wiem, który z nich. a kiedy wymieniłem wszystkie schematy, jest ich po prostu zbyt wiele.
Zgaduję, że muszę edytować jeden ze schematów dostępnych w, gsettings
ale nie wiem, który z nich. a kiedy wymieniłem wszystkie schematy, jest ich po prostu zbyt wiele.
Odpowiedzi:
Kluczem jest favorite-apps
identyfikator schematu org.gnome.shell
. Teraz, aby wyświetlić listę swoich ulubionych aplikacji, możesz po prostu uruchomić
gsettings get org.gnome.shell favorite-apps
lub
dconf read /org/gnome/shell/favorite-apps
Zwrócą tablicę ciągów, np
['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']
Teraz, aby usunąć wartość z tej tablicy, możesz użyć narzędzi do przetwarzania tekstu, takich jak sed
/, awk
aby sprawdzić, czy element znajduje się na tej liście, i usuń go zachowując ten sam format (nie taki trywialny, ale na pewno wykonalny), a kiedy już to zrobisz, po prostu napisz nowe ustawienia bazy danych, np. zakładając, że chcesz usunąć org.gnome.Nautilus.desktop
, uruchomisz (zwróć uwagę na podwójne cudzysłowy):
gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
lub
dconf write /org/gnome/shell/favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
Mimo to łatwiej jest napisać własne narzędzie ( wykorzystujące gsettings
API ), które zaakceptuje jedną lub więcej nazw plików pulpitu jako parametry pozycyjne i usunie je z ulubionych; na początek, oto bardzo prosty przykład, python
który akceptuje jeden parametr (uruchom jako 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))