Como configurar um iniciador de inicialização a partir da linha de comando
Como você mencionou na sua pergunta, os comandos podem ser executados no login colocando-se um lançador em ~/.config/autostart
Como o iniciador é usado apenas para iniciar um script, você só precisa das palavras-chave de entrada "básicas" no% criado.desktop
files: as palavras-chave / linhas que você precisa, pelo menos:
[Desktop Entry]
Name=name
Exec=command
Type=Application
A linha (opcional) X-GNOME-Autostart-enabled=true
será adicionada automaticamente se você ativar / desativar a função de início automático do ativador (ela é definida como X-GNOME-Autostart-enabled=true
por padrão)
Mais sobre campos obrigatórios, você pode encontrar aqui .
Exemplo de script
Para criar um lançador desse tipo a partir da linha de comando, você precisaria de um script pequeno que levaria o nome do iniciador e o comando para ser executado como um argumento. Um exemplo de tal script abaixo.
Se eu executar com o comando:
python3 '/path/to/script' 'Test' 'gedit'
Ele cria um ativador de inicialização, executando gedit
quando eu fizer o login.
O lançador também está visível no Dash > Aplicações de inicialização:
Oscript
#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]
name = sys.argv[1]; command = sys.argv[2]
launcher = ["[Desktop Entry]", "Name=", "Exec=", "Type=Application", "X-GNOME-Autostart-enabled=true"]
dr = home+"/.config/autostart/"
if not os.path.exists(dr):
os.makedirs(dr)
file = dr+name.lower()+".desktop"
if not os.path.exists(file):
with open(file, "wt") as out:
for l in launcher:
l = l+name if l == "Name=" else l
l = l+command if l == "Exec=" else l
out.write(l+"\n")
else:
print("file exists, choose another name")
Cole-o em um arquivo vazio, salve-o como set_startupscript.py
, execute-o pelo comando:
python3 /path/to/set_startupscript.py '<name>' '<command>'
O que faz
- Cria um lançador básico (você não precisa mais, executando um script) em
~/.config/autostart
, levando o nome e o comando como argumentos. -
Se um lançador com o nome já existir em
~/.config/autostart
, ele imprime uma mensagem:file exists, choose another name