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']"
それでも、1つまたは複数のデスクトップファイル名を位置パラメータとして受け入れ、それらをお気に入りから削除する独自のユーティリティ( sing [gsettings
API )]を書く方が簡単です。はじめに、1つのパラメータを受け入れる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))