systemd per bloccare lo schermo in caso di sospensione come proprietario della sessione X?


2

Di recente sono passato a utilizzare systemdper gestire il controllo dell'alimentazione.

Al fine di ottenere il blocco dello schermo quando torno dalla sospensione, ho creato /etc/systemd/system/i3lock.servicecon questi contenuti

[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 poi corse systemctl enable i3lock.service.

Ciò significa che il blocco è sempre per l' fommilutente.

Come si configura un servizio che eseguirà il blocco dello schermo come utente che attualmente possiede la sessione X?


Non penso che sia un lavoro per il sistema systemd . E l'utente non è l'unico problema, la DISPLAYvariabile d'ambiente è un'altra.
Cristian Ciupitu,

2
Potresti provare i3lock-wait-for-suspend di olvaffe o i3lock-wait-for-suspend di kanru.
Cristian Ciupitu,

Risposte:


1

È necessario utilizzare un'unità utente per quella anziché un'unità di sistema. Inseriscilo /etc/systemd/user/, se vuoi che sia disponibile (non abilitato) per tutti gli utenti o $HOME/.config/systemd/user/, se vuoi che sia disponibile solo per quell'utente.

Quindi è possibile rimuovere l' User=opzione (e probabilmente anche l' Environment=opzione, è possibile eseguire systemctl show-environmentcome utente corrente per vedere se i parametri richiesti sono già stati importati), quindi abilitare il servizio con systemd --user enable i3clock. (O sudo systemd --global enable i3lockse è disponibile per tutti gli utenti e vuoi che sia abilitato per tutti gli utenti .)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.