https://bugs.kde.org/show_bug.cgi?id=515833

            Bug ID: 515833
           Summary: Plasma Audio UI ignores PipeWire/WirePlumber custom
                    device names for internal audio
    Classification: Plasma
           Product: plasmashell
      Version First master
       Reported In:
          Platform: openSUSE
                OS: Linux
            Status: REPORTED
          Severity: wishlist
          Priority: NOR
         Component: Audio Volume widget
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: 1.0

SUMMARY

KDE Plasma’s Audio UI (Audio Volume widget / plasmashell audio integration)
overrides audio device names provided by PipeWire/WirePlumber for certain
devices, most notably internal speakers and microphones.

Even when node.description and node.nick are explicitly set via WirePlumber
rules, Plasma continues to display hardcoded labels such as “Speakers” and
“Internal Microphone”.

This makes it impossible for users to fully control how their audio devices are
named.
In practice, device names change depending on whether an external dock is
connected. If a user wants consistent device names in both docked and undocked
situations, the only available option is to accept Plasma’s hardcoded
“Speakers” label.

STEPS TO REPRODUCE
1. Not docked
2. Sink in KDE tray is called "Speakers"
3. Dock
4. Sinks are called "Laptop Speakers (description)" and "ThinkPad Thunderbolt 3
Dock USB Audio Analog Stereo"



OBSERVED RESULT
Hardcoded "Speakers" in undocked situation



EXPECTED RESULT
Custom text (in this case "Laptop Speakers (description)") in undocked
situation.



SOFTWARE/OS VERSIONS

Operating System: openSUSE Leap 16.0
KDE Plasma Version: 6.4.2
KDE Frameworks Version: 6.16.0
Qt Version: 6.9.1
Kernel Version: 6.12.0-160000.9-default (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i5-8250U CPU @ 1.60GHz
Memory: 16 GiB of RAM (15.5 GiB usable)
Graphics Processor: Mesa Intel® UHD Graphics 620





ADDITIONAL INFORMATION

I created a wireplumber config to create uniform names between docked and
undocked mode. 


monitor.alsa.rules = [
  {
    matches = [
      {
        node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo"
      }
    ]
    actions = {
      update-props = {
        node.description = "Laptop Speakers (description)"
        node.nick = "Speakers (nick)"
      }
    }
  },
  {
    matches = [
      {
        node.name = "alsa_input.pci-0000_00_1f.3.analog-stereo"
      }
    ]
    actions = {
      update-props = {
        node.description = "Internal Microphone (description)"
        node.nick = "Microphone (nick)"
      }
    }
  }
]





PipeWire/WirePlumber already populate the following properties by default:
  node.name
  node.description
  node.nick

Because these properties are always set, Plasma currently cannot distinguish
between:

  backend-generated values
  user-managed overrides

This likely explains why Plasma enforces hardcoded labels such as “Speakers”.



Possible solutions

Provide a user-configurable option in Plasma to control naming policy, for
example:

  Default (current behavior)
  Prefer node.description
  Prefer node.nick

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to