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


9

で利用可能なスキーマの1つを編集する必要gsettingsがあると思いますが、どちらのスキーマかわかりません。そして、すべてのスキーマをリストしたとき、それらの数が多すぎます。

回答:


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']"

それでも、1つ以上のデスクトップファイル名を位置パラメータとして受け入れ、それらをお気に入りから削除する独自のユーティリティを(API gsettings使用して)作成する方が簡単です。開始するには、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))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.