Как вы добавляете / удаляете приложения в / из Unity Launcher из командной строки?

Я настраиваю Ubuntu 14.04 Live CD с помощью UCK (Ubuntu Customization Kit). Программа предоставляет вам среду chroot в терминале для внесения изменений.

Я хочу добавить и удалить, какие программы появляются на док-станции.

Я не уверен, что это можно сделать, изменив .desktop файл?

Как это можно сделать с помощью терминала?

1 ответ

Решение

Сценарий ниже может быть использован для добавления или удаления элементов в панели запуска, в зависимости от аргумента (ов):

#!/usr/bin/env python3

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 set_launcher(desktopfile):
    curr_launcher = current_launcher()
    last = [i for i, x in enumerate(curr_launcher) if x.startswith("application://")][-1]
    new_icon = "application://"+desktopfile
    if sys.argv[2] == "a":
        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)])
    elif sys.argv[2] == "r":
        curr_launcher.remove(new_icon)
        subprocess.Popen(["gsettings", "set", "com.canonical.Unity.Launcher","favorites",str(curr_launcher)])

set_launcher(desktopfile)

Как запустить это

  1. Вставьте код в пустой файл, сохраните его как set_launcher.py
  2. Запустите его командой:

    python3 /path/to/set_launcher.py <name_of_.desktop_file> a
    

    добавить значок или:

    python3 /path/to/set_launcher.py <name_of_.desktop_file> r
    

    убрать иконку

    Пример:

    python3 /path/to/set_launcher.py gedit.desktop a
    

    добавить gedit к пусковой установке, или

    python3 /path/to/set_launcher.py gedit.desktop r
    

    удалять gedit из пусковой установки

объяснение

Список значков запуска определен в ключе:

com.canonical.Unity.Launcher favorites

и может быть получен командой:

gsettings get com.canonical.Unity.Launcher favorites

установить альтернативный список (учитывая тот факт, что вы используете правильный формат):

gsettings set com.canonical.Unity.Launcher favorites "[item1, item2, etc]"

Можете ли вы достичь этого путем редактирования .desktop файл?

Нет, это не имеет ничего общего с самим файлом. Важно то, что файл находится в списке избранных программ запуска или нет.

Редактирование этого списка из командной строки - это именно то, что делает скрипт.

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