Gnome3 +: Bagaimana cara menghapus favorit dari Dash via terminal?

9

Saya kira saya perlu mengedit salah satu skema yang tersedia di gsettingstetapi saya tidak tahu yang mana. dan ketika saya mendaftar semua skema, ada terlalu banyak.

mrjayviper
sumber

Jawaban:

12

Kunci yang Anda inginkan adalah favorite-apps, ID skema org.gnome.shell. Sekarang untuk daftar aplikasi favorit Anda, Anda dapat menjalankannya

gsettings get org.gnome.shell favorite-apps

atau

dconf read /org/gnome/shell/favorite-apps

Ini akan mengembalikan array misalnya string

['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']

Sekarang, untuk menghapus nilai dari array itu Anda bisa menggunakan alat pengolah teks seperti sed/ awkuntuk memeriksa apakah suatu item ada dalam daftar itu dan menghapusnya dengan format yang sama (bukan hal sepele yang pasti bisa dilakukan) dan begitu Anda melakukannya dengan benar cukup tulis saja pengaturan baru ke database misalnya dengan asumsi Anda ingin menghapus org.gnome.Nautilus.desktopAnda akan menjalankan (perhatikan tanda kutip ganda):

gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"

atau

dconf write /org/gnome/shell/favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"

Namun, lebih mudah untuk menulis utilitas Anda sendiri ( menggunakan gsettingsAPI ) yang akan menerima satu atau lebih nama file desktop sebagai parameter posisi dan menghapusnya dari favorit; untuk membantu Anda memulai, berikut adalah contoh yang sangat mendasar dalam pythonmenerima satu param (jalankan sebagai 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))
don_crissti
sumber