Long blah-blah-blah, you may skip to the problem description
Long story short – after a system upgrade on my old EEEPC1005PE netbook awesome tile manager stopped to work with my config. I’m using some shifty library features and it looks like library from Debian package awesome-extra version 2012061101 does not keep up with awesome 3.5.6-1.
I don’t think it’s something unrecoverable but decided to try some new (for me) window manager. Since the netbook is not very powerful quite obviously I didn’t even consider fancy ones. My two options are xfce4 and xmonad.
Xmonad because I’m quite intrigued by functional programming paradigm and settings file there is a Haskell program. I have two concerns though – I’ll have to spend a significant time configuring this window manager so I need some backup solution just in case. The second concern it that most of guides and examples available on the Internet are few years old and may not work well with the current version of xmonad.
So I’ve installed xfce4. And, you know, I like it so far, neat and simple thing, but not ascetic. Most of features work out of box without any additional configuration.
The only problem I have is with suspending and locking screen using xscreensaver when the lid is closed. I bet the reason is because I’m sequentially upgrading the system from Debian Squeezy and it is just full of junk pulling a blanket back and forth.
I’ve installed xfce4-power-manager and configured it to suspend when the lid is closed and lock screen when the system is going to sleep.
When I was closing lid system was suspending but the screen didn’t lock.
It looks like systemd intercepts lid closing signal. Well, let’s disable lid initiated suspend in systemd as suggested on the Internet:
1 2 3 4 5 6
reboot… And xfce4-power-manager stil knows noting about the lid. Now system stopped even to suspend. I was trying to run
with no luck – it got no signals at all from closing lid. Well, babe, It’s an opensource – no pain, no gain.
Screw it, we’ve got ACPI to work with. There is a script /etc/acpi/lid.sh which is executed when lid changes state. By default it hands over to other managers if they’re launched (and they do not work as expected for me). I’ve just commented
1 2 3
part in /etc/acpi/lid.sh
and uncommented LID_SLEEP option in /etc/default/acpi-support
voila – everything works as it should. I don’t think changing system scripts is a brilliant idea, it is a dirty hack rather but a working one.