ฉันเดาว่าฉันต้องแก้ไขหนึ่งในสกีมาที่มีอยู่gsettings
แต่ฉันไม่รู้ว่าอันไหน และเมื่อฉันแสดงรายการ schemas ทั้งหมดมีเพียงมากเกินไป
ฉันเดาว่าฉันต้องแก้ไขหนึ่งในสกีมาที่มีอยู่gsettings
แต่ฉันไม่รู้ว่าอันไหน และเมื่อฉันแสดงรายการ schemas ทั้งหมดมีเพียงมากเกินไป
คำตอบ:
ที่สำคัญที่คุณต้องการคือรหัสคีมาคือfavorite-apps
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']"
อย่างไรก็ตามการเขียนโปรแกรมอรรถประโยชน์ของคุณเอง (การใช้gsettings
API ) นั้นง่ายกว่าที่จะยอมรับชื่อไฟล์เดสก์ท็อปตั้งแต่หนึ่งชื่อขึ้นไปเป็นพารามิเตอร์ตำแหน่งและลบออกจากรายการโปรด เพื่อให้คุณเริ่มต้นได้นี่เป็นตัวอย่างพื้นฐานpython
ที่ยอมรับ Param หนึ่งตัว (เรียกใช้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))