[PR #1250] [MERGED] feat: add marquee effect to volume popup's audio inputs #2659

Closed
opened 2026-05-22 22:57:27 +01:00 by JakeStanger · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/JakeStanger/ironbar/pull/1250
Author: @postsolar
Created: 11/23/2025
Status: Merged
Merged: 12/17/2025
Merged by: @JakeStanger

Base: masterHead: feat/volume-popup-marquee-gtk4


📝 Commits (1)

  • d03aeab feat(volume): marquee effect for volume audio inputs

📊 Changes

6 files changed (+315 additions, -26 deletions)

View changed files

📝 docs/modules/Volume.md (+20 -13)
📝 src/clients/volume/sink_input.rs (+10 -5)
src/config/marquee.rs (+74 -0)
📝 src/config/mod.rs (+2 -0)
📝 src/gtk_helpers.rs (+166 -3)
📝 src/modules/volume.rs (+43 -5)

📄 Description

Part of #1011. Based on #1066 - GTK4 actually fixes that scrollbars bug, so pretty much no changes aside from updating to GTK4 and expanding what's configurable.

Overview

  • Wraps the label in a ScrolledWindow with hidden scrollbars
  • Configurable max length before marquee starts
  • Configurable scrolling speed
  • Configurable inter-loop pause duration
  • Configurable separator
  • Optional pause on hover or play on hover

Known issues

None so far.

Limitations and future considerations

It's opt-in so no breaking changes, but anyone wishing to use might need to update their CSS (implementation details leak a bit):

/* Before */
.volume .app-box > .title {
  ...
}

/* After: target both */
.volume .app-box > .title,
.volume .app-box > scrolledwindow > viewport > .title {
  ...
}

/* But 'any child' selector stays the same, works for both */
.volume .app-box .title {
  ...
}

For future extensions of other modules, even aside from just music (and its popup) I could see a lot of use-cases for making every Label scrollable like this. But this will necessarily mean replicating the same less-than-perfect UX pattern with regards to user CSS - wanted to hear your thoughts @JakeStanger on this.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/JakeStanger/ironbar/pull/1250 **Author:** [@postsolar](https://github.com/postsolar) **Created:** 11/23/2025 **Status:** ✅ Merged **Merged:** 12/17/2025 **Merged by:** [@JakeStanger](https://github.com/JakeStanger) **Base:** `master` ← **Head:** `feat/volume-popup-marquee-gtk4` --- ### 📝 Commits (1) - [`d03aeab`](https://github.com/JakeStanger/ironbar/commit/d03aeabb01914f1c166a6796249f62c0a2ffd880) feat(volume): marquee effect for volume audio inputs ### 📊 Changes **6 files changed** (+315 additions, -26 deletions) <details> <summary>View changed files</summary> 📝 `docs/modules/Volume.md` (+20 -13) 📝 `src/clients/volume/sink_input.rs` (+10 -5) ➕ `src/config/marquee.rs` (+74 -0) 📝 `src/config/mod.rs` (+2 -0) 📝 `src/gtk_helpers.rs` (+166 -3) 📝 `src/modules/volume.rs` (+43 -5) </details> ### 📄 Description Part of #1011. Based on #1066 - GTK4 actually fixes that scrollbars bug, so pretty much no changes aside from updating to GTK4 and expanding what's configurable. ### Overview - Wraps the label in a ScrolledWindow with hidden scrollbars - Configurable max length before marquee starts - Configurable scrolling speed - Configurable inter-loop pause duration - Configurable separator - Optional pause on hover or play on hover ### Known issues None so far. ### Limitations and future considerations It's **opt-in so no breaking changes**, but anyone wishing to use might need to update their CSS (implementation details leak a bit): ```css /* Before */ .volume .app-box > .title { ... } /* After: target both */ .volume .app-box > .title, .volume .app-box > scrolledwindow > viewport > .title { ... } /* But 'any child' selector stays the same, works for both */ .volume .app-box .title { ... } ``` For future extensions of other modules, even aside from just music (and its popup) I could see a lot of use-cases for making every Label scrollable like this. But this will necessarily mean replicating the same less-than-perfect UX pattern with regards to user CSS - wanted to hear your thoughts @JakeStanger on this. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
JakeStanger 2026-05-22 22:57:27 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
JakeStanger/ironbar#2659
No description provided.