tza c65427e693 initial browser/installer commit, injector get_tab and stateful utils
- 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
2022-04-07 22:38:26 +03:00
2022-04-01 16:50:41 +02:00

Plugin Loader Chat

steamuserimages-a akamaihd

Installation

  1. Go into the Steam Deck Settings
  2. Under System -> System Settings toggle Enable Developer Mode
  3. Scroll the sidebar all the way down and click on Developer
  4. Under Miscellaneous, enable CEF Remote Debugging
  5. Click on the STEAM button and select Power -> Switch to Desktop
  6. 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
  7. 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.

Description
Languages
TypeScript 56.2%
Python 39.6%
Shell 2%
JavaScript 1.6%
Nix 0.6%