Gnome
Gnome3+:如何通過終端從 Dash 中刪除收藏夾?
我猜我需要編輯其中一種可用的模式,
gsettings
但我不知道是哪一種。當我列出所有模式時,它們太多了。
您想要的關鍵是
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))