Bug 245382

Summary: Feature request: DBUS method for displaying the OSD
Product: [Applications] kmix Reporter: o_O_Tync <ootync>
Component: On-Screen-Display (OSD)Assignee: Christian Esken <esken>
Status: RESOLVED INTENTIONAL    
Severity: wishlist CC: jjm
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description o_O_Tync 2010-07-22 01:49:14 UTC
Version:           unspecified (using KDE 1.2) 
OS:                Linux

When I use D-Bus's 'increase volume' method — kmix does not show OSD window. Also, it has no dbus method to display it!

Reproducible: Always

Steps to Reproduce:
qdbus org.kde.kmix /Mixer0 org.kde.KMix.increaseVolume Master:0

Actual Results:  
no OSD, but the volume increases

Expected Results:  
OSD is displayed and the volume increases.

At least it should have another method that displays OSD with the current volume! That would be more *nix-ish :)
Comment 1 Christian Esken 2010-07-28 20:15:38 UTC
It is intended behavior.

Like you propose, there could be another method that displays the OSD. I'll rename this bug report accordingly.
Comment 2 o_O_Tync 2010-07-29 01:48:48 UTC
Great, thank you!

I've found several discussions where people complained there's no simple way to get the OSD. Can't believe no one reported this issue here :)
Comment 3 Jonathan Marten 2023-05-14 16:07:40 UTC
As noted in comment #1, not displaying the popup on a DBus volume change is intentional.

KMix does not actually put up the OSD itself - certainly in KF5 it asks plasmashell to do it via DBus, eg:

$ qdbus org.plasmashell /org/kde/osdService volumeChanged 55

will show "55%" on the OSD.  So if you have a DBus client that changes the volume then you can also call plasmashell to show the OSD at the same time.  If you don't have the absolute KMix volume then you can read the current setting, after getting the current master card and control if you don't have them already (replace all colons with underscores to derive the DBus path):

$ qdbus org.kde.kmix /Mixers currentMasterMixer
ALSA::HDA_ATI_SB:1
$ qdbus org.kde.kmix /Mixers currentMasterControl
Master:0
$ qdbus org.kde.kmix /Mixers/ALSA__HDA_ATI_SB_1/Master_0 volume
55