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))

おすすめ記事