[PR #460] [MERGED] Volume module #4952

Closed
opened 2026-05-23 00:55:53 +01:00 by JakeStanger · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/JakeStanger/ironbar/pull/460
Author: @JakeStanger
Created: 2/18/2024
Status: Merged
Merged: 3/4/2024
Merged by: @JakeStanger

Base: masterHead: feat/volume


📝 Commits (4)

  • a70956b feat: add new volume module
  • 6a03c46 docs(readme): add mixxc acknowledgement
  • e38f17c ci: add libpulse to deps
  • f0e34e6 build(nix): add libpulseaudio to flake

📊 Changes

21 files changed (+1295 additions, -7 deletions)

View changed files

📝 .github/workflows/build.yml (+3 -3)
📝 .github/workflows/deploy.yml (+1 -1)
📝 Cargo.lock (+39 -0)
📝 Cargo.toml (+8 -1)
📝 README.md (+1 -0)
📝 docs/Compiling.md (+7 -0)
📝 docs/_Sidebar.md (+1 -0)
docs/modules/Volume.md (+128 -0)
📝 examples/config.corn (+11 -1)
📝 examples/style.css (+5 -0)
📝 flake.nix (+1 -0)
📝 nix/default.nix (+2 -1)
📝 src/bar.rs (+2 -0)
📝 src/clients/mod.rs (+11 -0)
src/clients/volume/mod.rs (+312 -0)
src/clients/volume/sink.rs (+175 -0)
src/clients/volume/sink_input.rs (+148 -0)
📝 src/config/mod.rs (+4 -0)
📝 src/macros.rs (+7 -0)
📝 src/modules/mod.rs (+2 -0)

...and 1 more files

📄 Description

The volume module is now complete and stable enough that I believe it warrants opening a PR. The code is a bit rough in places so I'm going to refactor it over the next couple of weeks before it gets merged in. This hopefully also gives a chance for people to have a poke at it.

The initial version of the module provides the following:

  • A button on the bar which indicates volume level by icon
  • A popup with controls for output device switching, output device volume changing, and individual output stream (ie per program) level controls.
  • Support for Pulseaudio (inc pipewire-pulse).

To do still:

  • Fix a few edge cases (such as popup state when nothing is playing)
  • Add name and class elements to widgets
  • Ability to show more on the bar (such as current vol level)
  • More options
  • Write documentation
  • Update example config & styles

Resolves #50


🔄 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/460 **Author:** [@JakeStanger](https://github.com/JakeStanger) **Created:** 2/18/2024 **Status:** ✅ Merged **Merged:** 3/4/2024 **Merged by:** [@JakeStanger](https://github.com/JakeStanger) **Base:** `master` ← **Head:** `feat/volume` --- ### 📝 Commits (4) - [`a70956b`](https://github.com/JakeStanger/ironbar/commit/a70956bb3b17f559fda1fdca444e271ae9d3c4cd) feat: add new volume module - [`6a03c46`](https://github.com/JakeStanger/ironbar/commit/6a03c46146b612e53fa866ad98263d7cc29aacc8) docs(readme): add [mixxc](https://github.com/Elvyria/Mixxc) acknowledgement - [`e38f17c`](https://github.com/JakeStanger/ironbar/commit/e38f17ce55ba23b9fcca00f7622c9d52592a9093) ci: add `libpulse` to deps - [`f0e34e6`](https://github.com/JakeStanger/ironbar/commit/f0e34e650418793303b15967ab4cd3fc46cfa71f) build(nix): add `libpulseaudio` to flake ### 📊 Changes **21 files changed** (+1295 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/build.yml` (+3 -3) 📝 `.github/workflows/deploy.yml` (+1 -1) 📝 `Cargo.lock` (+39 -0) 📝 `Cargo.toml` (+8 -1) 📝 `README.md` (+1 -0) 📝 `docs/Compiling.md` (+7 -0) 📝 `docs/_Sidebar.md` (+1 -0) ➕ `docs/modules/Volume.md` (+128 -0) 📝 `examples/config.corn` (+11 -1) 📝 `examples/style.css` (+5 -0) 📝 `flake.nix` (+1 -0) 📝 `nix/default.nix` (+2 -1) 📝 `src/bar.rs` (+2 -0) 📝 `src/clients/mod.rs` (+11 -0) ➕ `src/clients/volume/mod.rs` (+312 -0) ➕ `src/clients/volume/sink.rs` (+175 -0) ➕ `src/clients/volume/sink_input.rs` (+148 -0) 📝 `src/config/mod.rs` (+4 -0) 📝 `src/macros.rs` (+7 -0) 📝 `src/modules/mod.rs` (+2 -0) _...and 1 more files_ </details> ### 📄 Description The volume module is now complete and stable enough that I believe it warrants opening a PR. The code is a bit rough in places so I'm going to refactor it over the next couple of weeks before it gets merged in. This hopefully also gives a chance for people to have a poke at it. The initial version of the module provides the following: - A button on the bar which indicates volume level by icon - A popup with controls for output device switching, output device volume changing, and individual output stream (ie per program) level controls. - Support for Pulseaudio (inc pipewire-pulse). To do still: - [x] Fix a few edge cases (such as popup state when nothing is playing) - [x] Add `name` and `class` elements to widgets - [x] Ability to show more on the bar (such as current vol level) - [x] More options - [x] Write documentation - [x] Update example config & styles Resolves #50 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
JakeStanger 2026-05-23 00:55:53 +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#4952
No description provided.