@wwmm I prefer pavucontrol, because in PE, sometimes, I'm not able to tell, which switch is what for...


_Originally posted by @Mlocik97 in https://github.com/wwmm/pulseeffects/issues/759#issuecomment-678788425_
I agree. And maybe we should replicate pavucontrol disposition aligning the app title to the left and blocklist checkbutton on the same grid to the right side.
In this way the volume slider can extend itself horizontally to the total window length.
The switchbutton should be moved to the left and maybe replaced with a checkbutton.
Tomorrow I will add the stream description to the structure that has each app info https://github.com/wwmm/pulseeffects/blob/9608eda5297b24bc45342fb954b9f456787f9b81/include/pulse_manager.hpp#L59. After that it will be just a matter of changing the user interface.
It seems that Pavucontrol gets those descriptions from the media.name property. @Mlocik97 run the command pactl list source-outputs while OBS is running and confirm if that is the case in you system.
The master branch has been updated with the media.name property:

As you can see not all audio players make good use of this property. Spotify for example just repeats the application name property in the media name. In these cases I am hiding the media label.
I did a quick test with these labels in the same line and right aligned but it seemed weird. And as the media name can be large it seemed better to give it its own line.
Good to see the description, but I don't like the interface. I'll try to change it and post here a preview with a better disposition if I'll manage to find one.
I think, switch can be at left, and after text, so it's alligned
The description could be very long: in this case should be wrapped. There should be something in GTK to do that, I'll make some tests.
Edit: especially if it's combined with the title on the same line.
There should be something in GTK to do that
It is the ellipsize property. I have already enabled it.
The mpv description in the image above is long but not long enough to trigger ellipsize when the label has a line only for it. If you place that label somewhere else GTK will cut part of it automatically.

I'd like to test with the description hided, but don't have Spotify.
What do you think of this disposition? @wwmm @Mlocik97-issues
What do you think of this disposition?
I think it is better than before.
The fact the most apps do not put the media name to good use is disappointing. But there is nothing we can do about it.
Lollypop is another player that shows the media name like mpv. Of the apps I have installed Spotify seems to be the only one copying the app name to the media name.
I'll try to install Spotify to see how it shows with the description hided.
With description:

Without:

I will make to pull request.
it looks really nice
It seems that Pavucontrol gets those descriptions from the
media.nameproperty. @Mlocik97 run the commandpactl list source-outputswhileOBSis running and confirm if that is the case in you system.
pactl list source-outputs
mlocik97@mlocik97-G5-5590:~$ pactl list source-outputs
Source Output #0
Driver: protocol-native.c
Owner Module: 12
Client: 17
Source: 2
Sample Specification: float32le 2k 44100Hz
Channel Map: front-left,front-right
Format: pcm, format.sample_format = "\"float32le\"" format.rate = "44100" format.channels = "2" format.channel_map = "\"front-left,front-right\""
Corked: 谩no
Mute: nie
Volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB
balance 0,00
Buffer Latency: 0 usec
Source Latency: 0 usec
Resample method: copy
Properties:
application.id = "com.github.wwmm.pulseeffects.sinkinputs"
media.name = "Record Stream"
application.name = "PulseEffects"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "32"
application.icon_name = "pulseeffects"
application.process.id = "6218"
application.process.user = "mlocik97"
application.process.host = "mlocik97-G5-5590"
application.process.binary = "pulseeffects"
application.language = "sk_SK.UTF-8"
window.x11.display = ":0"
application.process.machine_id = "32f363c7e88247aa9d69a67980517743"
application.process.session_id = "2"
module-stream-restore.id = "source-output-by-application-id:com.github.wwmm.pulseeffects.sinkinputs"
Source Output #3
Driver: protocol-native.c
Owner Module: 12
Client: 23
Source: 0
Sample Specification: s16le 2k 44100Hz
Channel Map: front-left,front-right
Format: pcm, format.sample_format = "\"s16le\"" format.rate = "44100" format.channels = "2" format.channel_map = "\"front-left,front-right\""
Corked: nie
Mute: nie
Volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB
balance 0,00
Buffer Latency: 81179 usec
Source Latency: 0 usec
Resample method: nedostupn茅
Properties:
application.name = "OBS"
application.icon_name = "obs"
media.role = "production"
media.name = "Zvuk plochy"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "32"
application.process.id = "29914"
application.process.user = "mlocik97"
application.process.host = "mlocik97-G5-5590"
application.process.binary = "obs"
application.language = "sk_SK.UTF-8"
window.x11.display = ":0"
application.process.machine_id = "32f363c7e88247aa9d69a67980517743"
application.process.session_id = "2"
module-stream-restore.id = "source-output-by-media-role:production"
Source Output #4
Driver: protocol-native.c
Owner Module: 12
Client: 23
Source: 1
Sample Specification: s16le 2k 44100Hz
Channel Map: front-left,front-right
Format: pcm, format.sample_format = "\"s16le\"" format.rate = "44100" format.channels = "2" format.channel_map = "\"front-left,front-right\""
Corked: nie
Mute: nie
Volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB
balance 0,00
Buffer Latency: 0 usec
Source Latency: 238 usec
Resample method: nedostupn茅
Properties:
application.name = "OBS"
application.icon_name = "obs"
media.role = "production"
media.name = "Mik/Aux"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "32"
application.process.id = "29914"
application.process.user = "mlocik97"
application.process.host = "mlocik97-G5-5590"
application.process.binary = "obs"
application.language = "sk_SK.UTF-8"
window.x11.display = ":0"
application.process.machine_id = "32f363c7e88247aa9d69a67980517743"
application.process.session_id = "2"
module-stream-restore.id = "source-output-by-media-role:production"
so yes, that should help...
btw. sry for late reply, but these days, I'm "remodeling"/repairing the house
Unless I have missed something this issue is solved.