mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-13 12:15:09 +03:00
v1.2.0
* Plugin callsigns, filechangehandler thread bug fix, plugin file perms - 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. - Made FileChangeHandler send off events to a queue, that is then consumed by the Loader, instead of calling import_plugin on its own, since that caused weird issues with the event loop and the thread watchdog is using. - Plugins are now owned by root and have read-only permissions. This is handled automatically. * Improved general look and feel of plugin tab * Make all plugin entries have the same padding between them * Make "No plugins installed" text look the same as "No new notifications" Co-authored-by: WerWolv <werwolv98@gmail.com>
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%
