Gnome3 +: Come rimuovo i preferiti da Dash tramite terminale?


9

Immagino di dover modificare uno degli schemi disponibili in gsettingsma non so quale. e quando ho elencato tutti gli schemi, ce ne sono troppi.

Risposte:


12

La chiave desiderata è favorite-appsl'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/ awkper 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.desktoptua 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' gsettingsAPI ) 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 pythoncui 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))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.