Gnome3+: Как удалить избранное из Dash через терминал?

Gnome3+: Как удалить избранное из Dash через терминал?

Я предполагаю, что мне нужно отредактировать одну из схем, доступных в , gsettingsно я не знаю, какую именно. и когда я перечислил все схемы, их оказалось слишком много.

решение1

Ключ, который вам нужен favorite-apps, это , идентификатор схемы org.gnome.shell. Теперь, чтобы получить список ваших любимых приложений, вы можете просто запустить

gsettings get org.gnome.shell favorite-apps

или

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

Они вернут массив строк, например

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

Теперь, чтобы удалить значение из этого массива, вы можете использовать инструменты обработки текста, такие как sed/, awkчтобы проверить, есть ли элемент в этом списке, и удалить его, сохранив тот же формат (не такая уж простая задача, но определенно выполнимая), и как только вы все сделаете правильно, просто запишите новые настройки в базу данных, например, если вы хотите удалить, org.gnome.Nautilus.desktopвы выполните (обратите внимание на двойные кавычки):

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

или

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

Но все же проще написать свою собственную утилиту (с использованием gsettingsAPI), который будет принимать одно или несколько имен файлов рабочего стола в качестве позиционных параметров и удалять их из избранного; для начала вот очень простой пример, который pythonпринимает один параметр (запускается как 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))

решение2

В Linux Mint это следующие команды:

Чтобы запросить избранное:

gsettings get org.x.apps.favorites list

Чтобы удалить все избранное:

gsettings reset org.x.apps.favorites list

Связанный контент