Добавление моего средства запуска к Средству запуска Единицы автоматически. Как?

На основе официальной документации:

Для добавления средства запуска к Средству запуска Единицы слева, Вы выбираете и перетаскиваете его на панель Launcher. С другой стороны, можно поместить .desktop файл в/usr/share/applications/или в ~/.local/share/applications/. После перемещения Вашего файла там, ищите его в Тире (ключ Windows-> вводят имя приложения), и перетащите его к Средству запуска Единицы. Теперь Ваше средство запуска (.desktop файл) заблокировано на Средстве запуска Единицы!

Это означает, что можно добавить средство запуска вручную через "перетаскивание". Но, действительно ли возможно сделать это программно?

Я могу объяснить, почему я спрашиваю об этом:

У меня есть свой собственный рывок, он загружает последнюю версию Eclipse IDE, создает eclipse.desktop файл без iteraction с Пользователем.

И на последнем шаге я хочу добавить файл Eclipse.desktop к Средству запуска Единицы, и я не хочу просить, чтобы пользователь сделал это.

Я проанализировал спецификацию для *.desktop файлов и действительно получал ответ.

Предоставьте консультацию.

3
задан 19 April 2015 в 12:08

1 ответ

Я на самом деле сделал сценарий для этого. Это помещает значок вниз в средство запуска, но с незначительным изменением, можно поместить его наверху (или любое другое положение) также.

Как это, это находится в python2, но просто измените хижину на #!/usr/bin/env python3 если требуется использовать его в качестве python3. Код идентичен.

Для использования его .desktop файл должен быть в также /usr/share/applications или в ~/.local/share/applications, но обычно который имеет место.

Как использовать

  • скопируйте сценарий ниже, сохраните его как launcher_add.py
  • сделайте это исполняемым файлом

Выполните его командой:

/path/to/launcher_add.py name_of_desktopfile.desktop 

необходимо использовать имя файла .desktop файла без пути.

Сценарий

#!/usr/bin/env python

import subprocess
import sys

desktopfile = sys.argv[1]

def current_launcher():
    get_current = subprocess.check_output(["gsettings", "get", "com.canonical.Unity.Launcher", "favorites"]).decode("utf-8")
    return eval(get_current)

def add_new(desktopfile):
    curr_launcher = current_launcher()
    last = [i for i, x in enumerate(curr_launcher) if x.startswith("application://")][-1]
    new_icon = "application://"+desktopfile
    if not new_icon in curr_launcher:
        curr_launcher.insert(last, new_icon)
        subprocess.Popen(["gsettings", "set", "com.canonical.Unity.Launcher","favorites",str(curr_launcher)])
    else:
        pass

add_new(desktopfile)

Сценарий предотвращает несколько случаев в списке средства запуска того же приложения, которое вызвало бы повреждение, он перечисляет.

5
ответ дан 1 December 2019 в 15:38

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

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