On my Compaq Presario CQ62 laptop Ubuntu 14.04 would suspend on lid close. But a clean install of 16.04 ignored the lid action. According to with-ubuntu-16-04-laptop-doesnt-suspend-when-lid-is-closed (which I can't post on) there's a kernel bug fixed in version 4.4.8 whereas 16.04 has just shipped with 4.4.0. Everything else works so I decided to try to fix it with the existing kernel. Following instructions on laptop-does-not-suspend-when-lid-is-closed was helpful but outdated and caused wifi to fail to reconnect on resume. What's the best way to cause a lid close event to enter suspend mode?
To get ACPI to perform suspend create /etc/acpi/events/lidbtn and /etc/acpi/lidbtn.sh as below.
sudo sh cat <<. >/etc/acpi/lidbtn.sh #!/bin/sh # Initiate suspend mode when the lid has been closed. # Only act on a lid close event if grep -q open /proc/acpi/button/lid/LID0/state then dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Suspend" boolean:true fi . cat <<. >/etc/acpi/events/lidbtn # Laptop lid event triggered. Call /etc/acpi/lidbtn.sh event=button[ /]lid action=/etc/acpi/lidbtn.sh . exit
I also tried
sudo /lib/systemd/systemd-sleep suspend as alternatives to the
dbus-send line, but these resulted in wifi not authenticating reliably after resume. I found
/etc/default/acpi-support to be helpful background reading, stating that
acpi-support is deprecated and dbus-pm, dbus-hal, or pm-utils are the current methods.