I decided to give an Ubuntu based distro a try on my laptop and installed Linux Mint. I was surprised that hibernate doesn't just work by default in 2025. There are plenty of tutorials on how to enable it though, so I am assuming that you have already
/etc/default/grub
to add the resume
and resume_offset
options to the kernel command linesystemctl hibernate
worksI use XFCE and after doing the steps above I still couldn't choose hibernate as an option in the power settings or from the power menu, and running systemctl as my normal user gave the error Call to Hibernate failed: Access Denied
. So, only root can hibernate by default.
To fix this you can create a polkit
rules file:
/etc/polkit-1/rules.d/10-enable-suspend.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions")
{
return polkit.Result.YES;
}
});
Then restart the PC and you should have hibernate options available in your desktop environment power settings and on the power / log out menu.
This was taken from the Arch Linux example to disable suspend but reversed to enable the actions instead.
You can also look at the options in /etc/systemd/sleep.conf
to make sure your required sleep methods are enabled, and at /etc/systemd/logind.conf
if you want logind to handle system sleep instead of your desktop environment.