diff --git a/.config/x11/xprofile b/.config/x11/xprofile index 8954009..827eba5 100755 --- a/.config/x11/xprofile +++ b/.config/x11/xprofile @@ -9,8 +9,8 @@ xrdb -merge ~/.config/x11/Xresources setbg & # set the background with the `setbg` script xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources & xrdbpid=$! # Uncomment to use Xresources colors/settings on startup -autostart="picom mpd dunst unclutter dwmblocks update_musicbar pipewire remapd" +autostart="picom mpd dunst unclutter dwmblocks update_musicbar pipewire remapd pipewire" for program in $autostart; do pidof -s "$program" || setsid -f "$program" done >/dev/null 2>&1 diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume index 2137c15..fa0abcd 100755 --- a/.local/bin/statusbar/sb-volume +++ b/.local/bin/statusbar/sb-volume @@ -1,52 +1,39 @@ #!/bin/sh -# Prints the current volume or 🔇 if muted. Uses PulseAudio by default, -# uncomment the ALSA lines if you remove PulseAudio. +# Prints the current volume or 🔇 if muted. case $BLOCK_BUTTON in - # 1) setsid "$TERMINAL" -e alsamixer & ;; - # 2) amixer sset Master toggle ;; - # 4) amixer sset Master 5%+ >/dev/null 2>/dev/null ;; - # 5) amixer sset Master 5%- >/dev/null 2>/dev/null ;; - 1) setsid "$TERMINAL" -e pulsemixer & ;; - 2) pamixer -t ;; - 4) pamixer --allow-boost -i 1 ;; - 5) pamixer --allow-boost -d 1 ;; + 1) setsid -w -f "$TERMINAL" -e pulsemixer; pkill -RTMIN+10 "${STATUSBAR:-dwmblocks}" ;; + 2) wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ;; + 4) wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+ ;; + 5) wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%- ;; 3) notify-send "📢 Volume module" "\- Shows volume 🔊, 🔇 if muted. - Middle click to mute. -- Scroll to change." +- Scroll to change." ;; + 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -#volstat="$(pactl list sinks)" -## volstat="$(amixer get Master)" # ALSA only equivalent. -# -## Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) -#if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then -# echo "$volstat" | grep -q "Mute: yes" && printf "🔇\\n" && exit -#else -# echo "$volstat" | grep -A10 "State: RUNNING" | grep -q "Mute: yes" && printf "🔇\\n" && exit -#fi -## echo "$volstat" | grep "\[off\]" >/dev/null && printf "🔇\\n" && exit # ALSA -# -## Uses active sink if one is running, otherwise just go for the default one (First one listed in pactl list sinks) -#if [ -z "$(echo "$volstat" | grep -A10 'State: RUNNING' )" ]; then -# vol="$(echo "$volstat" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" -#else -# vol="$(echo "$volstat" | grep -A10 "State: RUNNING" | grep '[0-9]\+%' | sed "s,.* \([0-9]\+\)%.*,\1,;1q")" -#fi +vol="$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" -# vol=$(echo "$volstat" | grep -o "\[[0-9]\+%\]" | sed "s/[^0-9]*//g;1q") # ALSA -vol="$(pamixer --get-volume-human | tr -d '%')" -if echo "$vol" | grep -q muted; then - printf '🔇\n' +# If muted, print 🔇 and exit. +[ "$vol" != "${vol%\[MUTED\]}" ] && echo 🔇 && exit -else - if [ "$vol" -gt "70" ]; then - icon="🔊" - elif [ "$vol" -lt "30" ]; then - icon="🔈" - else - icon="🔉" - fi - printf "%s%s%%\\n" "$icon" "$vol" -fi +vol="${vol#Volume: }" + +split() { + # For ommiting the . without calling and external program. + IFS=$2 + set -- $1 + printf '%s' "$@" +} + +vol="$(printf "%.0f" "$(split "$vol" ".")")" + +case 1 in + $((vol >= 70)) ) icon="🔊" ;; + $((vol >= 30)) ) icon="🔉" ;; + $((vol >= 1)) ) icon="🔈" ;; + * ) echo 🔇 && exit ;; +esac + +echo "$icon$vol%"