Replaces 7 separate workflow files with ci.yml (lint + all platform builds
on push to main and PRs) and release.yml (same builds + draft GitHub release
creation triggered by v* tags). Also fixes Ubuntu artifact name collision and
gives all output files descriptive names.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Instead of play → pause → sleep → seek when restoring a paused session,
introduce loadTrackPaused which sets internal state and fires UI/OS
callbacks (song change, paused) without touching MPV. On Continue(),
detect pendingLoadPaused and start MPV playback from the saved position.
Also triggers waveform pre-generation for the paused track via the
onBeforeSongChange hook.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Shuffle moves to the far left of the transport buttons and repeat to the far right, flanking prev/play/next. Both use a new IconButtonSizeSmallest (10% smaller than IconButtonSizeSmaller) with 2dp spacing separating them from the adjacent transport buttons. Wiring updated in bottompanel.go accordingly.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix#304: normalize server URLs before connecting
Prepend http:// when no scheme is present and strip trailing slashes
for all server types. For Jellyfin, additionally strip /web/index.html
and /web path suffixes that users copy from the browser URL bar.
Normalization is applied in ServerManager.connect() on the by-value
parameter, so stored config is never mutated.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* move url normalize funcs
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add -reload-theme CLI flag to re-apply theme via IPC
Sends a reload-theme IPC message to a running instance, causing it to
call fyne.CurrentApp().Settings().SetTheme(m.theme). Follows the same
callback pattern as -show (OnReactivate) and quit (OnExit).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* actually re-read theme file
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>