On Thu, 26 Mar 2026 02:09:03 -0300 Isac Monção <[email protected]> wrote:
> Hello everyone, > > I created a script to help those who use a window manager and need a > simple way to increase, decrease and get the current audio volume. > Use and modify it as you wish. :) > Thanks to DTB's suggestions, I modified the script and now it's much more compact and simple. Here's a copy of it: ```sh # Script to easily manipulate audio volume in NetBSD # Author: Isac Monção <[email protected]> # Last Modified: 26/03/2026 04:09 AM -03 # Requirements: echo, mixerctl, sed, bc # License: ISC # # Contributions: # - DTB <[email protected]>: Multiple if statements refactored into a single case statement. # # 頑張った # #!/bin/sh INCREMENT="1" MIXER_VARIABLE=outputs.master usage() { echo "usage: vol up" echo " vol down" echo " vol get" } get_vol() { pattern="$MIXER_VARIABLE=[0-9][0-9]?[0-9]?," current_vol=$(mixerctl "$MIXER_VARIABLE" | sed -E s"/$pattern//") perc_val=$(echo "(100 * $current_vol) / 248" | bc) echo "$perc_val%" } case "$1" in up) mixerctl -w "$MIXER_VARIABLE+=$INCREMENT" ;; down) mixerctl -w "$MIXER_VARIABLE-=$INCREMENT" ;; get) get_vol ;; *) usage; exit 64;; # sysexits(3) EX_USAGE esac ```
# Script to easily manipulate audio volume in NetBSD # Author: Isac Monção <[email protected]> # Last Modified: 26/03/2026 04:09 AM -03 # Requirements: echo, mixerctl, sed, bc # License: ISC # # Contributions: # - DTB <[email protected]>: Multiple if statements refactored into a single case statement. # # é å¼µã£ã # #!/bin/sh INCREMENT="1" MIXER_VARIABLE=outputs.master usage() { echo "usage: vol up" echo " vol down" echo " vol get" } get_vol() { pattern="$MIXER_VARIABLE=[0-9][0-9]?[0-9]?," current_vol=$(mixerctl "$MIXER_VARIABLE" | sed -E s"/$pattern//") perc_val=$(echo "(100 * $current_vol) / 248" | bc) echo "$perc_val%" } case "$1" in up) mixerctl -w "$MIXER_VARIABLE+=$INCREMENT" ;; down) mixerctl -w "$MIXER_VARIABLE-=$INCREMENT" ;; get) get_vol ;; *) usage; exit 64;; # sysexits(3) EX_USAGE esac
