Gnome3 +: Як видалити вибране з Dash через термінал?


9

Я здогадуюсь, що мені потрібно відредагувати одну із доступних схем, gsettingsале я не знаю, в якій. і коли я перераховував усі схеми, їх просто занадто багато.

Відповіді:


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який приймає один парам (запустити як 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))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.