Feat: Disable plugins (#850)

* implement base frontend changes necessary for plugin disabling

* implement frontend diisable functions/ modal

* plugin disable boilerplate / untested

* Feat disable plugins (#810)

* implement base frontend changes necessary for plugin disabling

* implement frontend diisable functions/ modal

---------

Co-authored-by: Jesse Bofill <jesse_bofill@yahoo.com>

* fix mistakes

* add frontend

* working plugin disable, not tested extensively

* fix uninstalled hidden plugins remaining in list

* hide plugin irrelevant plugin setting menu option when disabled

* fix hidden plugin issues

* reset disabled plugin on uninstall

* fix plugin load on reenable

* move disable settings uninstall cleanup

* add engilsh tranlsations for enable/ disable elements

* fix bug where wrong loadType can get passed to importPlugin

* show correct number of hidden plugins if plugin is both hidden and disabled

* fix: get fresh list of plugin updates when changed in settings plugin list

* fix: fix invalid semver plugin version from preventing latest updates

* retain x position when changing focus in list items  that have multiple horizontal focusables

* correction to pluging version checking validation

* make sure disabled plugins get checked for updates

* show number of disabled plugins at bottom of plugin view

* add notice to update modals that disabled plugins will be enabled upon installation

* run formatter

* Update backend/decky_loader/locales/en-US.json

Co-authored-by: EMERALD <hudson.samuels@gmail.com>

* chore: correct filename typo

* chore: change disabled icon

* chore: revert accidental defsettings changes

* format

* add timeout to frontend importPlugin

if a request hangs this prevent it from blocking other plugin loads.
backend diaptch_plugin which calls this for individual plugin load (as opposed to batch) is set to 15s.
other callers of importPlugin are not using timeout, same as before.

* fix plugin update checking loop

---------

Co-authored-by: marios <marios8543@gmail.com>
Co-authored-by: EMERALD <hudson.samuels@gmail.com>
This commit is contained in:
jbofill
2025-12-30 12:29:08 -07:00
committed by GitHub
parent 789851579b
commit 9f586a1b97
19 changed files with 378 additions and 79 deletions
+18 -3
View File
@@ -102,6 +102,7 @@
},
"no_hash": "This plugin does not have a hash, you are installing it at your own risk.",
"not_installed": "(not installed)",
"disabled": "The plugin will be re-enabled after installation",
"overwrite": {
"button_idle": "Overwrite",
"button_processing": "Overwriting",
@@ -133,10 +134,13 @@
"uninstall": "Uninstall",
"update_all_one": "Update 1 plugin",
"update_all_other": "Update {{count}} plugins",
"update_to": "Update to {{name}}"
"update_to": "Update to {{name}}",
"disable": "Disable",
"enable": "Enable"
},
"PluginListLabel": {
"hidden": "Hidden from the quick access menu"
"hidden": "Hidden from the quick access menu",
"disabled": "Plugin disabled"
},
"PluginLoader": {
"decky_title": "Decky",
@@ -152,12 +156,23 @@
"desc": "Are you sure you want to uninstall {{name}}?",
"title": "Uninstall {{name}}"
},
"plugin_disable": {
"button": "Disable",
"desc": "Are you sure you want to disable {{name}}?",
"title": "Disable {{name}}",
"error": "Error disabling {{name}}"
},
"plugin_enable": {
"error": "Error enabling {{name}}"
},
"plugin_update_one": "Updates available for 1 plugin!",
"plugin_update_other": "Updates available for {{count}} plugins!"
},
"PluginView": {
"hidden_one": "1 plugin is hidden from this list",
"hidden_other": "{{count}} plugins are hidden from this list"
"hidden_other": "{{count}} plugins are hidden from this list",
"disabled_one": "1 plugin is disabled",
"disabled_other": "{{count}} plugins are disabled"
},
"RemoteDebugging": {
"remote_cef": {