

I’ve got multiple machines that do this, but all on nixos.
After completing the below, entering systemctl hibernate errors saying hibernation is not set up for the system.
This is weird, so I’d start here. Can you get the exact error and/or whatever it logs to journald?
I’d ignore all the TPM stuff until you can hibernate it and resume with a password. Maybe the swap is just too small? Maybe something in /etc/systemd/sleep.conf?
In case it helps, my device setup looks like this:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1 crypto_LUKS 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
└─encrypted LVM2_member LVM2 001 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
├─encrypted-swap swap 1 swap xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [SWAP]
└─encrypted-root btrfs root xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx xxx /mnt/root
/nix/store
/
nvme1n1
├─nvme1n1p1 vfat FAT32 xxxxxxxxx xxxxx xxx /boot
[...]
so luks -> lvm -> { swap, btrfs }
Edit:
https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation
When the system is running on UEFI, systemd-sleep(8) will automatically pick a suitable swap space to hibernate into, and the information of the used swap space is stored in HibernateLocation EFI variable.
So far I haven’t figured out from the systemd docs what “automatically pick a suitable swap space” actually means, or if that’s actually accurate.







Anyone using it with multiple screens? I haven’t tried it out because it didn’t look like it would be great for that.
I want something really lightweight where I can assign things to workspaces and then pull workspaces easily onto any one of my screens.
XMonad was my favourite, but I’ve moved to Sway and I’ve got it set up pretty well now. Workspaces still have a home screen so it’s a bit more clunky to move them around between screens.