Gnome3+: How do I remove favorites from Dash via terminal?

6,841

The key you want is favorite-apps, the schema ID is org.gnome.shell. Now to list your favorite apps you can simply run

gsettings get org.gnome.shell favorite-apps

or

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

These will return an array of strings e.g.

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

Now, to remove a value from that array you could use text processing tools like sed/awk to check if an item is in that list and remove it keeping the same format (not that trivial though definitely doable) and once you get it right just write the new settings to the database e.g. assuming you wanted to remove org.gnome.Nautilus.desktop you would run (note the double quotes):

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

or

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

Still, it's easier to write your own utility (using gsettings API) that will accept one or more desktop file names as positional parameters and remove them from favorites; to get you started, here is a very basic example in python that accepts one param (run as 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))
Share:
6,841

Related videos on Youtube

mrjayviper
Author by

mrjayviper

Updated on September 18, 2022

Comments

  • mrjayviper
    mrjayviper over 1 year

    I'm guessing I need to edit one of the schemas available in gsettings but I don't know which one. and when I listed all the schemas, there's just too many of them.