systemd para bloquear a tela na suspensão como proprietário da sessão X?

2

Eu recentemente mudei para usar systemd para gerenciar o controle de energia.

Para que minha tela seja bloqueada ao retornar da suspensão, criei /etc/systemd/system/i3lock.service com esses conteúdos

[Unit]
Description=i3lock
Before=sleep.target

[Service]
User=fommil
Type=forking
Environment=DISPLAY=:0
ExecStart=/usr/bin/i3lock -c 000000

[Install]
WantedBy=sleep.target

e depois executou systemctl enable i3lock.service .

Mas isso significa que o bloqueio é sempre para o usuário fommil .

Como se configura um serviço que irá executar o bloqueio de tela como o usuário que atualmente possui a sessão X?

    
por fommil 29.06.2014 / 17:40

1 resposta

1

Você deve usar uma unidade de usuário para isso em vez de uma unidade de sistema. Coloque-o em /etc/systemd/user/ , se você quiser que ele esteja disponível (não ativado) para todos os usuários, ou $HOME/.config/systemd/user/ , se você quer que ele esteja disponível apenas para esse usuário.

Em seguida, você pode remover a opção User= (e provavelmente a opção Environment= , você pode executar systemctl show-environment como o usuário atual para ver se as variáveis de env necessárias já foram importadas) e, em seguida, habilitar serviço com systemd --user enable i3clock . (Ou sudo systemd --global enable i3lock se estiver disponível para todos os usuários e você quiser que ele esteja ativado para todos os usuários .)

    
por 02.04.2016 / 15:03

Tags