Eu escrevi uma unidade de usuário systemd para iniciar o xscreensaver, pois quero que ela seja inicializada 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, não está seguindo a configuração que eu havia definido (como acontece quando inicio manualmente). Eu acho que isso ocorre porque o diretório HOME não está sendo definido (o xscreensaver procura ~/.xscreensaver
sua configuração). Mas mesmo adicionando uma linha
Environment=HOME=/home/username
na [Service]
seção da minha unidade não corrige isso; ainda não está lendo o arquivo de configuração. Até onde eu sei, o xscreensaver não possui um argumento de linha de comando para personalizar o caminho para o arquivo de configuração. O que preciso fazer para comunicar o diretório inicial correto ao xscreensaver?
EDIT: após uma inspeção mais detalhada, 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?
/run/current-system/sw/bin
ao PATH mais/etc/profile
ou menos. Também não acho que você precise definirEnvironment=HOME=
uma unidade de usuário. Tambémmulti-user.target
não faz muito sentido para uma unidade de usuário (duvido que você possa ativá-la praticamente dessa maneira). Você provavelmente quer, emdefault.target
vez disso.