Skip to content

Redesign the battery widgets around device rings, colour schemes and a default press action - #8

Merged
PyFlat-JR merged 11 commits into
mainfrom
feature/widget-ring-redesign
Oct 3, 2026
Merged

PyFlat-JR merged 11 commits into
mainfrom
feature/widget-ring-redesign

Conversation

@PyFlat-JR

Copy link
Copy Markdown
Member

What does this PR do?

Redesigns both deck widgets and moves the plugin to Macro Deck 3.0.0-beta.15.

Widgets

  • Each device is drawn as a coloured level ring around a vector icon for its kind (DeviceGlyphs),
    with a bolt in the ring's gap while it charges.
  • Panel: a grid of rings that arranges itself to the widget's size and aspect, optionally with
    names and a short trend line under each ring. The list layout is still there as an option, with
    icons, bars and top/centre/bottom alignment. Its rows sit inline and switch to stacked when a name
    or caption would be cut off (UiFirstFit).
  • Tile: one large ring; on a wide tile, name, level and state sit beside it.
  • Colour schemes: level with cyan while charging (default), level only, green and red, by device
    type, or a smooth gradient. Every scheme shows a level at or below the low-battery threshold in
    red, and a stale one in grey.
  • Config form: now split into Devices and Appearance tabs, with segmented controls and an action
    editor beside the properties.

Press behaviour

  • Both widget types run the user's own actions (SupportsFlows). Their default Short Press action
    is "Refresh battery levels" (DefaultShortPressAction, Macro Deck PR 1111). A Short Press action
    set by the user replaces it, and actions on other triggers (such as a long press) run alongside it.
  • This replaces the earlier workaround, which dropped the tap refresh as soon as any action was bound.

Tooling

  • All MacroDeck packages and the release workflow's cli-version are on 3.0.0-beta.15.
  • make preview renders every widget preview to PNGs (store images). make pack builds for the
    current platform, and the Makefile forces UTF-8 console output on Windows.

Behaviour changes for existing users

  • Rings are the new default layout, so a panel saved before this release opens as rings after the
    update. The list layout is one setting away.
  • A host older than 3.0.0-beta.15 ignores the default press action, so a short press does nothing
    there.

Checklist

  • I have read AGENTS.md and CONTRIBUTING.md.
  • dotnet build and dotnet test pass locally (0 warnings, 221 tests).
  • I updated README.md / AGENTS.md if this changes what they describe.
  • If this touches a device backend: not applicable, no backend changes.

Device/hardware tested against (if applicable)

Not a device backend change. The widgets were run in Macro Deck on Windows, with no errors found.

@PyFlat-JR
PyFlat-JR merged commit e58b1df into main Oct 3, 2026
2 checks passed
@PyFlat-JR
PyFlat-JR deleted the feature/widget-ring-redesign branch October 3, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant