Repository navigation
feat(media): add an Icon presentation for Now Playing - #71
Closed
thornburywn2 wants to merge 1 commit into
Closed
thornburywn2 wants to merge 1 commit into
thornburywn2 wants to merge 1 commit into
Conversation
On narrow outputs a playing track widens G9 by the skip controls and the 88pt title marquee (~160pt on a 1270pt-wide bar). That pushes the bar into a responsive stage that hides G9 and G10, and because a hidden group cannot be re-measured, the bar stays in that stage after playback stops until the shell reloads. The existing Compact (FULL/muse) presentation is about as wide, so it does not avoid this. Add a third G9 presentation, `mediaStyle: "icon"`: the default row with only play/pause and the playing pulse. The skip controls and marquee are hidden (and the marquee animation stays stopped), while the lazy panel keeps the full controls. - media BarWidget: normalize default/full/icon; iconStyle hides the skip controls and marquee; expose marqueeVisible like the existing hooks. - state Service: normalizedMediaStyle() keeps "icon" in both the reader and the appearance setter. - Control Center: offer Default / Compact / Icon for G9. - tests: media smoke checks the Icon presentation and that Default still shows the marquee; regression and control-center smoke cover the third option and its persistence. - docs: describe Icon in the V1 presentation contract. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
|
Thanks for the detailed measurements! We'll keep Now Playing at its two presentations; Compact already drops the skip controls and title. The underlying problem you found — the bar staying in the reduced stage after playback stops until the shell reloads — is a real bug, and we'll look at it separately. |
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.
Problem
On a narrow output (here a 2880×1800 laptop panel at 3×, so a 1270pt bar), a playing track widens G9 by roughly 160pt: the previous/next controls plus the 88pt title marquee.
candidates[0]keeps the playing-width figure and the bar stays in stage 1 until the shell reloads.So on narrow bars, Now Playing disappears exactly when something is playing.
Measured with
omarchy-shell shell debugBarGeometryand a silentmpvtest track:Change
A third G9 presentation,
mediaStyle: "icon": the default row with only play/pause and the playing pulse. The lazy panel keeps the full controls, cover and progress.BarWidget.qml: normalizesdefault/full/icon.iconStylehides the skip controls and marquee, and the marquee animation isn't started while hidden. AddsmarqueeVisiblealongside the existingmuseVisible/v1FullVisiblehooks.Service.qml:normalizedMediaStyle()keeps"icon"in both the reader and the appearance setter. Previously anything other than"full"collapsed to"default".control-center-regression.shreserves that word.docs/v1-presentation-contract.md.Default and Compact behave exactly as before.
Tests
tests/audio-media-plugins-regression.sh: passed.tests/control-center-regression.sh: passed. The smoke test now expects three G9 options and that cycling persistsiconbefore restoring Default, in both V1 and V2.tests/contract-regression.sh: everything passes excepttest_package_release.test_lifecycle_contract_pins_exact_release_identities. That's expected: the digest incontracts/lifecycle-predecessors-v1.jsonchanges with any plugin change, and recentfix:commits likewise leave it for therelease: repin …step.Real Wayland check
Omarchy 4.0.4 V1 Shibumi bar on a single 1270pt output, playing a silent
mpvtrack: with Icon selected, G9 shows play/pause and the pulse at 56pt, the bar stays in stage 0, and G9 and G10 remain visible during and after playback.🤖 Generated with Claude Code