Gnome3+:如何通过终端从 Dash 中删除收藏夹?

Gnome3+:如何通过终端从 Dash 中删除收藏夹?

我猜我需要编辑其中可用的模式之一,gsettings但我不知道是哪一个。当我列出所有模式时,发现它们太多了。

答案1

您想要的键是favorite-apps,架构 ID 是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

相关内容