home · contact · privacy
Force poweroff on lid-close.
authorPlom Heller <plom@plomlompom.com>
Sat, 12 Sep 2026 19:22:09 +0000 (21:22 +0200)
committerPlom Heller <plom@plomlompom.com>
Sat, 12 Sep 2026 19:22:09 +0000 (21:22 +0200)
setup_scripts/start_root_t490s.sh

index 1c74d61c5e25eb2361a2a01cb5682009c9902d31..8855da11e9504905d265a721b93f16f50d69ae3b 100755 (executable)
@@ -12,6 +12,8 @@ PATH_DEFAULT_LOCALE=/etc/default/locale
 PATH_HIBERNATE_OVERRIDE=/etc/systemd/system/systemd-hibernate.service.d/\
 60-poweroff-on-failure.conf
 PATH_HOOK_EFI=/etc/initramfs/post-update.d/update-efi
+PATH_LOGIND_OVERRIDE=/etc/systemd/logind.conf.d/\
+60-poweroff-on-lid-close.conf
 PATH_SYSCTL_PRINTK=/etc/sysctl.d/60-printk-console.conf
 PATH_TLP_THRESH_CONF=/etc/tlp.conf.d/60-thresholds.conf
 PATH_UDEV_RULES=/etc/udev/rules.d
@@ -61,6 +63,16 @@ mkdir -p "$(dirname "${PATH_HIBERNATE_OVERRIDE}")"
 printf '[Unit]\nOnFailure=poweroff.target\n' >| "${PATH_HIBERNATE_OVERRIDE}"
 systemctl daemon-reload
 
+msg 'Forcing a full poweroff on lid close, in every dock/power state …'
+mkdir -p "$(dirname "${PATH_LOGIND_OVERRIDE}")"
+{
+    printf '[Login]\n'
+    printf '%s=poweroff\n' \
+        HandleLidSwitch HandleLidSwitchExternalPower HandleLidSwitchDocked
+} >| "${PATH_LOGIND_OVERRIDE}"
+# logind only re-reads its config at process start, not via daemon-reload
+systemctl restart systemd-logind
+
 msg 'Making backlight devices available to user-run backlight script …'
 cp "${PATH_TO_COPY}/${FNAME_UDEV_RULES_BACKLIGHT}" "${PATH_UDEV_RULES}/"
 udevadm control --reload-rules