我猜我需要编辑可用的一种模式,gsettings
但我不知道哪种模式。当我列出所有模式时,它们太多了。
我猜我需要编辑可用的一种模式,gsettings
但我不知道哪种模式。当我列出所有模式时,它们太多了。
Answers:
您想要的键是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))