Gnome3 +: ¿Cómo elimino favoritos de Dash a través del terminal?

9

Supongo que necesito editar uno de los esquemas disponibles, gsettingspero no sé cuál. y cuando enumeré todos los esquemas, hay demasiados de ellos.

mrjayviper
fuente

Respuestas:

12

La clave que desea es favorite-appsla identificación del esquema org.gnome.shell. Ahora para enumerar sus aplicaciones favoritas, simplemente puede ejecutar

gsettings get org.gnome.shell favorite-apps

o

dconf read /org/gnome/shell/favorite-apps

Estos devolverán una serie de cadenas, por ejemplo

['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']

Ahora, para eliminar un valor de esa matriz, puede usar herramientas de procesamiento de texto como sed/ awkpara verificar si un elemento está en esa lista y eliminarlo manteniendo el mismo formato (no tan trivial aunque definitivamente factible) y una vez que lo haga bien, simplemente escriba nueva configuración de la base de datos, por ejemplo, suponiendo que desea eliminar org.gnome.Nautilus.desktop, ejecutaría (tenga en cuenta las comillas dobles):

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']"

Aún así, es más fácil escribir su propia utilidad ( usando gsettingsAPI ) que aceptará uno o más nombres de archivos de escritorio como parámetros posicionales y los eliminará de favoritos; para comenzar, aquí hay un ejemplo muy básico en el pythonque acepta un parámetro (ejecutar como 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
fuente