From 6e6bbebbda987adbf2bcd68a81749d2e03442309 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado <55825613+luevano@users.noreply.github.com> Date: Mon, 28 Dec 2020 12:17:43 -0700 Subject: Fix bug where only changing between first and last sink, and only first sink --- .local/bin/pa_control | 57 ++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/.local/bin/pa_control b/.local/bin/pa_control index 9a53b9a..b3d566a 100755 --- a/.local/bin/pa_control +++ b/.local/bin/pa_control @@ -3,11 +3,9 @@ # This script is just used to get the current PA sink, # and to change to the 'next' sink. Using only 'pactl'. -default_sink= -default_sink_nickname= get_default_sink (){ - default_sink="$(pactl info | grep Sink | awk '{print $3}')" + echo "$(pactl info | grep Sink | awk '{print $3}')" } get_default_sink_nickname (){ @@ -15,6 +13,8 @@ get_default_sink_nickname (){ | grep -e Name -e alsa.card_name\ | sed -e 's/^\ *//' -e 's/\ *$//')" + default_sink="$(get_default_sink)" + found_default_sink="0" while IFS= read line; do @@ -27,13 +27,13 @@ get_default_sink_nickname (){ # If fond default_sink, get and set the nickname, then exit. - if [ $found_default_sink = "1" ]; then - default_sink_nickname="$line" + if [ "$found_default_sink" = "1" ]; then + echo "$line" break; fi # If current line is the default sink, set a flag. - if [ $default_sink = "$line" ]; then + if [ "$default_sink" = "$line" ]; then found_default_sink="1" fi done <