
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.conf
e 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
- 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.
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".
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.