Onde colocar um comando para ser executado quando eu fizer login no Lubuntu executando o SDDM?

Onde colocar um comando para ser executado quando eu fizer login no Lubuntu executando o SDDM?

Estou tentando definir um papel de parede no terminal. O roteiro é:

pcmanfm-qt --set-wallpaper=$(ls /home/$USER/.local/share/wallpapers/*/* | shuf -n1)

Isso altera o papel de parede, mas quero que ele seja executado automaticamente sempre que eu fizer login.

Tentei colocar este script em alguns arquivos adequados, como /etc/X11/xinit/xinitrc Se eu fornecer o arquivo, ele será executado conforme o esperado, mas nada acontece ao fazer login.

Alguma ajuda sobre onde colocar essa linha para ser executada sempre que eu fizer login? (de preferência na minha pasta de usuário e não globalmente)

Estou usando o Lubuntu 19.10 com Simple Desktop Display Manager (SDDM).

Responder1

Como é SDDM:

Olhando para a página de manual dosddm.conf, há

SessionCommand=

Caminho do script a ser executado ao iniciar a sessão do usuário. Este script recebe o valor da configuração “Exec” no arquivo “.desktop” da sessão selecionada e o executa. O valor padrão é "/etc/sddm/Xsession".

Portanto, crie esse arquivo ou modifique sddm.confe adicione seu próprio arquivo e tente fazer algo nesse arquivo.

Para fins de depuração, gravar a saída por meio do redirecionamento para algum arquivo /tmp/como um arquivo de log é uma técnica útil.

Então, como passo inicial, tente algo como

echo "Session file executed" >> /tmp/my.log

e veja se isso acontece quando você faz login. Em seguida, tente adicionar seu comando de papel de parede.

Responder2

sddm.conf especifica várias seções, das quais você deseja o 'SessionCommand'parâmetro da [Wayland]seção. O script padrão, que verifica "/etc/sddm/wayland-session"e origina os seguintes arquivos de script no diretório inicial do usuário:

Em ordem:

$HOME/.bash_profile, $HOME/.bash_login, $HOME/.profile.

Você deve conseguir colocar o comando de configuração do papel de parede em qualquer um desses três arquivos em seu diretório inicial para ativá-lo no login.

Nota: Eu tecnicamente uso Ubuntu e não Lubuntu, então pode haver diferenças de sistema, mas isso deve ser padrão em ambas as distros.

Responder3

Aqui está um artigo que encontrei:https://smallbusiness.chron.com/run-command-startup-linux-27796.html

  1. Coloque o comando em seu arquivo crontab. O arquivo crontab no Linux é um daemon que executa tarefas editadas pelo usuário em horários e eventos específicos. Para editar o arquivo, abra um terminal e digite “sudo crontab -e” para abrir seu arquivo crontab no editor de texto padrão. Na primeira linha disponível, digite “@reboot xxxx”, onde “xxxx” é o comando que você deseja executar. Salve o arquivo e saia.
  2. Coloque um script contendo o comando em seu diretório /etc. Crie um script como “startup.sh” usando seu editor de texto favorito. Salve o arquivo em seu diretório /etc/init.d/. Altere as permissões do script (para torná-lo executável) digitando "chmod +x /etc/init.d/mystartup.sh".

  3. Edite o script /rc.local usando seu editor de texto. No lubuntu, ele está localizado em /etc/rc.local. Depois de adicionar os comandos que deseja executar - certificando-se de fazer isso como root - salve o arquivo e saia. Os comandos serão executados após a próxima inicialização.

informação relacionada