Автоматизация упорядочения иконок единства запуска

Я написал скрипт установки, который автоматизирует мой процесс установки. После этого я бы хотел переставить / добавить / удалить значки в модуле запуска.

Используя dconf watch /, я могу видеть вывод, когда я переупорядочиваю значки. Есть ли способ сделать это из командной строки - возможно, с помощью gsettings?

2
задан 23 April 2016 в 01:16

1 ответ

Введение

Простой рев сценария позволяет брать файл в качестве аргумента и устанавливает средство запуска, чтобы иметь независимо от того, что ярлыки на программы появляются в файле (один на строку).

Основная идея состоит в том, что значки средства запуска являются на самом деле ссылками на .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 в порядке также.

Демонстрация

Прежде, чем запустить скрипт

enter image description here

После запущения скрипта

enter image description here

Обратите внимание, что порядок является точно тем же, поскольку записи появляются во входном файле

Источник сценария

#!/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)
2
ответ дан 23 April 2016 в 11:16
  • 1
    @OrganicMarble Ваш комментарий был предназначен для исходного question/OP? PS: средства ООН удаляются. Кроме того, лучшая команда dpkg была бы dpkg -l *virtualbox* | grep ii. – heynnema 12 September 2017 в 14:44

Другие вопросы по тегам:

Похожие вопросы: