Overlay flow rework: one list, copy a URL (v0.1.6)#21
Merged
Conversation
Reworks the Overlay tab so every overlay is just a file with a URL. - Presets are pre-installed as real overlays on first run: one list, no preset/editable/legacy split or filter. A new `overlays_seeded` config flag keeps deleted presets from reappearing. - Per overlay: Copy URL, Edit in Studio, Duplicate, Delete. "+ New overlay" replaces the standalone Open Studio button; Studio save is Save (overwrite) + Save as new. - Auto-hide is a quick per-overlay toggle that appends ?autohide=off to the copied URL (no re-bake); the per-state Studio control stays the baked default. - Restore default overlays (and the factory reset) wipe Studio overlays and re-seed, with a confirmation that says so; legacy hand-written files are kept. Server: list_overlays reports an autohide flag; POST /overlays/seeded and /overlays/reset; config reset scope=all wipes Studio overlays. Seeded overlays are per-install runtime artifacts (gitignored).
Docs caught up to the Studio/one-list model: - README / README.es overlay sections lead with the Studio (copy a URL, edit, Save / Save as new); the older ?style= URLs noted as the no-setup path. - overlays/README rewritten around the Studio + the /state contract (fixes bitrate_kbps placement); CONTRIBUTING points new overlays at the Studio PRESETS. Retire the bundled legacy overlays (minimal/corner/strip): files removed, startup no longer drops them (main.rs embeds only the README + the hand-write example now). Serving is unchanged - any dropped .html and the /overlay?style= URLs still render. Bug-hunt fixes on the new flow: - Studio overlay cards no longer show an empty tag pill (:empty hidden). - Gallery "Auto preview" keeps the widget on screen instead of demoing auto-hide, which left the canvas empty for most of the cycle. - Removed dead CSS left by the rework (filter chips, preset/editable tag variants, old studio preset-list classes).
Self-update: an About-tab Update button downloads the latest release, verifies it against the published SHA-256, swaps the exe and relaunches on the same ports. The header update-available pill now opens the in-app updater instead of GitHub. Adds src/self_update.rs and a hand-rolled src/sha256.rs (no new dependencies). Restart from the dashboard, plus Show-in-Explorer buttons for the buffer file, trace log and overlays folder. Relaunch (restart and self-update) no longer lets the spawned child inherit our listening sockets, so the ports release cleanly and the new instance reclaims the same ingest/web ports (no spurious port-in-use switch prompt). Overlay studio: auto-hide exits animate again (keyframe instead of a skipped transition); tunable effects (liquid fill level/wave/speed/ smoothness, buffer-ring/edge/corner/tint knobs); the preview re-syncs all hide timers on edit; unsaved-changes guard; calmer graph meter; the theme colour picker no longer closes mid hue-drag; layer swatches update live; overlays seed even without a configured destination.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reworks the Overlay tab around one idea: everything is just an overlay with a URL you copy into OBS. Addresses the "too complex" feedback (preset vs editable vs legacy, hidden materialize-on-copy, redundant Open Studio).
One list
overlays_seededconfig flag stops deleted presets from reappearing.Three real actions
Auto-hide as a quick toggle
?autohide=offto the copied/preview URL (runtime already honors it - no re-bake, no duplicate file). The per-state control in the Studio remains the baked default.list_overlaysnow reports anautohideflag to drive the switch.Restore / reset (deletes overlays, clearly stated)
Server
POST /overlays/seeded(mark installed) andPOST /overlays/reset(wipe Studio overlays + clear flag);config reset scope=allalso wipes them. Newoverlays_seededbool mirrors the existing config-flag pattern.Notes
Seeded overlays are per-install runtime artifacts and are gitignored (only the 4 shipped hand-written overlays stay tracked). Verified end-to-end: fresh load seeds 10 presets,
?autohide=offkeeps an overlay up, Save/Save-as-new/Duplicate behave, restore/reset wipe Studio overlays but keep legacy.fmt+clippy -D warningsclean, 171 tests (incl. a wipe/autohide test +overlays_seededround-trip). Ships as0.1.6; tag after merge.