scripts/shell -- Adds sunshine-tweaks.sh script

This commit is contained in:
2025-12-22 19:22:54 -03:00
parent 2344ac0f8c
commit ad7e323d02

View File

@@ -0,0 +1,49 @@
#!/usr/bin/env bash
# Author: iago
state=waiting_for_sunshine
sleep_time=1
default_device="alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo"
default_device_fl=":monitor_FL"
default_device_fr=":monitor_FR"
obs_device="OBS: audioOutput_Discordless"
obs_device_fl=":monitor_FL"
obs_device_fr=":monitor_FR"
sunshine_device="sunshine"
sunshine_device_fl=":input_FL"
sunshine_device_fr=":input_FR"
is_sunshine_transmitting() {
pw-link -l | grep sunshine >/dev/null
}
do_device_setup() {
# trocar dispositivo padrão
pactl set-default-sink "$default_device"
# conectar dispositivo virtual do OBS
pw-link "$obs_device$obs_device_fl" "$sunshine_device$sunshine_device_fl"
pw-link "$obs_device$obs_device_fr" "$sunshine_device$sunshine_device_fr"
# talvez desconectar a saída do seu fone do sunshine??
sleep 5
pw-link -d "$default_device$default_device_fl" "$sunshine_device$sunshine_device_fl"
pw-link -d "$default_device$default_device_fr" "$sunshine_device$sunshine_device_fr"
}
while true; do
if [ "$state" = "waiting_for_sunshine" ]; then
if is_sunshine_transmitting; then
state=do_sunshine_setup
fi
elif [ "$state" = "do_sunshine_setup" ]; then
do_device_setup
state=sunshine_running
elif [ "$state" = "sunshine_running" ]; then
if ! is_sunshine_transmitting; then
state=sunshine_not_transmitting
fi
elif [ "$state" = "sunshine_not_transmitting" ]; then
state=waiting_for_sunshine
fi
sleep "$sleep_time"
done