seanime icon indicating copy to clipboard operation
seanime copied to clipboard

feature request: Plugin-controlled, persistent UI panels (Widgets/HUDs) alternative to ctx.dom

Open Bas1874 opened this issue 3 months ago • 0 comments

Checklist

  • [x] I checked that this feature has not been requested before
  • [x] I checked that this feature is not in the "Not planned" list
  • [x] This feature will benefit the majority of users

Problem Description / Use Case

Right now there isn’t really a good way for plugins to create a UI panel that just stays visible on the screen on any page.

  • ctx.tray is nice for small popovers, but those only show up when the user clicks something.
  • ctx.action is good for adding buttons or menu items, but not for something custom and always visible.
  • The only option left is ctx.dom, which works but feels hacky. It’s hard to manage, not very performant, and the UI doesn’t really look like it belongs to Seanime.

Because of this, it’s not possible (or at least not convenient) to build plugins like:

  • A small HUD that shows torrent download/upload speed
  • A dashboard with playback info or library stats
  • A panel with extra info (e.g. anime/character details) while browsing
  • (And what I want to do/add is read and post comments directly inside the Seanime UI.)
  • And many more stuff....

Proposed Solution

It would be great to have something like ctx.newPanel that lets a plugin create a fixed, always-visible UI area/box on any page they want.

Some thoughts on how it could work:

  1. The plugin defines the position + size and what page (like “bottom-right corner, 250x100px”).
  2. The panel should be able to use the same components and state system as ctx.tray (so stack, flex, button, ctx.state, event handlers, etc).

That way, plugin developers don’t need to abuse ctx.dom and can make UI elements that actually feels native to Seanime.

Bas1874 avatar Sep 28 '25 21:09 Bas1874