Sanırım mevcut şemalardan birini düzenlemem gerekiyor gsettings
ama hangisini bilmiyorum. ve tüm şemaları listelediğimde çok fazla var.
Sanırım mevcut şemalardan birini düzenlemem gerekiyor gsettings
ama hangisini bilmiyorum. ve tüm şemaları listelediğimde çok fazla var.
Yanıtlar:
İstediğiniz anahtar favorite-apps
şema kimliği org.gnome.shell
. Şimdi en sevdiğiniz uygulamaları listelemek için
gsettings get org.gnome.shell favorite-apps
veya
dconf read /org/gnome/shell/favorite-apps
Bunlar, bir dizi dizeyi döndürür.
['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']
Şimdi, bu diziden bir değeri kaldırmak için sed
/ gibi metin işleme araçlarını awk
kullanarak bir öğenin bu listede olup olmadığını kontrol edebilir ve aynı formatta tutarak (kesinlikle önemsiz olsa da önemsiz değil) kaldırabilir ve doğru girdikten sonra veritabanına yeni ayarlar, örneğin kaldırmak istediğinizi varsayarsak org.gnome.Nautilus.desktop
(çift tırnaklara dikkat edin):
gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
veya
dconf write /org/gnome/shell/favorite-apps "['firefox.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.gedit.desktop', 'gnome-calculator.desktop']"
Yine de, bir veya daha fazla masaüstü dosya adını konum parametresi olarak kabul edecek ve bunları sık kullanılanlardan kaldıracak kendi yardımcı programınızı ( API kullanarakgsettings
) yazmak daha kolaydır ; Başlamak için, burada python
bir param kabul eden çok basit bir örnek var 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))