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))