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
- Cole o código em um arquivo vazio, salve-o como
set_launcher.py
-
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 oupython3 /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.