The default behavior of Ubuntu 18.04 is not friendly for a notebook that swaps back and forth from desk to mobile.
Because I forget things, I have to write them down. And sometimes, that is just noting where I found a good answer to a problem I was having.
I re-installed Ubuntu and out of the box it suspends the host when the lid is closed. That’s great if you are mobile but terrible if you use the notebook on a KVM or just as a build machine or such sitting on the network.
What we want to meet both cases is a way to suspend on lid close UNLESS the notebook is plugged into power.
Acknowledgements - This Work Is Not Mine!
This solution came from here. But since sometimes sites go away I’m going to duplicate the content below.
Solution from MacieJ Mensfeld
You need to be root.
#sudo -i # really, you need to be root echo 'HandleLidSwitch=ignore' | tee --append /etc/systemd/logind.conf echo 'HandleLidSwitchDocked=ignore' | tee --append /etc/systemd/logind.conf service systemd-logind restart echo 'event=button/lid.*' | tee --append /etc/acpi/events/lm_lid echo 'action=https://gherlein.github.io/etc/acpi/lid.sh' | tee --append /etc/acpi/events/lm_lid touch /etc/acpi/lid.sh chmod +x /etc/acpi/lid.sh cat > /etc/acpi/lid.sh << EOF #!/bin/bash USER=your_username grep -q close /proc/acpi/button/lid/*/state if [ $? = 0 ]; then su -c "sleep 1 && xset -display :0.0 dpms force off" - $USER fi grep -q open /proc/acpi/button/lid/*/state if [ $? = 0 ]; then su -c "xset -display :0 dpms force on &> /tmp/screen.lid" - $USER fi EOF
This works for me. Your results may vary.