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


9

我猜我需要编辑可用的一种模式,gsettings但我不知道哪种模式。当我列出所有模式时,它们太多了。

Answers:


12

您想要的键是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))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.