Gnome3+: ターミナル経由で Dash からお気に入りを削除するにはどうすればよいですか?

Gnome3+: ターミナル経由で Dash からお気に入りを削除するにはどうすればよいですか?

使用可能なスキーマの 1 つを編集する必要があると思います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']"

それでも、独自のユーティリティを書く方が簡単です(gsettingsAPIを使用する) は、1 つ以上のデスクトップ ファイル名を位置パラメータとして受け入れ、お気に入りから削除します。開始するには、python1 つのパラメータを受け入れる ( として実行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

関連情報