change audio output
This commit is contained in:
parent
450754b39a
commit
45be1fbdd7
2 changed files with 37 additions and 0 deletions
|
|
@ -127,6 +127,7 @@
|
|||
},
|
||||
"scroll-step": 10,
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "./switch_sink.sh",
|
||||
"ignored-sinks": ["Easy Effects Sink"],
|
||||
"tooltip-format": "{icon} {volume}"
|
||||
},
|
||||
|
|
|
|||
36
waybar/switch_sink.sh
Executable file
36
waybar/switch_sink.sh
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Cycle default sink and move existing inputs.
|
||||
if ! command -v pactl >/dev/null 2>&1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
current="$(pactl get-default-sink 2>/dev/null)"
|
||||
[ -z "$current" ] && exit 1
|
||||
|
||||
sinks="$(pactl list short sinks | awk '{print $2}')"
|
||||
[ -z "$sinks" ] && exit 1
|
||||
|
||||
next=""
|
||||
found=0
|
||||
for s in $sinks; do
|
||||
if [ "$found" -eq 1 ]; then
|
||||
next="$s"
|
||||
break
|
||||
fi
|
||||
if [ "$s" = "$current" ]; then
|
||||
found=1
|
||||
fi
|
||||
done
|
||||
|
||||
# If current is last or not found, wrap to first.
|
||||
if [ -z "$next" ]; then
|
||||
next="$(printf '%s\n' "$sinks" | head -n 1)"
|
||||
fi
|
||||
|
||||
pactl set-default-sink "$next" || exit 1
|
||||
|
||||
# Move existing audio streams to the new sink.
|
||||
for input in $(pactl list short sink-inputs | awk '{print $1}'); do
|
||||
pactl move-sink-input "$input" "$next" >/dev/null 2>&1 || true
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue