Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Volume module #50

Closed
olifloof opened this issue Jan 11, 2023 · 14 comments · Fixed by #460
Closed

Volume module #50

olifloof opened this issue Jan 11, 2023 · 14 comments · Fixed by #460
Labels
enhancement New feature or request
Milestone

Comments

@olifloof
Copy link
Contributor

A volume module with a popup widget that has a slider. option to choose backend (wpctl, pactl, etc). usage of on-scroll events to change volume without opening the widget.

@olifloof olifloof added the enhancement New feature or request label Jan 11, 2023
@JakeStanger
Copy link
Owner

Happy to add this. I'd like to see if I can get a proper mixer too (like the Win7 one) allowing you to change input/output/program volumes individually where supported (ie Pulse or Pipewire).

@olifloof
Copy link
Contributor Author

That would be nice

@JakeStanger JakeStanger added this to the 0.11.0 milestone Jan 31, 2023
@p00f
Copy link
Contributor

p00f commented Mar 18, 2023

Happy to add this. I'd like to see if I can get a proper mixer too (like the Win7 one) allowing you to change input/output/program volumes individually where supported (ie Pulse or Pipewire).

What if you just open pavucontrol on click

@JakeStanger
Copy link
Owner

That could be achieved currently with the custom module without much work.

My intention for any "proper" modules is that they offer a more integrated experience, and don't rely on external software where possible. Also, I've started work on the client code for this already :)

@JakeStanger
Copy link
Owner

Going to push this back to the next milestone because PulseAudio is painful to work with and it's draining. Want to work through some of the issues to avoid stagnation. I'll stick up a temporary custom module config that works with pavucontrol in the meantime.

@JakeStanger JakeStanger modified the milestones: 0.11.0, 0.12.0, 0.13.0 Apr 1, 2023
@JakeStanger JakeStanger modified the milestones: 0.13.0, 0.14.0 Apr 22, 2023
@Phant80m
Copy link

Phant80m commented May 6, 2023

how do i get the buttom to display the audio.

@JakeStanger
Copy link
Owner

Nothing has been implemented yet

@yavko
Copy link
Contributor

yavko commented Jun 30, 2023

I think a good starting point would be replicating what kde does, though I think kde's design isn't perfect so maybe could be built on

@Phant80m
Copy link

Phant80m commented Jul 4, 2023

hmmmm

@Pyvonix
Copy link

Pyvonix commented Nov 13, 2023

A bar that already implement a good volume's widget is the waybar with its PulseAudio plugin that offer an easy to:

  • format the current volume,
  • select an icon depending the used sound output/input,
  • let the user choose its sound mixer.

That could be a good reflection way.
And will be amazing to see something similar in Ironbar!

@yavko
Copy link
Contributor

yavko commented Nov 13, 2023

A bar that already implement a good volume's widget is the waybar with its PulseAudio plugin that offer an easy to:

  • format the current volume,
  • select an icon depending the used sound output/input,
  • let the user choose its sound mixer.

That could be a good reflection way.
And will be amazing to see something similar in Ironbar!

Waybar's doesn't have a GUI tho. Plus you could already do the same as waybar does with ironbar's built in features.

@Pyvonix
Copy link

Pyvonix commented Nov 14, 2023

Waybar's doesn't have a GUI tho.

Both bars are made on the top of GTK. It's true that Waybar doesn't have real "GUI" (if you mean possibility to pop a box or container), but with some Wayland's trick (catching the window' name) you could make the mixer appear as floating windows the desired position. Realized with pavucontrol on Sway the result is transparent.

Plus you could already do the same as waybar does with ironbar's built in features.

Not completely agree.
After a very painful configuration, I was able to achieve something "like" a mixer using: button, label and progress based on the doc's example. But why doesn't offering {volume} keyword like the sys_info module did?

And I will point out for the moment I haven't found a way dynamically changes an icon depending the audio output (e.g. headphones, speakers, etc... ) or the audio level (e.g. mute, low, high, ...).
I didn't look into using an external script because I really don't like doing it that way.

I'd really like ironbar and there are little things that could make it even better.

@JakeStanger
Copy link
Owner

JakeStanger commented Nov 14, 2023

But why doesn't offering {volume} keyword like the sys_info module did?

This is achievable using an ironvar and/or script currently.

And I will point out for the moment I haven't found a way dynamically changes an icon depending the audio output (e.g. headphones, speakers, etc... ) or the audio level (e.g. mute, low, high, ...).

Image sources in the custom module are dynamic strings, which means you can set them via script or ironvar and they will update automatically (in theory).

I understand not wanting to rely heavily on scripts, as it does add some performance and maintenance overhead. That's why I want a native module :)

The thing is with the volume module is almost all the work is getting a working client. Once that's done, the rest of the implementation should be relatively straightforward; I may not release a full mixer interface immediately but I'd want the ability to show and change master volume for the current output device at a minimum. Unfortunately I've not had much time recently to look at this, and any previous attempts have mostly involved banging my head against walls so it might be a while still.

@JakeStanger
Copy link
Owner

I've just opened a draft PR (linked above) with the initial version of the module. It's not quite complete, but stable enough to start playing around with. Full details in the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants