Is it possible to stop my laptop going to sleep when I close the lid?
GNOME 3.20, Fedora 24.
My laptop does not reliably wake from sleep. (It happens to be a hardware issue… I think I basically killed it while trying to replace a wifi card. But I want to keep using it for a while longer).
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Install GNOME Tweak Tool and go to the Power section. There’s an option to disable the automatic suspend on lid close.
Option details
I compared dconf before and after to find the option, but it turns out that’s not how it’s implemented. Instead, Tweak Tool creates ~/.config/autostart/ignore-lid-switch-tweak.desktop. The autostart is a script which effectively runs systemd-inhibit --what=handle-lid-switch. So we can see the lid close action is handled purely by systemd-logind.
Alternative route
An alternative would be to edit /etc/systemd/logind.conf to include:
HandleLidSwitch=ignore
This would work all the time, not just when your user is logged in.
Method 2
Unfortunately, the inhibitor routes didn’t seem to work as advertised for me on openSUSE Tumbleweed (42.1) using GNOME. But, I had success with Systemd masking:
systemctl mask sleep.target suspend.target
To undo the mask, you can use unmask:
systemctl unmask sleep.target suspend.target
Method 3
I had solved this issue once before, but apparently recent versions of Fedora (so far from Fedora 28 to 33, inclusive), require two entries now, whereas before only one was required. So:
user$ sudo vi /etc/systemd/logind.conf HandleLidSwitch=ignore <---- Set both of these HandleLidSwitchDocked=ignore <---- to ignore lid events. user$ sudo systemctl restart systemd-logind
EDIT: As mentioned by commenters below, you might want to just reboot after making the edits.
Method 4
As NYCeyes says in https://unix.stackexchange.com/a/460405/229223, one line is not the complete solution.
My configuration in /etc/systemd/logind.conf.d/local.conf is:
HandleLidSwitch=lock HandleLidSwitchDocked=ignore HandleLidSwitchExternalPower=lock
- Lines 1 & 3 locks the screen when the laptop is mobile or simply charging, similar to tapping the power button on my phone – make secure.
- Line 2 is to handle plugging in to my docking station (USB-C device with DisplayPort connectors) and lets me close the lid without the laptop assuming I’ve stopped working, when I’m actually just getting started.
The logind.conf man page from systemd is actually very informative.
Method 5
more recent versions of systemd-logind support a new flag to specify the handling of lid-close on external power
$ /etc/systemd/logind.conf HandleLidSwitch=suspend # suspend when on battery HandleLidSwitchExternalPower=ignore # inhibit suspend when on AC HandleLidSwitchDocked=ignore # inhibit suspend when on external monitor $> reboot ↓or↑ $> sudo systemctl restart systemd-logind # will kill current X/Wayland session
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0