( continuation of a thread about my 'dual screen' setup: 'Automatic selection of an audio sink depending on value of ENV variable ' ) I've got 1 X server running and 2 screens: 0.0 and 0.1; 2 soundcards: leszek at leszek-desktop:~$ pacmd list-sinks | grep name | grep output name: <alsa_output.pci-0000_00_07.0.analog-stereo> name: <alsa_output.pci-0000_01_06.0.analog-stereo> I would like to set up Pulse so that whenever I'm in 0.0, sound gets routed to alsa_output.pci-0000_01_06.0.analog-stereo, and whenever I work in 0.1 - to alsa_output.pci-0000_00_07.0.analog-stereo. I've been advised that Pulse is able to get its default sink from X properties of the root window. Let's try then: ********************************************************************* leszek# pax11publish -D ":0.0" -O alsa_output.pci-0000_01_06.0.analog-stereo -e leszek# pax11publish -D ":0.1" -O alsa_output.pci-0000_00_07.0.analog-stereo -e leszek# xprop -root | grep PULSE ## on monitor "0.0" PULSE_COOKIE(STRING) = "3ac2381a17c704d94ef0edb1b8fdf289ff003587b59a45d6ae3aa0f3c1586032192d180896ffb9412193d7531ea1cdddd869e53c3c3ffb9c2c5fcd0dd036baccdac959992a599fa398823fb35d61a07fd17466e095cc00ffa22c9c14ff9d982ee368c6c16c24014b150bbed5facac7b37c35507b4fb73d9d0bd2efe22bbd4f86a7de42d8d105c8900ecc3462f0dece7d1a6b845275b095a301112544f1409ab3beb84989bc5ae19459b57c3415275334b849824659c9696e6c797d46be53d0957831569fa9a535713a8a1f216cfa7aeb6d6faa35f4b9a7fed5f4fc21dfb47ca9514f26fd118f09836e5c2308be49254189d967c20d258a65cd1fc2d4aa2f2652" PULSE_SINK(STRING) = "alsa_output.pci-0000_00_07.0.analog-stereo" PULSE_SERVER(STRING) = "leszek-desktop" PULSE_SESSION_ID(STRING) = "571eae318b6377f95367e6524abdec09-1256048477.493671-985655645" leszek# xprop -root | grep PULSE ## on TV "0.1" (nothing) And sound always goes to alsa_output.pci-0000_00_07.0.analog-stereo. pax11publish ignores screen numbers. ********************************************************************* But maybe I can set the properties manually? Let's try then: ## on 0.0 leszek# xprop -root -f PULSE_SINK 8s -set PULSE_SINK alsa_output.pci-0000_01_06.0.analog-stereo leszek# xprop -root | grep PULSE PULSE_SINK(STRING) = "alsa_output.pci-0000_01_06.0.analog-stereo" PULSE_COOKIE(STRING) = "3ac2381a17c704d94ef0edb1b8fdf289ff003587b59a45d6ae3aa0f3c1586032192d180896ffb9412193d7531ea1cdddd869e53c3c3ffb9c2c5fcd0dd036baccdac959992a599fa398823fb35d61a07fd17466e095cc00ffa22c9c14ff9d982ee368c6c16c24014b150bbed5facac7b37c35507b4fb73d9d0bd2efe22bbd4f86a7de42d8d105c8900ecc3462f0dece7d1a6b845275b095a301112544f1409ab3beb84989bc5ae19459b57c3415275334b849824659c9696e6c797d46be53d0957831569fa9a535713a8a1f216cfa7aeb6d6faa35f4b9a7fed5f4fc21dfb47ca9514f26fd118f09836e5c2308be49254189d967c20d258a65cd1fc2d4aa2f2652" PULSE_SERVER(STRING) = "{571eae318b6377f95367e6524abdec09}unix:/home/leszek/.pulse/571eae318b6377f95367e6524abdec09-runtime/native" PULSE_SESSION_ID(STRING) = "571eae318b6377f95367e6524abdec09-1256446499.571891-1748126058" PULSE_ID(STRING) = "1000 at 571eae318b6377f95367e6524abdec09/2747" ## on 0.1 leszek# xprop -root -f PULSE_SINK 8s -set PULSE_SINK alsa_output.pci-0000_00_07.0.analog-stereo leszek# xprop -root | grep PULSE PULSE_SINK(STRING) = "alsa_output.pci-0000_00_07.0.analog-stereo" So far so good, but when in screen 0.1 I try launching, say, Audacious - its sound still gets sent to alsa_output.pci-0000_01_06.0.analog-stereo.