Summary
On an Intel HDA card (sof-hda-dsp) that exposes headphones + 3 HDMI/DP sinks under the same PipeWire device.id, the COSMIC audio applet volume mouse slider has no audible effect on the headphone output. The slider moves visually, but the actual audio level does not change.
Keyboard Fn volume keys work correctly — only the applet's mouse slider is affected.
Relationship to #1388
This appears to be the same root cause as #1388 (ActiveRoute handler picks the wrong node from device_ids when multiple sinks share a device). The difference is:
Steps to reproduce
- Use a laptop with an Intel HDA audio controller that exposes multiple sinks under one device:
Sinks:
48. ... HDMI / DisplayPort 3 Output [vol: 0.64]
56. ... HDMI / DisplayPort 2 Output [vol: 0.97]
57. ... HDMI / DisplayPort 1 Output [vol: 0.46]
* 58. ... Headphones [vol: 1.00]
All four sinks share PipeWire device 49 (Tiger Lake-LP Smart Sound Technology Audio Controller).
- Play audio through headphones.
- Open the COSMIC audio applet and drag the volume slider with the mouse.
- Observed: Slider moves visually; actual headphone volume does not change.
- Use Fn+VolumeDown/Up keyboard keys instead.
- Observed: Audio volume changes as expected.
Discrimination tests
To isolate the broken layer, I ran three tests while audio was playing:
| Layer |
Command |
Audible change? |
| ALSA direct |
amixer -c 0 set 'Headphone' 5% / 100% |
YES |
| PipeWire |
wpctl set-volume 58 0.05 / 1.0 |
YES |
| COSMIC applet mouse slider |
Drag slider min→max |
NO |
| COSMIC Fn keys |
Fn+VolumeUp/Down |
YES |
This confirms the break is specifically in the applet's slider → PipeWire path, not in the audio stack.
Probable root cause
Same as #1388: the ActiveRoute handler in subscriptions/sound/src/lib.rs iterates device_ids (hash-based order) and picks the first node matching the device — which on a multi-sink card may be an HDMI output rather than the active headphone sink. The Fn keys bypass this path (they go through cosmic-osd → wpctl @DEFAULT_AUDIO_SINK@), which is why they work.
Environment
- OS: CachyOS Linux (Arch-based), kernel 7.0.8-1-cachyos
- COSMIC: 1.0.13-1.1 (
cosmic-applets, cosmic-session, cosmic-comp)
- PipeWire: 1.6.5, WirePlumber: 0.5.14
- Hardware: HP EliteBook 840 Aero G8 (SBKPF), Intel Tiger Lake-LP Smart Sound Technology Audio Controller
- Codec: Realtek ALC285 (subsystem 103c:884b), driver: sof-hda-dsp
- ALSA card: sof-hda-dsp (card 0), UCM profile: HiFi
Workaround
Using wpctl set-volume <sink-id> <level> or Fn keys works. The applet mouse slider remains non-functional for volume changes on this configuration.
Summary
On an Intel HDA card (sof-hda-dsp) that exposes headphones + 3 HDMI/DP sinks under the same PipeWire
device.id, the COSMIC audio applet volume mouse slider has no audible effect on the headphone output. The slider moves visually, but the actual audio level does not change.Keyboard Fn volume keys work correctly — only the applet's mouse slider is affected.
Relationship to #1388
This appears to be the same root cause as #1388 (ActiveRoute handler picks the wrong node from
device_idswhen multiple sinks share a device). The difference is:Steps to reproduce
Discrimination tests
To isolate the broken layer, I ran three tests while audio was playing:
amixer -c 0 set 'Headphone' 5%/100%wpctl set-volume 58 0.05/1.0This confirms the break is specifically in the applet's slider → PipeWire path, not in the audio stack.
Probable root cause
Same as #1388: the
ActiveRoutehandler insubscriptions/sound/src/lib.rsiteratesdevice_ids(hash-based order) and picks the first node matching the device — which on a multi-sink card may be an HDMI output rather than the active headphone sink. The Fn keys bypass this path (they go throughcosmic-osd→wpctl @DEFAULT_AUDIO_SINK@), which is why they work.Environment
cosmic-applets,cosmic-session,cosmic-comp)Workaround
Using
wpctl set-volume <sink-id> <level>or Fn keys works. The applet mouse slider remains non-functional for volume changes on this configuration.