Saya kira saya perlu mengedit salah satu skema yang tersedia di gsettings
tetapi saya tidak tahu yang mana. dan ketika saya mendaftar semua skema, ada terlalu banyak.
sumber
Saya kira saya perlu mengedit salah satu skema yang tersedia di gsettings
tetapi saya tidak tahu yang mana. dan ketika saya mendaftar semua skema, ada terlalu banyak.
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
/ awk
untuk 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.desktop
Anda 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 gsettings
API ) 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 python
menerima 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))