From 32540cd6f334631a4d5bf40d05a0aaf407b72650 Mon Sep 17 00:00:00 2001 From: zegonix Date: Thu, 12 Jun 2025 18:38:19 +0200 Subject: [PATCH] (scripts) renamed `select-audio-sink.sh`, added selection of currently used sink --- fuzzel/.config/fuzzel/zegonix.ini | 4 ++-- ...ect-audio-sink.sh => audio-sink-switcher.sh} | 17 +++++++++++++++-- sway/.config/sway/config | 4 ++-- waybar/.config/waybar/config | 1 + 4 files changed, 20 insertions(+), 6 deletions(-) rename scripts/{select-audio-sink.sh => audio-sink-switcher.sh} (65%) diff --git a/fuzzel/.config/fuzzel/zegonix.ini b/fuzzel/.config/fuzzel/zegonix.ini index c1a22c7..6de58a5 100644 --- a/fuzzel/.config/fuzzel/zegonix.ini +++ b/fuzzel/.config/fuzzel/zegonix.ini @@ -22,13 +22,13 @@ width=1 radius=0 [colors] -background=#0C0610C0 +background=#0C0610E4 text=#EFEFEFFF prompt=#586E75FF input=#657B83FF placeholder=#93A1A1FF match=#7070DFFF -selection=#404050C0 +selection=#404050E4 selection-text=#EFEFEFFF selection-match=#7070DFFF counter=#93A1A1FF diff --git a/scripts/select-audio-sink.sh b/scripts/audio-sink-switcher.sh similarity index 65% rename from scripts/select-audio-sink.sh rename to scripts/audio-sink-switcher.sh index 66d0c22..609ddd2 100755 --- a/scripts/select-audio-sink.sh +++ b/scripts/audio-sink-switcher.sh @@ -4,22 +4,34 @@ select_audio_sink() { sinks="$(pactl list sinks)" IFS=$(echo -en "\n\b") + devices=($(echo "${sinks}" | grep -ioP "(?<=name: ).*$")) ids=($(echo "${sinks}" | grep -ioP "(?<=object.serial = ).*$")) names=($(echo "${sinks}" | grep -ioP "(?<=device\.description = ).*$")) unset IFS - if [[ "${#ids[@]}" != "${#names[@]}" ]]; then + if [[ "${#ids[@]}" != "${#names[@]}" ]] || [[ "${#ids[@]}" != "${#devices[@]}" ]]; then echo "ERROR: #ids (${#ids[@]}) != #names (${#names[@]})" return 1 fi + unset number + for n in ${!devices[@]}; do + if [[ "${devices[$n]}" == "$(pactl get-default-sink)" ]]; then + number=$n + break + fi + done + if [[ -z "${number}" ]]; then + return 1 + fi + if ((${#ids[@]} > 16)); then lines=16 else lines=${#ids[@]} fi - selection="$(printf "%s\n" "${names[@]//\"/}" | fuzzel --lines ${lines} --dmenu)" + selection="$(printf "%s\n" "${names[@]//\"/}" | fuzzel --lines ${lines} --dmenu --select-index ${number})" if [[ -z "${selection}" ]]; then return 1 @@ -29,6 +41,7 @@ select_audio_sink() { for n in ${!names[@]}; do if [[ "${names[$n]}" == *"${selection}"* ]]; then number=$n + break fi done diff --git a/sway/.config/sway/config b/sway/.config/sway/config index 7df4b90..38552c0 100644 --- a/sway/.config/sway/config +++ b/sway/.config/sway/config @@ -37,8 +37,8 @@ bar { # start screen locker exec swayidle -w \ - timeout 300 'swaymsg "output * power off"' \ - timeout 330 'swaylock -f -e -i ~/dotfiles/images/city_skyline.png; systemctl suspend' \ + timeout 300 'swaylock -f -e -i ~/dotfiles/images/city_skyline.png' \ + timeout 330 'swaymsg "output * power off"; systemctl suspend' \ resume 'swaymsg "output * power on"' \ before-sleep 'swaylock -f -e -i ~/dotfiles/images/city_skyline.png' diff --git a/waybar/.config/waybar/config b/waybar/.config/waybar/config index cbb70e8..d33be8b 100644 --- a/waybar/.config/waybar/config +++ b/waybar/.config/waybar/config @@ -22,6 +22,7 @@ "sway/window": { "max-length": 50 }, + "sway/language": { "format": " {short} {variant}", "tooltip": true