На основе официальной документации:
Для добавления средства запуска к Средству запуска Единицы слева, Вы выбираете и перетаскиваете его на панель Launcher. С другой стороны, можно поместить .desktop файл в/usr/share/applications/или в ~/.local/share/applications/. После перемещения Вашего файла там, ищите его в Тире (ключ Windows-> вводят имя приложения), и перетащите его к Средству запуска Единицы. Теперь Ваше средство запуска (.desktop файл) заблокировано на Средстве запуска Единицы!
Это означает, что можно добавить средство запуска вручную через "перетаскивание". Но, действительно ли возможно сделать это программно?
Я могу объяснить, почему я спрашиваю об этом:
У меня есть свой собственный рывок, он загружает последнюю версию Eclipse IDE, создает eclipse.desktop файл без iteraction с Пользователем.
И на последнем шаге я хочу добавить файл Eclipse.desktop к Средству запуска Единицы, и я не хочу просить, чтобы пользователь сделал это.
Я проанализировал спецификацию для *.desktop файлов и действительно получал ответ.
Предоставьте консультацию.
Я на самом деле сделал сценарий для этого. Это помещает значок вниз в средство запуска, но с незначительным изменением, можно поместить его наверху (или любое другое положение) также.
Как это, это находится в 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)
Сценарий предотвращает несколько случаев в списке средства запуска того же приложения, которое вызвало бы повреждение, он перечисляет.