Como você adiciona / remove aplicativos de / para o Unity Launcher da linha de comando?

6

Estou personalizando um Live CD do Ubuntu 14.04 com o UCK (Ubuntu Customization Kit). O programa fornece um ambiente chroot em um terminal para fazer alterações.

Quero adicionar e remover quais programas aparecem no encaixe.

Não tenho certeza se isso pode ser feito modificando o arquivo .desktop ?

Como isso pode ser feito usando o terminal?

    
por Aaron Salyer 19.04.2015 / 11:02

1 resposta

4

O script abaixo pode ser usado para adicionar ou remover itens ao lançador, dependendo do (s) argumento (s):

#!/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)

Como executar

  1. Cole o código em um arquivo vazio, salve-o como set_launcher.py
  2. Execute-o pelo comando:

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

    para adicionar um ícone ou:

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

    para remover um ícone

    Exemplo:

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

    para adicionar gedit ao iniciador ou

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

    para remover gedit do iniciador

Explicação

A lista de ícones do lançador é definida na chave:

com.canonical.Unity.Launcher favorites

e pode ser obtido pelo comando:

gsettings get com.canonical.Unity.Launcher favorites

para definir uma lista alternativa (dado o fato de você usar o formato correto):

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

Você pode conseguir isso editando um arquivo .desktop ?

Não, não tem nada a ver com o arquivo em si. O que importa é que o arquivo esteja ou não na lista de favoritos do inicializador.

Editar esta lista a partir da linha de comando é exatamente o que o script faz.

    
por Jacob Vlijm 19.04.2015 / 11:43