feat: add hibernado plugin
Add Hibernado to Plugin Store
Hibernado is a decky plugin that lets Steam Deck hibernate or suspend-then-hibernate from within game mode/gamescope session.
On first plugin install, user must click the setup button, where a few things like swapfile creation, symlink creation, some systemd helpers etc. The bulk of the implementation here mirrors the guide from: Steam Deck Hibernation Guide by nazar256 (credited in readme and hibernation-helper.sh script), with some key changes to fix things from their guide like boot count incrementing incorrectly after multiple successful hibernate and resumes.
Once all is configured, user can choose either manually executing hibernation, or sleep then hibernate from buttons inside the plugin, with a drop down to choose the time between suspend and hibernate (default 60 min).
Additionally they can toggle on a power button override, where they can set the deck's power button to either hibernate or suspend > hibernate on button press. Suspend-then-hibernate mirrors the manual button setting for span between sleep and hibernate setting.
If user presses "remove setup" button at the bottom of the plugin, or on the even the plugin is uninstalled or reinstalled through decky, all the above setup files and symlinks are removed and undone, so the plugin is sure to "clean up after itself" and be a good citizen.
Per our Discord discussions, this has been fully re-worked from my earlier version that relied on system file unlocking. I believe the current implementation should be safe and compliant with decky store policy. Looking forward to your review!
Task Checklist
Developer
- [x] I am the original author or an authorized maintainer of this plugin.
- [x] I have abided by the licenses of the libraries I am utilizing, including attaching license notices where appropriate.
Plugin
- [x] I have verified that my plugin works properly on the Stable and Beta update channels of SteamOS.
- [x] I have verified my plugin is unique or provides more/alternative functionality to a plugin already on the store.
Backend
- No: I am using a custom backend other than Python.
- No: I am using a tool or software from a 3rd party FOSS project that does not have it's dependencies statically linked.
- No: I am using a custom binary that has all of it's dependencies statically linked.
Community
- [x] I have tested and left feedback on two other pull requests for new or updating plugins.
- [x] I have commented links to my testing report in this PR.
Testing
- [ ] Tested by a third party on SteamOS Stable or Beta update channel.
Issues Found
- Both testing boxes are present in your description. Please remove one of them per the Markdown comment above the testing section.
Next Steps
- If we found any issues above, please edit your pull request description to resolve them and leave a comment saying you've done so.
- For the quickest review, please see the Community section of the pull request template for how you can help other developers.
- Once your description is correct, a maintainer will review your pull request as soon as possible.
Thank you for your contribution! If you need any help, please reach out on our Discord server. :heart:
reviewed Game Theme Music = 1.7.1-4621abd
reviewed ScreenSaver 1.1.1
This pull request is stale as no updates or testing reports have been posted within the last 7 days. Please ensure you are actively recruiting testers or resolving the issues discussed. If you do not remove the stale label or comment, this will be closed in 7 days. Please close this pull request if you need more time to resolve issues so we can keep our repo healthy.
This is not on testing store yet, still awaiting a maintainer review
@TrainDoctor @EMERALD0874 @AAGaming00 @KP2048 anyone able to take a look?
This pull request is stale as no updates or testing reports have been posted within the last 7 days. Please ensure you are actively recruiting testers or resolving the issues discussed. If you do not remove the stale label or comment, this will be closed in 7 days. Please close this pull request if you need more time to resolve issues so we can keep our repo healthy.
I'm using BazziteOS on my Steam Deck (I'm using it for specific reasons that aren't relevant here). And when I click on setup in the plugin, it shows a "Setup Fail" error.
@atiladpribeiro yes, this solely works on steam os due to specific quirks, for bazzite hhd has its own hibernate option!