home · contact · privacy
Fix. master
authorChristian Heller <c.heller@plomlompom.de>
Fri, 9 May 2025 08:30:24 +0000 (08:30 +0000)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 9 May 2025 08:30:24 +0000 (08:30 +0000)
testing/copy/desktop/home/plom/.local/bin/vol
testing/copy/t490s/home/plom/.nonpath_bins/status.sh

index 2aba150ff368488f8cb39da81429e678d2d1f2c5..837988b98e562d5fa66fcae54b8522f95bf2465b 100755 (executable)
@@ -5,57 +5,86 @@ cd $(dirname "$0")
 . lib/audio_dev_is_mute
 . lib/print_usage
 
 . lib/audio_dev_is_mute
 . lib/print_usage
 
-IDX=0
-TYPE=sink
-if [ "$1" = "mic" ]; then
-    IDX=1
-    TYPE=source
-    shift 1
-fi
 MAX_LOUDNESS=150
 
 MAX_LOUDNESS=150
 
-FLAG_HELP_SHORT='-h'
-FLAG_HELP_LONG='--help'
+TARGET_IDX_SPEAKER=0
+TARGET_TYPE_SPEAKER=sink
+
+TARGET_IDX_MIC=1
+TARGET_TYPE_MIC=source
+
+
+
+USAGE_DESCRIPTION='Set audio device volume, or (if no LOUDNESS provided) toggle device muteness.\n\nAvailable arguments:'
+USAGE_LINES='[OPTION] [LOUDNESS]'
+USAGE_INDICES='_help _mic LOUDNESS'
 
 
-USAGE_DESCRIPTION='Set audio device volume, or (if no LOUDNESS provided) toggle audio device muteness.\n\nAvailable arguments:'
-USAGE_LINES='[mic] [COMMAND]\nLOUDNESS'
-USAGE_INDICES='mic LOUDNESS _help'
-USAGE_DESC_mic='if set, affect microphone rather than speakers'
-USAGE_DESC_LOUDNESS='audio volume to set (as percentage, must be integer)'
+ARG_HELP_SHORT='-h'
+ARG_HELP_LONG='--help'
 USAGE_DESC__help='display this help and exit'
 USAGE_DESC__help='display this help and exit'
-USAGE_NAME__help="${FLAG_HELP_SHORT}, ${FLAG_HELP_LONG}"
+USAGE_NAME__help="${ARG_HELP_SHORT}, ${ARG_HELP_LONG}"
 
 
-error_exit() { abort "Aborting due to $1\n\n$(print_usage)"; }
+ARG_MIC_SHORT='-m'
+ARG_MIC_LONG='--mic'
+USAGE_DESC__mic='as device to manipulate, target microphone rather than speakers'
+USAGE_NAME__mic="${ARG_MIC_SHORT}, ${ARG_MIC_LONG}"
+
+USAGE_DESC_LOUDNESS="volume to set (as percentage, should be integer <= ${MAX_LOUDNESS}, final '%' optional)"
+
+
+
+error_exit() {
+    abort "Aborting due to $1\n\n$(print_usage)"
+}
+
+set_target_device() {
+    TARGET_NAME="$1"
+    TARGET_IDX="$2"
+    TARGET_TYPE="$3"
+}
 
 toggle_mute() {
 
 toggle_mute() {
-    if $(audio_dev_is_mute "${TYPE}" "${IDX}"); then
+    if $(audio_dev_is_mute "${TARGET_TYPE}" "${TARGET_IDX}"); then
         MUTE_BOOL=0
         MUTE_WORD=off
     else
         MUTE_BOOL=1
         MUTE_WORD=on
     fi
         MUTE_BOOL=0
         MUTE_WORD=off
     else
         MUTE_BOOL=1
         MUTE_WORD=on
     fi
-    pacmd "set-${TYPE}-mute" "${IDX}" "${MUTE_BOOL}"
-    echo "Toggled audio ${TYPE} muteness ${MUTE_WORD}."
+    pacmd "set-${TARGET_TYPE}-mute" "${TARGET_IDX}" "${MUTE_BOOL}"
+    echo "Toggled ${TARGET_NAME} muteness ${MUTE_WORD}."
 }
 
 }
 
-set_vol_percentage() {
+set_volume_as_percentage() {
+    _PERCENTAGE=$(echo "$1" | tr -d '%')
+    if [ "${_PERCENTAGE}" -gt "${MAX_LOUDNESS}" ]; then
+        error_exit "demand for unreasonably high loudness: ${_PERCENTAGE}%."
+    fi
     AT_FULL=65536
     AT_FULL=65536
-    pacmd set-${TYPE}-volume "${IDX}" $(calc "($1 * ${AT_FULL} // 100)")
-    echo -n "Audio ${TYPE} volume set to ${1}%."
-    audio_dev_is_mute "${TYPE}" "${IDX}" && echo -n " (But audio device is muted.)"
+    pacmd set-${TARGET_TYPE}-volume "${TARGET_IDX}" $(calc "(${_PERCENTAGE} * ${AT_FULL} // 100)")
+    echo -n "Volume of ${TARGET_NAME} set to ${_PERCENTAGE}%."
+    audio_dev_is_mute "${TARGET_TYPE}" "${TARGET_IDX}" && echo -n " (But device is muted.)"
     echo
 }
 
     echo
 }
 
+
+
+set_target_device 'speaker' 0 'sink'
+if [ "$(echo $1 | cut -c1)" = '-' ]; then
+    if [ "$1" = "${ARG_HELP_SHORT}" ] || [ "$1" = "${ARG_HELP_LONG}" ]; then
+        print_usage
+        exit 0 
+    elif [ "$1" = "${ARG_MIC_SHORT}" ] || [ "$1" = "${ARG_MIC_LONG}" ]; then
+        set_target_device 'microphone' 1 'source'
+    else
+        error_exit "unrecognized argument: $1"
+    fi
+    shift 1
+fi
 if [ -z "$1" ]; then
     toggle_mute
 if [ -z "$1" ]; then
     toggle_mute
-elif [ -z "$(echo -n $1 | sed 's/[0-9]*//g')" ]; then
-    if [ "$1" -gt "${MAX_LOUDNESS}" ]; then
-        error_exit "demand for unreasonably high loudness: $1."
-    fi
-    set_vol_percentage "$1"
-elif [ "$1" = "$FLAG_HELP_SHORT" ] || [ "$1" = "$FLAG_HELP_LONG" ]; then
-    print_usage
+elif [ -z "$(echo -n $1 | sed -E 's/[0-9]*[%]?//g')" ]; then
+    set_volume_as_percentage "$1"
 else
     error_exit "unrecognized argument: $1"
 fi
 else
     error_exit "unrecognized argument: $1"
 fi
index 8f057b19c2b964577727ee097e0d03b093208596..950a6ba2af65084afac25640cfd135edb20ce220 100755 (executable)
@@ -139,16 +139,21 @@ print_datetime() {
 }
 
 print_volume() {
 }
 
 print_volume() {
-    _NAME="$1"
-    _IDX="$2"
-    _TYPE="$3"
-    print_bar_block "$1 " '' 0
-    VOLUME="$(pactl get-${_TYPE}-volume "${_IDX}" | head -1 | sed 's/ //g' | cut -d'/' -f2)"
-    if $(audio_dev_is_mute "${_TYPE}" "${_IDX}"); then
-        print_bar_block "<s>${VOLUME}</s>"
-    else
-        print_bar_block "${VOLUME}" "${COL_YELLOW}"
-    fi
+    _print_vol() {
+        _NAME="$1"
+        _IDX="$2"
+        _TYPE="$3"
+        _BORDER="$4"
+        print_bar_block "$1 " "${COL_WHITE}" 0
+        VOLUME="$(pactl get-${_TYPE}-volume "${_IDX}" | head -1 | sed 's/ //g' | cut -d'/' -f2)"
+        if $(audio_dev_is_mute "${_TYPE}" "${_IDX}"); then
+            print_bar_block "<s>${VOLUME}</s>" '' "${_BORDER}"
+        else
+            print_bar_block "${VOLUME}" "${COL_YELLOW}" "${_BORDER}"
+        fi
+    }
+    _print_vol 'vol' 0 'sink' 0
+    _print_vol ' --mic' 1 'source'
 }
 
 print_keyboard() {
 }
 
 print_keyboard() {
@@ -171,8 +176,7 @@ while true; do
     print_battery
     print_temperature
     print_datetime
     print_battery
     print_temperature
     print_datetime
-    print_volume vol 0 sink
-    print_volume mic 1 source
+    print_volume
     print_keyboard
     printf '],'
     sleep 0.1
     print_keyboard
     printf '],'
     sleep 0.1