{"type":"rich","version":"1.0","provider_name":"phorkie","provider_url":"https:\/\/p.cweiske.de\/","title":"pipewire: change speaker\/output description at runtime","author_name":"Christian Weiske","cache_age":86400,"width":900,"height":900,"html":"<!-- embedding all files of https:\/\/p.cweiske.de\/962 -->\n<link rel=\"stylesheet\" href=\"https:\/\/p.cweiske.de\/css\/embed.css\"\/>\n<div class=\"phork\" id=\"962\">\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <div class=\"code\"><pre class=\"txt\">&lt;cweiske&gt; I&#039;d like to temporarily change the name of a pipewire output. I already found the device id 73 with &quot;pw-cli list-objects&quot; and see that the label that Gnome Shell shows is the &quot;node.description&quot; property:\r\n&lt;cweiske&gt; $ pw-cli info 73 |grep node.desc\r\n&lt;cweiske&gt; *  node.description = &quot;Sennheiser PC 8.2 USB Analog Stereo&quot;\r\n&lt;cweiske&gt; How can I change that?\r\n&lt;cweiske&gt; I tried\r\n&lt;cweiske&gt; $ pw-cli set-param 73 Props &#039;{ props = [ &#039;node.description&#039; &quot;Headset&quot; ] }\r\n&lt;cweiske&gt; but that does not work.\r\n&lt;cweiske&gt; I also tried variations like &#039;{ props = [ &quot;node.description&quot;: &quot;Headset Sennheiser&quot; ] }&#039;, but no avail\r\n&lt;wtay&gt; cweiske, it&#039;s not possible to change a property like that\r\n&lt;wtay&gt; cweiske, you can make a wireplumber rule to change the description though\r\n&lt;cweiske&gt; I saw that in the docs: https:\/\/docs.pipewire.org\/page_man_pipewire_conf_5.html\r\n&lt;cweiske&gt; but I thought I could try that at run-time\r\n&lt;wtay&gt; https:\/\/pipewire.pages.freedesktop.org\/wireplumber\/daemon\/configuration\/alsa.html#rules\r\n&lt;wtay&gt; not possible at runtime\r\n&lt;cweiske&gt; thanks for the info.<\/pre><\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/962\/rev-raw\/1877c5a9ecbf13469002144e024f06703faf62d7\/1-chatlog.txt\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/962#1-chatlog.txt\">1-chatlog.txt<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2014 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.bash .de1, .bash .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.bash  {font-family:monospace;}\n.bash .imp {font-weight: bold; color: red;}\n.bash li, .bash .li1 {color: #DDD;}\n.bash .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.bash .kw1 {color: #000000; font-weight: bold;}\n.bash .kw2 {color: #c20cb9; font-weight: bold;}\n.bash .kw3 {color: #7a0874; font-weight: bold;}\n.bash .co0 {color: #666666; font-style: italic;}\n.bash .co1 {color: #800000;}\n.bash .co2 {color: #cc0000; font-style: italic;}\n.bash .co3 {color: #000000; font-weight: bold;}\n.bash .co4 {color: #666666;}\n.bash .es1 {color: #000099; font-weight: bold;}\n.bash .es2 {color: #007800;}\n.bash .es3 {color: #007800;}\n.bash .es4 {color: #007800;}\n.bash .es5 {color: #780078;}\n.bash .es_h {color: #000099; font-weight: bold;}\n.bash .br0 {color: #7a0874; font-weight: bold;}\n.bash .sy0 {color: #000000; font-weight: bold;}\n.bash .st0 {color: #ff0000;}\n.bash .st_h {color: #ff0000;}\n.bash .nu0 {color: #000000;}\n.bash .re0 {color: #007800;}\n.bash .re1 {color: #007800;}\n.bash .re2 {color: #007800;}\n.bash .re4 {color: #007800;}\n.bash .re5 {color: #660033;}\n.bash span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"bash\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\">$ pw-cli list-objects\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#91;<\/span>...<span class=\"br0\">&#93;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw2\">id<\/span> <span class=\"nu0\">50<\/span>, <span class=\"kw3\">type<\/span> PipeWire:Interface:Node<span class=\"sy0\">\/<\/span><span class=\"nu0\">3<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; object.serial = <span class=\"st0\">&quot;51&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; object.path = <span class=\"st0\">&quot;alsa:pcm:3:front:3:playback&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; factory.id = <span class=\"st0\">&quot;18&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; client.id = <span class=\"st0\">&quot;33&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; device.id = <span class=\"st0\">&quot;47&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; priority.session = <span class=\"st0\">&quot;1009&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; priority.driver = <span class=\"st0\">&quot;1009&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.description = <span class=\"st0\">&quot;USB Audio Analog Stereo&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.name = <span class=\"st0\">&quot;alsa_output.usb-Generic_USB_Audio-00.analog-stereo&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.nick = <span class=\"st0\">&quot;USB Device 0xdb0 0x422d&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; media.class = <span class=\"st0\">&quot;Audio\/Sink&quot;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#91;<\/span>...<span class=\"br0\">&#93;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw2\">id<\/span> <span class=\"nu0\">73<\/span>, <span class=\"kw3\">type<\/span> PipeWire:Interface:Node<span class=\"sy0\">\/<\/span><span class=\"nu0\">3<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; object.serial = <span class=\"st0\">&quot;1170&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; object.path = <span class=\"st0\">&quot;alsa:pcm:4:front:4:playback&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; factory.id = <span class=\"st0\">&quot;18&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; client.id = <span class=\"st0\">&quot;33&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; device.id = <span class=\"st0\">&quot;71&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; priority.session = <span class=\"st0\">&quot;1009&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; priority.driver = <span class=\"st0\">&quot;1009&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.description = <span class=\"st0\">&quot;Sennheiser PC 8.2 USB Analog Stereo&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.name = <span class=\"st0\">&quot;alsa_output.usb-Sennheiser_Sennheiser_PC_8.2_USB_A002900204807706-00.analog-stereo&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.nick = <span class=\"st0\">&quot;Sennheiser PC 8.2 USB&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; media.class = <span class=\"st0\">&quot;Audio\/Sink&quot;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#91;<\/span>...<span class=\"br0\">&#93;<\/span>\n&#160;\n$ pw-cli info <span class=\"nu0\">50<\/span> <span class=\"sy0\">|<\/span><span class=\"kw2\">grep<\/span> node.desc\n<span class=\"sy0\">*<\/span> &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.description = <span class=\"st0\">&quot;USB Audio Analog Stereo&quot;<\/span>\n&#160;\n$ pw-cli info <span class=\"nu0\">73<\/span> <span class=\"sy0\">|<\/span><span class=\"kw2\">grep<\/span> node.desc\n<span class=\"sy0\">*<\/span> &#160; &#160; &#160; &#160; &#160; &#160; &#160; node.description = <span class=\"st0\">&quot;Sennheiser PC 8.2 USB Analog Stereo&quot;<\/span>\n&#160;\n$ pw-dump <span class=\"nu0\">73<\/span><span class=\"sy0\">|<\/span>jq <span class=\"st_h\">'.[0].info.props[&quot;node.description&quot;]'<\/span>\n<span class=\"st0\">&quot;Sennheiser PC 8.2 USB Analog Stereo&quot;<\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/962\/rev-raw\/1877c5a9ecbf13469002144e024f06703faf62d7\/2-infos.sh\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/962#2-infos.sh\">2-infos.sh<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  \n<div class=\"document\">\n\n\n<ul class=\"simple\">\n<li><a class=\"reference external\" href=\"https:\/\/docs.pipewire.org\/page_man_pipewire_conf_5.html#pipewire_conf__device_rules\">https:\/\/docs.pipewire.org\/page_man_pipewire_conf_5.html#pipewire_conf__device_rules<\/a><\/li>\n<li><a class=\"reference external\" href=\"https:\/\/pipewire.pages.freedesktop.org\/wireplumber\/daemon\/configuration\/alsa.html#rules\">https:\/\/pipewire.pages.freedesktop.org\/wireplumber\/daemon\/configuration\/alsa.html#rules<\/a><\/li>\n<\/ul>\n<p>\/etc\/pipewire\/pipewire.conf.d\/cweiske-device-names.conf<\/p>\n<p>Debugging:<\/p>\n<pre class=\"literal-block\">\n$ systemctl --user restart pipewire wireplumber\n$ journalctl --user-unit=pipewire --user-unit=wireplumber -f\n<\/pre>\n<\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/962\/rev-raw\/1877c5a9ecbf13469002144e024f06703faf62d7\/3-links.rst\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/962#3-links.rst\">3-links.rst<\/a>\n <\/div>\n<\/div>\n<\/div>\n"}
