#!/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;