我猜我需要编辑其中可用的模式之一,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']"
尽管如此,编写自己的实用程序还是更容易(使用gsettings
API) 将接受一个或多个桌面文件名作为位置参数并将它们从收藏夹中删除;为了帮助您入门,这是一个非常基本的示例,其中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