Skip to content

feat(ui): responsive queue with progressive column priority (Year -> Genre -> Composer) & -v flag - #70

Open
susamn wants to merge 4 commits into
mainfrom
feature/responsive-queue-layout
Open

feat(ui): responsive queue with progressive column priority (Year -> Genre -> Composer) & -v flag#70
susamn wants to merge 4 commits into
mainfrom
feature/responsive-queue-layout

Conversation

@susamn

@susamn susamn commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Summary of Changes

  1. Guaranteed Core Columns Across All Displays:

    • Title, Lyr (when lyrics active), Album, Artist, Plays (when metadata active), Mark (when metadata active), Rating (when metadata active), and Duration are always preserved and displayed across all screens and splits.
  2. Progressive Priority for Optional Columns:

    • Optional columns are added automatically as screen width permits based on priority:
      1. Priority 1: Year (added first as width allows)
      2. Priority 2: Genre (added next as width allows)
      3. Priority 3: Composer (added as width allows; receives SetExpansion(1))
      4. Priority 4 (Last): Type (added on ultra-wide screens)
    • When Composer is omitted, Artist receives SetExpansion(1).
    • Text column truncation caps dynamically scale via queueColumnTruncation so metadata and duration columns never get pushed off screen.
    • Live terminal resize is handled automatically via SetDrawFunc.
  3. Lyrics Viewer Placement:

    • Anchors over Year when visible, or over the right 50% of the Queue table when Year is omitted.
  4. CLI -v Version Flag:

    • mpdtui -v prints version.String and exits immediately.
    • Updated README.md usage.

Verification

  • Tested with make vet fmt build test. All tests pass.

susamn added 3 commits August 25, 2026 00:39
…lumn scaling

On smaller or scaled screens (such as 1080p with 1.5x scaling or terminal width < 195 columns), omit Year, Genre, and Composer columns to ensure Play count, Mark, Rating, Type, and Duration remain visible. Dynamically calculate text column truncation so trailing metadata columns are never clipped, and adjust lyrics viewer positioning in compact mode.
Print the embedded version string and exit immediately without requiring an MPD connection or touching config files.
…poser)

Keep Title, Lyr, Album, Artist, Play Count, Mark, Rating, Type, and Duration across all displays. Progressively reveal optional columns as screen width permits based on priority: Year first, then Genre, and finally Composer on wide screens.
@susamn susamn changed the title feat(ui): add compact queue layout for smaller screens and -v flag feat(ui): responsive queue with progressive column priority (Year -> Genre -> Composer) & -v flag Aug 25, 2026
…umns never clip

Core columns (Title, Lyr, Album, Artist, Plays, Mark, Rating, Duration) are always guaranteed on all screens. Optional columns are added by priority: Year -> Genre -> Composer -> Type. When unmeasured, safe base layout is used to prevent clipping.
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