Skip to content

JsonRPC-like settings view config for Dotnet plugins #4071

@Heck-R

Description

@Heck-R

Is your feature request related to a problem? Please describe.

One of the beauties of launchers and making plugins for them is having a nice UI without having to make the UI itself.
While allowing the creation of custom settings UIs in Dotnet plugins is great, since it is powerful, many times the settings of plugins are simple, and making a UI in Dotnet is annoying, and somewhat goes against said greatness of Launchers, and thus makes starting out harder / more annoying (many people don't want to deal with UI stuff).

Describe the solution you'd like

The JsonRPC plugins already have a working way to generate nice-looking, simple settings, so the built-in settings panel generation could be exposed to DotNet plugins, and it could still expect the same structure as a parsed SettingsTemplate.yaml, and provide some API to get/set the values.

Describe alternatives you've considered

  • Settings can be done through queries as well, arbitrarily in plugins, but it is bloating the plugin's query interface, so it's not ideal to do that
  • Settings could also be optionally generated for JSON storages (~ SaveSettingJsonStorage/LoadSettingJsonStorage). The questionable part is bridging useful data with a displayable format, and the missing option for descriptions, although this would be extremely comfortable to make (literally one flag), it's a bit too raw from a user perspective
  • There is technically no obstacle to copy that core logic to a plugin, but providing it out of the box would be way nicer (I would assume that it's probably already somehow possible to import it, but I found no straightforward way exposed by the Flow.Launcher.Plugin package, if there is, then apologies)

Additional context

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions