mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-13 17:13:45 +03:00
e3d7b50bd91fa092a9d40be3ce016c330f9311ca
* root plugins plugins can now specify if they want their methods to be ran as root. this is done via the multiprocess module. method calls are delegated to a separate process that is then down-privileged by default to user 1000, so the loader can safely be ran as root except it isn't really safe because the plugin is imported as root anyway * working implementation - follows the new plugin format with the plugin.json file - plugins are loaded in their own isolated process along with their own event loop and unix socket server for calling methods - private methods are now prepended with _ instead of __ * converted format to f-strings
…
…
…
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%
