scorpion-26 / gBar

Blazingly fast status bar written with GTK
MIT License
478 stars 17 forks source link

Bugged audio slider #13

Closed Eken-beep closed 1 year ago

Eken-beep commented 1 year ago

Audio slider is basically useless for me due to the fact that when dragging the volume up or down the volume only starts changing in the rightmost couple pixels of the slider. The rest of the slider doesn't do anything but i can change the volume correctly in the rightmost part of the slider, goes from 100-0 in a very small area.

Steps to Reproduce Open gBar through terminal Use audioslider.

Expected behavior The volume is at 90% when 90% of the slider is slid and 10% when 10% is slid.

Screenshots/Error logs Not much to go on here...

Information about your system and gBar

scorpion-26 commented 1 year ago

A few questions that may come in handy:

Can you do the following?

Eken-beep commented 1 year ago

I run pipewire, a custom css that can be found here: https://github.com/Eken-beep/Nixos-Dotfiles/blob/master/desktop/gBar.css 20230321_16h36m22s_grim That doesnt look right does it? But it can be modified by simply clicking anywhere on the slider and it moves there, can that be the reason it looks like that?

scorpion-26 commented 1 year ago

Sorry, I meant slider instead of trough

Eken-beep commented 1 year ago

20230321_16h53m05s_grim It follows the edge of the slider correctly but audio isn't modified until the last bit.

scorpion-26 commented 1 year ago

So if I understand correctly, the slider works like it should, but the audio volume is not set properly. If that's the case, I just added a new commit which adds some more logs (2fa23a2d54f2f4f73814b52cacb09b9dd98f3369). Can you check that out and post the logs when sliding the slider? And can you check if pamixer --set-volume 10 sets the volume to 10%?

Eken-beep commented 1 year ago

The slider works properly and audio is set properly, the issue is that volume doesn't change in the beginning of the slider and goes from 100-0 in just a couple of the last pixels.

The issue seems to be with either pulse, pipewire or pamixer as setting the volume to 10 changes nothing. The bars audio slider works fine and mirrors pamixers volume. When i set the volume to 3 it changes drastically from 10.

scorpion-26 commented 1 year ago

The issue seems to be with either pulse, pipewire or pamixer as setting the volume to 10 changes nothing. The bars audio slider works fine and mirrors pamixers volume. When i set the volume to 3 it changes drastically from 10.

That sounds very much like a bug in pipewire or the way your Pipewire is setup. I don't know how this correlates on NixOS, but on Arch you need a seperate package for PulseAudio APIs (Called pipewire-pulse). For things to work smoothly between PulseAudio clients (Like gBar and pamixer), you need to enable and start the pipewire-pulse systemctl service. You also need to make sure, that pulseaudio.service is not running anymore, since that collides with pipewire-pulse. I have a strong suspicion, that the PulseAudio and PipeWire are active at the same time, since the PulseAudio APIs don't seem to affect Pipewire. That suspicion could be confirmed if pavucontrol also doesn't work. To summarize: pipewire.service and pipewire-pulse.service need to be running whereas pulseaudio.service shouldn't. If that's not the culprit, I'm thinking of adding a config variable to modify the commands that will be called to set the volume (Currently hard-coded to pamixer --set-volume xx)

Eken-beep commented 1 year ago

I currently have pulse set to disabled and pipewire enabled with support for alsa and pulse (which i guess enables that service you talked about). A config option for max and min volume would be fantastic and solve my issue.

scorpion-26 commented 1 year ago

Okay, implementing that

scorpion-26 commented 1 year ago

Added a Min/Max volume config option(Called AudioMinVolume and AudioMaxVolume in the config). This essentially remaps the range. Values above 100% are allowed. Please let me know if this can fix the issue.

Eken-beep commented 1 year ago

Yes that does the trick, while it isnt too smooth using only 7 levels on the entire slider it works perfectly fine.