Gnome3 +: Jak usunąć ulubione z Dash za pomocą terminala?

9

Zgaduję, że muszę edytować jeden ze schematów dostępnych w, gsettingsale nie wiem, który z nich. a kiedy wymieniłem wszystkie schematy, jest ich po prostu zbyt wiele.

mrjayviper
źródło

Odpowiedzi:

12

Kluczem jest favorite-appsidentyfikator 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/, awkaby 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 gsettingsAPI ), 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, pythonktó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))
don_crissti
źródło