Skip to content

Add Widget configuration backend #16

Description

@lookeypl

At this point in time Widgets cannot be configured in any official way. The only real way to affect how widgets work in runtime are either some visual changes by CSS overriding in OBS (which, while unintuitive, to a certain degree are fine) or hacky-coded (ex. Alerts widget reacting to its name suffix).

Widgets should have following configuration-related features added:

  • Actual Widget configuration interface which would allow to:
    • Set configuration options via CLI
    • Automatically save and load configuration options to Config
  • Unified way to submit Widget's configuration on its startup (hopefully as transparent as possible to Widgets themselves). Widgets should be able to provide which configuration options they expect, rest should be handled by the unified part. Configuration update should (at least partially) also be handled in common Widget JS code
  • Configuration updates should be immediately reflected on Widget's side (Widgets should be able to reload and adapt to new configuration on runtime)

This should also be used in existing Widgets to provide them with appropriate settings. Examples are:

  • Alerts widget:
    • Alert box alignment (left or right)
    • Alert sound to be played
    • TTS voice used to read the text message
    • Whether TTS should read the Alert title
    • What alerts to react to
  • Chat widget:
    • Chat layouts - compact (current) or expanded
    • Showing/hiding chat badges
    • Font and its size
  • Now Playing widget:
    • Showing/hiding playback info (title/author/label/album)
    • Font and its size
    • Smart scroll parameters (scroll speed, pause between scrolls, spacing between texts when scrolling)

Some of these Widget functionalities don't exist yet and should be added with this task. Also, please consider testing at least some of these features (we need tests please test).

This should be tackled probably after #15 is complete.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions