pipewire: change speaker/output description at runtime

raw

1-chatlog.txt

<cweiske> I'd like to temporarily change the name of a pipewire output. I already found the device id 73 with "pw-cli list-objects" and see that the label that Gnome Shell shows is the "node.description" property:
<cweiske> $ pw-cli info 73 |grep node.desc
<cweiske> *  node.description = "Sennheiser PC 8.2 USB Analog Stereo"
<cweiske> How can I change that?
<cweiske> I tried
<cweiske> $ pw-cli set-param 73 Props '{ props = [ 'node.description' "Headset" ] }
<cweiske> but that does not work.
<cweiske> I also tried variations like '{ props = [ "node.description": "Headset Sennheiser" ] }', but no avail
<wtay> cweiske, it's not possible to change a property like that
<wtay> cweiske, you can make a wireplumber rule to change the description though
<cweiske> I saw that in the docs: https://docs.pipewire.org/page_man_pipewire_conf_5.html
<cweiske> but I thought I could try that at run-time
<wtay> https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/alsa.html#rules
<wtay> not possible at runtime
<cweiske> thanks for the info.
raw

2-infos.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$ pw-cli list-objects
        [...]
        id 50, type PipeWire:Interface:Node/3
                object.serial = "51"
                object.path = "alsa:pcm:3:front:3:playback"
                factory.id = "18"
                client.id = "33"
                device.id = "47"
                priority.session = "1009"
                priority.driver = "1009"
                node.description = "USB Audio Analog Stereo"
                node.name = "alsa_output.usb-Generic_USB_Audio-00.analog-stereo"
                node.nick = "USB Device 0xdb0 0x422d"
                media.class = "Audio/Sink"
        [...]
        id 73, type PipeWire:Interface:Node/3
                object.serial = "1170"
                object.path = "alsa:pcm:4:front:4:playback"
                factory.id = "18"
                client.id = "33"
                device.id = "71"
                priority.session = "1009"
                priority.driver = "1009"
                node.description = "Sennheiser PC 8.2 USB Analog Stereo"
                node.name = "alsa_output.usb-Sennheiser_Sennheiser_PC_8.2_USB_A002900204807706-00.analog-stereo"
                node.nick = "Sennheiser PC 8.2 USB"
                media.class = "Audio/Sink"
        [...]
 
$ pw-cli info 50 |grep node.desc
*               node.description = "USB Audio Analog Stereo"
 
$ pw-cli info 73 |grep node.desc
*               node.description = "Sennheiser PC 8.2 USB Analog Stereo"
 
$ pw-dump 73|jq '.[0].info.props["node.description"]'
"Sennheiser PC 8.2 USB Analog Stereo"
 
raw

3-links.rst

/etc/pipewire/pipewire.conf.d/cweiske-device-names.conf

Debugging:

$ systemctl --user restart pipewire wireplumber
$ journalctl --user-unit=pipewire --user-unit=wireplumber -f
Christian Weiske Christian Weiske
owner

History