Remove the 58 GiB swapfile on the LUKS root, along with what depended
on it: resumeDevice, resume_offset, the suspend-then-hibernate logind
actions and HibernateDelaySec. zram is now the only swap, capped at
8 GiB so it can't cut into memory needed for large LLM/GTT loads.
Lid, idle and the suspend key now do plain s2idle suspend; the power
key powers off. This loses the hibernate fallback that used to end a
spurious-wake loop; acpi.ec_no_wakeup=1 and the gsd-power tweaks are
now all that keeps s2idle stable.
Assisted-by: Claude:opus-5-5
resume_offset must name the swapfile's first physical extent for
hibernation to resume from it; the old value no longer matched.
Assisted-by: Claude:opus-5-5
thinkpad_acpi ignores writes to /proc/acpi/ibm/fan unless loaded
with fan_control=1. Enable it so the fan can be set to a level (0-7)
or full-speed by hand; the firmware stays in charge while the level
is "auto". Applies from the next boot or a reload of the module.
Assisted-by: Claude:opus-5
acpi.ec_no_wakeup=1 stops EC interrupts from thrashing s2idle, and a
dconf system-db override disables gsd-power's sleep handlers so logind
owns all sleep/idle policy (gsd was re-waking before HibernateDelaySec).
Split lid/suspend policy by power source (s-t-h on battery, plain suspend
on AC), map power key to hibernate, drop HibernateDelaySec to 15min while
re-validating thermals, and disable USB-device wakeup via udev.