Desbloqueio de aplicativos do ativador a partir da linha de comando

1

Para configurar automaticamente novas instalações, preciso de uma maneira de desbloquear os aplicativos padrão na barra inicializadora. Não sei onde esta informação está armazenada, pode estar editando / substituindo o arquivo seria a maneira mais fácil.

    
por nightcod3r 11.01.2015 / 22:08

1 resposta

1

O comando para obter os ícones do lançador atual é:

gsettings get com.canonical.Unity.Launcher favorites

Isso lhe dará uma lista como:

['item_1', 'item_2', 'application://application_to_remove.desktop', 'etc']

Se você remover seu item da lista e definir a versão alterada da lista pelo comando:

gsettings set com.canonical.Unity.Launcher favorites "['item_1', 'item_2', 'etc']"
(mind the double quotes)

Sua inscrição é desbloqueada do iniciador.

Exemplo de script

Como exemplo de como o trabalho pode ser feito por um script (python):

#!/usr/bin/env python3
import subprocess
import sys

key = "com.canonical.Unity.Launcher"
desktopfile = sys.argv[1]

curr_launcher = eval(subprocess.check_output([
    "gsettings", "get", key, "favorites"
    ]).decode("utf-8"))
new_launcher = [item for item in curr_launcher if not desktopfile in item] 
subprocess.Popen(["gsettings", "set", key,"favorites",str(new_launcher)])

Como usar

  • Cole o script em um arquivo vazio, salve-o como remove_fromlauncher.py
  • Execute-o pelo comando

    python3 /path/to/remove_fromlauncher.py <application.desktop>
    

    ou menor:

    python3 /path/to/remove_fromlauncher.py <application>
    

    Exemplo remova o Virtualbox:

    python3 /path/to/remove_fromlauncher.py virtualbox.desktop
    

Nota

Tenha em mente que você não pode simplesmente remover todos itens da lista; Também inclui itens que não são aplicativos.

EDITAR

Versão do script para remover vários ícones de uma só vez:

#!/usr/bin/env python3
import subprocess
import sys

key = "com.canonical.Unity.Launcher"

desktopfiles = sys.argv[1:]

for desktopfile in desktopfiles:
    curr_launcher = eval(subprocess.check_output([
        "gsettings", "get", key, "favorites"
        ]).decode("utf-8"))
    new_launcher = [item for item in curr_launcher if not desktopfile in item] 
    subprocess.Popen(["gsettings", "set", key,"favorites",str(new_launcher)])

O uso é praticamente o mesmo, mas agora você pode usar vários argumentos de uma só vez, por exemplo:

python3 /path/to/remove_fromlauncher.py gedit thunderbird

removerá os Thunderbird e Gedit do iniciador.

    
por Jacob Vlijm 11.01.2015 / 22:27