mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-13 09:03:20 +03:00
c65427e693daf3ee96cfd707e74efcb8d9d985f2
- Integrated plugin downloader/installer. It accepts POST requests at /browser/install_plugin, containing an artifact (basically an author/repo string like you'd find on github), and a release version, then fetches the zip file from the repo releases and unzips it inside the plugin dir, after asking for user confirmation (pop-up message in the plugin menu). - Injector get_tab method. Basically get_tabs with the usual search for a specific tab. Decided to implement this because it was needed again and again, and we kept pasting the same list search one-liner. - Utilities now have access to the main PluginManager class
Plugin Loader 
Installation
- Go into the Steam Deck Settings
- Under System -> System Settings toggle
Enable Developer Mode - Scroll the sidebar all the way down and click on
Developer - Under Miscellaneous, enable
CEF Remote Debugging - Click on the
STEAMbutton and selectPower->Switch to Desktop - Open a terminal and paste the following command into it:
- For users:
curl -L https://github.com/SteamDeckHomebrew/PluginLoader/raw/main/dist/install_release.sh | sh
- For developers:
curl -L https://github.com/SteamDeckHomebrew/PluginLoader/raw/main/dist/install_nightly.sh | sh
- For users:
- Done! Reboot back into Gaming mode and enjoy your plugins!
Install Plugins
- Simply copy the plugin's folder into
~/homebrew/plugins
Developing plugins
- There is no complete plugin development documentation yet. However a good starting point is the Plugin Template repository
Features
- Clean injecting and loading of one or more plugins
- Persistent. It doesn't need to be reinstalled after every system update
- Allows 2-way communication between the plugins and the loader.
- Allows plugins to define python functions and run them from javascript.
- Allows plugins to make fetch calls, bypassing cors completely.
Caveats
- You can only interact with the Plugin Menu via touchscreen.
Credit
The original idea for the concept is based on the work of marios8543's steamdeck-ui-inject project.
Languages
TypeScript
56.2%
Python
39.6%
Shell
2%
JavaScript
1.6%
Nix
0.6%
