Fedora – Can not suspend when lid closed, even if external display is connected

fedoragnomesuspendsystemd

My laptop has Fedora 22 with Gnome 3.16.4. Normally, it will go suspend if the lid is closed. But with external display connected (via VGA), the gnome desktop is simply transferred to the external display instead when the lid is closed.

However I want my laptop to suspend even if external display is connected. Here are what I've checked and tried:

  • When I open and close the lid, systemd-logind do record the action as I can see by journalctl -b -u systemd-logind.
Dec 09 08:39:39 workstation systemd-logind[980]: Lid closed.
Dec 09 08:39:47 workstation systemd-logind[980]: Lid opened.
  • I've configured /etc/systemd/logind.conf to be the following:
[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
HandleLidSwitchDocked=suspend
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes

Specifically, I commented out HandleLidSwitchDocked=ignore line and changed it to suspend. And the rest of it is said (by systemd) to be default. But after reboot, it didn't work.

  • My video card is "Intel Corporation Broadwell-U Integrated Graphics" (output by lspci). As it's not nvidia, I think it's not affected by the bug discussed in this thread?

So how to configure Fedora/Gnome to suspend even if external display is connected?

Best Answer

Assuming the laptop's also plugged into external power; you'd also need to explicitly add the following to /etc/systemd/logind.conf:

HandleLidSwitchExternalPower=suspend

Per man logind.conf

HandleLidSwitchExternalPower= is completely ignored by default (for backwards compatibility) — an explicit value must be set before it will be used to determine behaviour.

If the system is inserted in a docking station, or if more than one display is connected, the action specified by HandleLidSwitchDocked= occurs; if the system is on external power the action (if any) specified by HandleLidSwitchExternalPower= occurs; otherwise the HandleLidSwitch= action occurs.

Related Question