Releases: SteamDeckHomebrew/decky-loader
Prerelease v2.0.4-a5671e1-pre
Full Changelog: v2.0.4-28b9196-pre...v2.0.4-a5671e1-pre
Prerelease v2.0.4-28b9196-pre
What's Changed
- Updater for decky-loader by @AAGaming00 in #117
- Fix jq errors in prerelease script by @bycEEE in #118
New Contributors
Full Changelog: v2.0.4-pre...v2.0.4-28b9196-pre
Prerelease v2.0.4-103d43e-pre
Full Changelog: v2.0.4-a5671e1-pre...v2.0.4-103d43e-pre
Nightly v2.0.4
React Update Pre-Release.
Rejoice! The react update is here, but there's a lot more to do and so this just a pre-release.
Run this script from your Deck to install this pre-release:
curl -L https://github.com/SteamDeckHomebrew/decky-loader/raw/main/dist/install_prerelease.sh | sh
Please be aware that this script uses the github releases API and running it to often can get you rate limited.
Please consult our documentation on building plugins for the new version, and how to submit them to the new store below.
https://deckbrew.xyz/en/user-guide/home
Known Issues
- New plugins not installing from the store
- This is due to errors in how these plugins were packaged.
- This issue will be marked out when the properly packaged versions go live.
- Some legacy plugins will not function properly, this is known and legacy plugins are considered deprecated.
- This is a
wontfix
.
- This is a
What's Changed
- Uninstall script addition by @ggppjj in #48
- Use unique ids in call_server_method by @patkub in #55
- react: Add Router hook & fix typescript issues by @AAGaming00 in #68
- Add contributor install script by @TrainDoctor in #69
- Implement React-based plugin store by @AAGaming00 in #81
- remove body property in args by @hulkrelax in #91
- Uninstall functionality by @botatooo in #97
- Use deckyState in uninstall menu (fixes #98) by @botatooo in #100
- Fixed plugin installation ssl verification issue by @WerWolv in #101
New Contributors
- @ggppjj made their first contribution in #48
- @patkub made their first contribution in #55
- @AAGaming00 made their first contribution in #68
- @hulkrelax made their first contribution in #91
- @botatooo made their first contribution in #97
- @WerWolv made their first contribution in #101
Full Changelog: v1.2.2...v2.0.0-pre
Hotfix for Plugin Store
- Changed plugin store URL in the service files to account for new backend changes.
Built-in Plugin Store, Bug Fixes
- You no longer need to use an external browser to view the Plugin Store. Just tap on the shop icon next to Plugins and it will open the store directly inside the Steam Browser.
- Fixed a race-condition bug where two methods called very close to each other would receive the same ID.
- Fixed a bug where hot reloading would fail for plugins with subdirectories
Working Binary, Fixed Process spawn & termination bug, Fixed callsign hot reload bug
- Processes are now spawned via the multiprocessing API instead of the ProcessPoolExecutor one. I believe this is more robust and reliable.
- Every plugin process spawned, now implements a signal handler for SIGINT that calls exit. This should probably fix these weird issues where the server would not quit unless killed.
- Fixed a logic error in the callsign implementation regarding hot reload/debug.
- The binary submitted, was built by me using local pyinstaller on my Steam Deck, and basic functionality was confirmed working. We ran into weird issues with the Github Action that we use for building, and are looking into a different solution. Until we figure that out, nightly builds will most likely be broken.
Function call and store installation fix
Changelog
- Fixed calling backend functions after steam has been restarted
- Fixed installing plugins from the store (https;//plugins.deckbrew.xyz)
- Fixed install scripts behaving weirdly and not installing / uninstalling everything correctly in some circumstances
- Fixed injecting more than one css rule into Steam
New plugin format, Root plugins, Library improvements
-
Plugins now follow a new format
- Plugin metadata like name, description, html files and flags, now reside in a separate
plugin.json
file. - This allows plugins that only use javascript (called passive plugins internally), to not include any python code at all
- This new format also supports the new
flags
field, where plugins can modify the way the loader treats them. The only flags supported so far areroot
, which loads the plugin into a root process, and thedebug
flag which replaces thehot_reload
setting. - You can find more information on this new plugin format in the Wiki.
- Plugin metadata like name, description, html files and flags, now reside in a separate
-
Library improvements
- Added functions to inject and remove css from tabs.
- Added library function to execute code in a different tab.
- You can now find the documentation for all the library methods in the Wiki.
-
Security improvements
- Plugins are now assigned a callsign (a random string), which they use for all internal identification, like resource fetching and method calls. This is to ensure that plugins only access their own resources and methods.
- Plugins are now owned by root and have read-only permissions. This is handled automatically.
- Plugins now run in their own isolated processes, with their own event loop. This isolation allows us to implement useful functionality like root access, since these processes can also have different permissions.