nixos_config/util/swap_sound_device.xsh
2026-02-14 10:04:20 +01:00

14 lines
No EOL
604 B
Text

sinks = $(pactl list sinks | grep node.name)
names = $(pactl list sinks | grep alsa.card_name)
sinkdict = {}
for sink_line, name_line in zip(sinks.split("\n"), names.split("\n")):
sink = sink_line.split("=")[-1].strip().strip('"')
name = name_line.split("=")[-1].strip().strip('"')
if sink and name:
sinkdict[sink] = name
default_sink = $(pactl get-default-sink).strip()
sinklist = list(sinkdict.keys())
i_next = (sinklist.index(default_sink) + 1) % len(sinklist)
next_sink = sinklist[i_next]
pactl set-default-sink @(next_sink)
print(f"PulseAudio sink: {sinkdict[next_sink]} active")