Gnome3 +: Como faço para remover favoritos do Dash via terminal?

7

Suponho que preciso editar um dos esquemas disponíveis em gsettings , mas não sei qual. e quando eu listei todos os esquemas, há muitos deles.

    
por mrjayviper 30.09.2016 / 05:28

1 resposta

8

A chave que você deseja é favorite-apps , o ID do esquema é org.gnome.shell . Agora, para listar seus aplicativos favoritos, basta executar

gsettings get org.gnome.shell favorite-apps

ou

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

Estes retornarão uma matriz de strings, por exemplo

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

Agora, para remover um valor dessa matriz, você poderia usar ferramentas de processamento de texto como sed / awk para verificar se um item está nessa lista e removê-lo mantendo o mesmo formato (não tão trivial quanto possível) e quando você acertar, basta escrever as novas configurações no banco de dados, por exemplo assumindo que você queria remover org.gnome.Nautilus.desktop que você executaria (observe as aspas duplas):

gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"

ou

dconf write /org/gnome/shell/favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"

Ainda assim, é mais fácil criar seu próprio utilitário ( usando gsettings API ) que aceitará um ou mais nomes de arquivos da área de trabalho como parâmetros posicionais e removê-los dos favoritos; para começar, aqui está um exemplo muito básico em python que aceita um parâmetro (executado 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))
    
por 30.09.2016 / 12:50