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