Gnome3 +: ฉันจะลบรายการโปรดออกจาก Dash ผ่านเทอร์มินัลได้อย่างไร


9

ฉันเดาว่าฉันต้องแก้ไขหนึ่งในสกีมาที่มีอยู่gsettingsแต่ฉันไม่รู้ว่าอันไหน และเมื่อฉันแสดงรายการ schemas ทั้งหมดมีเพียงมากเกินไป

คำตอบ:


12

ที่สำคัญที่คุณต้องการคือรหัสคีมาคือ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']"

อย่างไรก็ตามการเขียนโปรแกรมอรรถประโยชน์ของคุณเอง (การใช้gsettingsAPI ) นั้นง่ายกว่าที่จะยอมรับชื่อไฟล์เดสก์ท็อปตั้งแต่หนึ่งชื่อขึ้นไปเป็นพารามิเตอร์ตำแหน่งและลบออกจากรายการโปรด เพื่อให้คุณเริ่มต้นได้นี่เป็นตัวอย่างพื้นฐาน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))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.