From b8eb10620b7124165ab6e9869f1ddd7aed8abadd Mon Sep 17 00:00:00 2001 From: Stepanov Aleksey Date: Mon, 20 Oct 2025 19:23:58 +0500 Subject: Squash merge set-max-volume into master --- README.md | 27 +++++++++++++++++++++++++++ swob-swayconfig | 6 ------ swob.sh | 12 ++---------- 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index da3fe4c..4733405 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,33 @@ href="dwl-config.h.patch">dwl-config.h.patch point to its absolute location. +Environment variables +--------------------- + +You can set the `SWOB_MAX_VOLUME` environment variable to set the maximum volume. + +```conf +# Your Sway config + +set $SWOB_MAX_VOLUME 120 + +bindsym --locked XF86AudioLowerVolume exec exec env SWOB_MAX_VOLUME=$SWOB_MAX_VOLUME swob.sh volume 5%- +bindsym --locked XF86AudioRaiseVolume exec exec env SWOB_MAX_VOLUME=$SWOB_MAX_VOLUME swob.sh volume 5%+ +``` + +Theming +------- + +For wob styling when the value is above the threshold, there are styles: `overflow_bar_color`, `overflow_background_color`, `overflow_border_color`. + +```ini +[style.mute] +background_color = af0000 +background_color = af0000 +overflow_bar_color = FF5555 +overflow_border_color = 000000 +``` + Copying ------- diff --git a/swob-swayconfig b/swob-swayconfig index fd0d7a8..b74c114 100644 --- a/swob-swayconfig +++ b/swob-swayconfig @@ -4,9 +4,3 @@ bindsym --locked XF86MonBrightnessUp exec exec swob.sh brightness 5%+ bindsym --locked XF86AudioLowerVolume exec exec swob.sh volume 5%- bindsym --locked XF86AudioRaiseVolume exec exec swob.sh volume 5%+ bindsym --locked XF86AudioMute exec exec swob.sh volume toggle - -# or with SWOB_MAX_VOLUME -set $SWOB_MAX_VOLUME 120 - -bindsym --locked XF86AudioLowerVolume exec exec env SWOB_MAX_VOLUME=$SWOB_MAX_VOLUME swob.sh volume 5%- -bindsym --locked XF86AudioRaiseVolume exec exec env SWOB_MAX_VOLUME=$SWOB_MAX_VOLUME swob.sh volume 5%+ diff --git a/swob.sh b/swob.sh index d47e980..394d7d9 100755 --- a/swob.sh +++ b/swob.sh @@ -95,14 +95,6 @@ get_audio_type() { SWOB_AUDIO=alsa # default to ALSA } -pactl_vol() { - pactl set-sink-"$1" @DEFAULT_SINK@ "$(echo "$2" | sed -E 's/(.*)([+-])$/\2\1/')" -} - -percent_to_float() { - awk -v percent="$1" 'BEGIN{printf "%.1f", percent/100}' -} - set_vol() { set +fu get_audio_type @@ -112,7 +104,7 @@ set_vol() { pipewire) case $1 in toggle) to_set=mute ;; - *) to_set="volume -l $(percent_to_float "$SWOB_MAX_VOLUME")" ;; + *) to_set="volume -l $(awk -v percent="$SWOB_MAX_VOLUME" 'BEGIN{printf "%.1f", percent/100}')" ;; esac wpctl set-$to_set @DEFAULT_AUDIO_SINK@ "$1" wpctl get-volume @DEFAULT_AUDIO_SINK@ | sed -E \ @@ -131,7 +123,7 @@ set_vol() { if test "$to_set" = "mute" \ -o \( "$percent" -lt "$SWOB_MAX_VOLUME" \) \ -o \( "$percent" -eq "$SWOB_MAX_VOLUME" -a "$sign" = "-" \); then - pactl_vol "$to_set" "$1" + pactl set-sink-$to_set @DEFAULT_SINK@ "$(echo "$1" | sed -E 's/(.*)([+-])$/\2\1/')" else pactl set-sink-$to_set @DEFAULT_SINK@ "${SWOB_MAX_VOLUME}%" fi -- cgit