Configurando o diretório inicial do xscreensaver com o systemd

0

Eu escrevi uma unidade de usuário systemd para iniciar o xscreensaver, já que eu quero que ele seja iniciado automaticamente. Aqui está o que parece:

# ~/.config/systemd/user/xscreensaver.service
[Unit]
Description=XScreensaver

[Service]
Type=simple
ExecStart=/run/current-system/sw/bin/xscreensaver -no-splash
Restart=always

[Install]
WantedBy=multi-user.target

Isso inicia; no entanto, ele não está seguindo a configuração que eu expus (como acontece quando eu inicio manualmente). Eu acho que isso é porque o diretório HOME não está sendo definido (xscreensaver parece em ~/.xscreensaver para sua configuração). Mas mesmo adicionando em uma linha

Environment=HOME=/home/username

na seção [Service] na minha unidade não corrige isso; ainda não está lendo o arquivo de configuração. Até onde sei, o xscreensaver não possui um argumento de linha de comando para personalizar o caminho para o arquivo de configuração. O que eu preciso fazer para comunicar o diretório home correto ao xscreensaver?

EDIT: após uma inspeção mais próxima, parece que o xscreensaver está olhando para o arquivo de configuração correto; no entanto, simplesmente não está exibindo nenhuma das imagens (minha configuração é apenas GLSlideshow apontando para um diretório). Pode ser que não esteja encontrando algo no caminho que está procurando?

    
por limp_chimp 18.03.2016 / 18:19

1 resposta

0

OK, eu percebi isso. O problema era que o GLSlideshow estava esperando algo (não exatamente certo do que) para ser chamado em seu PATH, e systemd não estava dando o caminho. Então, o que foi corrigido:

[Unit]
Description=XScreensaver

[Service]
Type=simple
ExecStart=/run/current-system/sw/bin/xscreensaver -no-splash
Restart=always
Environment=HOME=/home/myusername
Environment=PATH=/run/current-system/sw/bin

[Install]
WantedBy=multi-user.target

(Observe que o caminho /run/current-system/sw/bin é específico da minha distribuição, NixOS. É possível que, para sistemas mais padrão, por exemplo, aqueles que usam /bin ou /usr/bin , que isso não surja.)

    
por 18.03.2016 / 18:28