Tried many workarounds to no avail. The way I solved this issue was by removing Light-Locker completely and installing gnome screensaver.
Replace Light-Locker with Gnome Screensaver:
- Start Synaptic Package Manager.
- Type
light-locker
, then uncheck light-locker
and light-locker-settings
and click [Apply changes].
- Then type
gnome-screensaver
and check the box to the left and click apply changes again.
Or, using the terminal:
sudo apt-get remove --purge light-locker
sudo apt-get install gnome-screensaver
It works perfectly, didn't mess up my configuration with lightdm
, and looks good too. If you're not satisfied with the background shown every time you lock your screen, you can install gnome-tweak-tool
. If you can't find it in the applications menu, you can either run it through terminal gnome-tweak-tool
or or create a launcher using the same command. Once it's open go to the desktop tab, and choose the location of the background of your liking.
Now you can lock your screen and enjoy a nice screensaver/locking application that works! Good luck! :)
TL;DR: light-locker keeps the screen black if systemd cannot read /proc
light-locker
depends on dbus
providing IPC
.
dbus
depends on systemd-logind
providing session
information.
systemd-logind
depends on /proc
providing process
information.
Meaning this will not work very well together:
$ file /sbin/init
/sbin/init: symbolic link to /lib/systemd/systemd
$ mount | grep proc
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime,hidepid=2,gid=1337)
And neither can be expected to:
hidepid isn't really compatible with systemd. sorry. [..] Anyway, closing as this was not caused by systemd. -- Lennart Poettering
Partial Solution 1
Partial solution, because it comes with information disclosure.
Allow unprivileged programs (such as systemd, after dropping privileges) to access other users process info in /proc
.
$ sudo mount -o remount,hidepid=0 /proc
# and fix /etc/fstab accordingly
Partial Solution 2
Partial solution, because systemd might break in other places, not just logind.
Add systemd-logind to the appropriate group, most conveniently achieved by adding a service Drop-In.
$ addgroup showpid
$ adduser myuser showpid
$ sudo mount -o remount,hidepid=2,gid=showpid /proc
# and fix /etc/fstab accordingly
$ echo -e '[Service]\nSupplementaryGroups=showpid' | sudo tee /etc/systemd/system/systemd-logind.service.d/10-showpid.conf
$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-logind
After either solution, the Got session-id: (null)
message should look more like Got session-id: /org/freedesktop/login1/c7
and light-locker will be able to communicate properly via dbus
.
What should i have done do figure this out way faster?
- If something changed, and you cannot quickly figure out what changed, just grab the backup already and
diff -ruiN
the whole system.
- Document the first time an issue occured more precisely, so sorting logfiles/IDS reports by time will quickly reveal the relevant cause.
- File more bug reports. Applications silently failing under conditions that will later cause headache and/or system lockup is unacceptable.
Best Answer
sudo find / -name *light-locker*
on my xubuntu 14.04 install finds these entries: http://pastebin.com/JgTW10RVThe most promising option is the
light-locker-settings.py
which ends up pointing to the following files:The first one seems to be system wide settings, the second seems to be user settings, and the third seems to be for screensaver settings.