96 lines
2.8 KiB
Bash
Executable File
96 lines
2.8 KiB
Bash
Executable File
#!/bin/sh
|
|
#pacmd set-default-sink alsa_output.usb-Logitech_Logitech_G933_Gaming_Wireless_Headset-00.analog-stereo
|
|
#pacmd set-default-source alsa_input.usb-Logitech_Logitech_G933_Gaming_Wireless_Headset-00.analog-mono
|
|
|
|
set -e
|
|
|
|
QUDELIX_SINK="alsa_output.usb-QTIL_Qudelix-5K_USB_DAC_ABCDEF0123456789-00.analog-stereo"
|
|
SPEAKER_SINK="alsa_output.pci-0000_0f_00.4.3.iec958-stereo"
|
|
STAGE_SINK="alsa_output.usb-ACTIONS_Stage_V2-00.analog-stereo"
|
|
BOSE_SINK="bluez_output.78_2B_64_CE_04_03.1"
|
|
FRACTAL_SINK="alsa_output.usb-Fractal_Fractal_Scape_Dongle_00000000911AD5560372-00.analog-stereo"
|
|
SNAPCAST_SINK="snapcast_out"
|
|
YETI_SOURCE="alsa_input.usb-Blue_Microphones_Yeti_Nano_2231SQ0017G8_888-000476140106-00.analog-stereo"
|
|
NOISETORCH_SOURCE="NoiseTorch Microphone for Yeti Nano"
|
|
FRACTAL_SOURCE="alsa_input.usb-Fractal_Fractal_Scape_Dongle_00000000911AD5560372-00.mono-fallback"
|
|
|
|
switchAudio() {
|
|
case "$1" in
|
|
"-s")
|
|
#echo fractal
|
|
echo -e "fractal\0icon\x1faudio-headphones"
|
|
#echo snapcast
|
|
echo -e "snapcast"
|
|
#echo -en "Firefox\0icon\x1ffirefox" | fuzzel --dmenu
|
|
echo -e "stage\0icon\x1faudio-speakers"
|
|
#echo "stage"
|
|
echo -e "bose\0icon\x1fbluetooth"
|
|
#echo "qudelix"
|
|
echo -e "qudelix\0icon\x1faudio-headphones"
|
|
exit 0;
|
|
;;
|
|
"qudelix")
|
|
local sink="$QUDELIX_SINK"
|
|
# local source="$NOISETORCH_SOURCE"
|
|
local source="$YETI_SOURCE"
|
|
;;
|
|
"speakers")
|
|
local sink="$SPEAKER_SINK"
|
|
local source="$YETI_SOURCE"
|
|
;;
|
|
"stage")
|
|
local sink="$STAGE_SINK"
|
|
local source="$YETI_SOURCE"
|
|
;;
|
|
"bose")
|
|
local sink="$BOSE_SINK"
|
|
local source="$YETI_SOURCE"
|
|
;;
|
|
"fractal")
|
|
local sink="$FRACTAL_SINK"
|
|
local source="$FRACTAL_SOURCE"
|
|
;;
|
|
"snapcast")
|
|
local sink="$SNAPCAST_SINK"
|
|
local source="$FRACTAL_SOURCE"
|
|
;;
|
|
esac;
|
|
|
|
local sourceCommand="pactl move-source-output {} $source"
|
|
local sinkCommand="pactl move-sink-input {} $sink"
|
|
|
|
pactl set-default-sink $sink
|
|
pactl list | grep -o -E 'Sink Input #([0-9]+)' | cut -d"#" -f2 | xargs -I '{}' $sinkCommand
|
|
#pactl list | grep -o -E 'Source Output #([0-9]+)' | cut -d"#" -f2 | xargs -I '{}' $sourceCommand
|
|
pactl set-default-source $source
|
|
echo $1 > $HOME/.last_audio
|
|
notify-send -a "Audio" "Switched to $1"
|
|
|
|
}
|
|
|
|
nextAudio() {
|
|
local last_audio=$(cat $HOME/.last_audio)
|
|
case "$last_audio" in
|
|
"fractal")
|
|
local next="speakers"
|
|
;;
|
|
"speakers")
|
|
local next="fractal"
|
|
;;
|
|
*)
|
|
local next="fractal"
|
|
;;
|
|
esac;
|
|
|
|
switchAudio $next
|
|
}
|
|
|
|
case "$1" in
|
|
"next")
|
|
nextAudio
|
|
;;
|
|
*)
|
|
switchAudio $1
|
|
;;
|
|
esac;
|