Fix Linux session finder to fall back to PulseAudio client properties#164
Open
dewald-L wants to merge 1 commit into
Open
Fix Linux session finder to fall back to PulseAudio client properties#164dewald-L wants to merge 1 commit into
dewald-L wants to merge 1 commit into
Conversation
Some apps (e.g. Spotify) connect to PipeWire via its native protocol rather than through the PulseAudio compatibility layer. In this case, neither application.process.binary nor application.name is present on the sink-input's own property list — they are only available on the associated PulseAudio client object. This adds a two-level fallback: 1. Try application.name on the sink-input proplist (covers apps like Firefox running ALSA over PipeWire, as noted in PR omriharel#161) 2. Look up the associated client via GetClientInfo and check both application.process.binary and application.name there (covers Spotify and other native PipeWire clients)
raxbg
added a commit
to raxbg/deej
that referenced
this pull request
Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
On Linux, some apps connect to PipeWire via its native protocol rather than through the PulseAudio compatibility layer (
pipewire-pulse). In this case, neitherapplication.process.binarynorapplication.nameis present on the sink-input's own property list — they are only available on the associated PulseAudio client object.The most common example is Spotify (version 1.2.x+), which shows up in
pactl list sink-inputswith onlynode.name = "audio-src"and no application identity, causing the persistent warning:Solution
This adds a two-level fallback in
enumerateAndAddSessions:application.nameon the sink-input proplist (covers apps like Firefox running ALSA over PipeWire — also addressed in Handle apps without a binary name in session finder #161)GetClientInfoand check bothapplication.process.binaryandapplication.namethere (covers Spotify and other native PipeWire clients)Testing
Verified on CachyOS (Arch-based) with PipeWire 1.6.4, WirePlumber 0.5.14, and Spotify 1.2.86.502 (AUR). Before this fix, Spotify was silently ignored and the slider had no effect. After this fix, Spotify is correctly identified and volume control works.
Relation to existing PRs
PR #161 adds the
application.namesink-input fallback but does not handle the case where both properties are absent from the sink-input entirely (native PipeWire clients). This PR is a superset of that fix.