Я написал скрипт установки, который автоматизирует мой процесс установки. После этого я бы хотел переставить / добавить / удалить значки в модуле запуска.
Используя dconf watch /
, я могу видеть вывод, когда я переупорядочиваю значки. Есть ли способ сделать это из командной строки - возможно, с помощью gsettings
?
Простой рев сценария позволяет брать файл в качестве аргумента и устанавливает средство запуска, чтобы иметь независимо от того, что ярлыки на программы появляются в файле (один на строку).
Основная идея состоит в том, что значки средства запуска являются на самом деле ссылками на .desktop
файлы (везде, где они могут появиться), и канонический метод для установки объектов средства запуска должны выполнить следующую команду:
gsettings set com.canonical.Unity.Launcher favorites "[ 'item1.desktop' , 'item2.desktop' , . . . 'item3.desktop; ]"
Это может стать утомительным, если Вы хотите добавить много объектов, и заключение в кавычки может стать болью. Можно всегда открывать желаемую программу и щелчок правой кнопкой по значку для вызова опции "Lock to launcher", но это также не практично, когда Вы имеете дело с большим количеством объектов.
Подход, проявленный здесь, должен просто считать файл, с 1 разом на строку, создать текст команды и выполнить его. Это не отличается от выполнения gsettings set
команда выше, за исключением того, что тяжелая работа сделана для Вас.
Для запущения скрипта сохраните его в файл, сделайте его исполняемым файлом с chmod +x /path/to/script
и выполненный как
python /path/to/script /path/to/file
Входной файл должен содержать полный путь к объектам, которые Вы хотите добавленный к средству запуска, такой как /usr/share/applications/firefox.desktop
, но это не необходимо, строка с firefox.desktop
в порядке также.
Прежде, чем запустить скрипт
После запущения скрипта
Обратите внимание, что порядок является точно тем же, поскольку записи появляются во входном файле
#!/usr/bin/env python
# Author: Serg Kolo
# Date: April 22, 2016
# Purpose: programmatically set Unity launcher items
# by reading a file
# Written for: http://askubuntu.com/q/760895/295286
# Tested on: Ubuntu 14.04 LTS
import sys
import subprocess
command="""gsettings set com.canonical.Unity.Launcher favorites """
def run_command(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
output = p.stdout.read().strip()
return output
items=""
with open(sys.argv[1]) as file:
for line in file:
temp = "'" + line.strip().split('/')[-1] + "'"
items = ",".join([items,temp])
items = '"[ ' + items[1:] + ' ]"'
print run_command(command + " " + items)
dpkg -l *virtualbox* | grep ii
. – heynnema 12 September 2017 в 14:44