home · contact · privacy
Fix;
authorChristian Heller <c.heller@plomlompom.de>
Thu, 1 May 2025 06:21:13 +0000 (06:21 +0000)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 1 May 2025 06:21:13 +0000 (06:21 +0000)
testing/copy/desktop/home/plom/.local/bin/vol
testing/copy/desktop/home/plom/.plomlib/audio_dev_is_mute
testing/copy/t490s/home/plom/.nonpath_bins/status.sh

index e77a2437054e543a4a00a3e765d373ec8ba206a5..2aba150ff368488f8cb39da81429e678d2d1f2c5 100755 (executable)
@@ -5,14 +5,22 @@ cd $(dirname "$0")
 . 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
 
 FLAG_HELP_SHORT='-h'
 FLAG_HELP_LONG='--help'
 
-USAGE_DESCRIPTION='Set audio volume, or (if called without any arguments) toggle audio device muteness.\n\nAvailable arguments:'
-USAGE_LINES='[COMMAND]\nLOUDNESS'
-USAGE_INDICES='LOUDNESS _help'
+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)'
 USAGE_DESC__help='display this help and exit'
 USAGE_NAME__help="${FLAG_HELP_SHORT}, ${FLAG_HELP_LONG}"
@@ -20,29 +28,26 @@ USAGE_NAME__help="${FLAG_HELP_SHORT}, ${FLAG_HELP_LONG}"
 error_exit() { abort "Aborting due to $1\n\n$(print_usage)"; }
 
 toggle_mute() {
-    if audio_dev_is_mute; then
+    if $(audio_dev_is_mute "${TYPE}" "${IDX}"); then
         MUTE_BOOL=0
         MUTE_WORD=off
     else
         MUTE_BOOL=1
         MUTE_WORD=on
     fi
-    pacmd set-sink-mute 0 "${MUTE_BOOL}"
-    echo "Toggled audio device muteness ${MUTE_WORD}."
+    pacmd "set-${TYPE}-mute" "${IDX}" "${MUTE_BOOL}"
+    echo "Toggled audio ${TYPE} muteness ${MUTE_WORD}."
 }
 
 set_vol_percentage() {
     AT_FULL=65536
-    pacmd set-sink-volume 0 $(calc "($1 * ${AT_FULL} // 100)")
-    echo -n "Audio volume set to ${1}%."
-    audio_dev_is_mute && echo -n " (But audio device is muted.)"
+    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.)"
     echo
 }
 
-N_MAX_ARGS=1
-if [ "$#" -gt "${N_MAX_ARGS}" ]; then
-    error_exit "number of arguments greater ${N_MAX_ARGS}."
-elif [ -z "$1" ]; then
+if [ -z "$1" ]; then
     toggle_mute
 elif [ -z "$(echo -n $1 | sed 's/[0-9]*//g')" ]; then
     if [ "$1" -gt "${MAX_LOUDNESS}" ]; then
index e28da40ccbae6bc787fb017c2eec9218875ab3af..d45fc5383e30319d6cd9bcf76b1cd2d079c32cdd 100644 (file)
@@ -1,3 +1,5 @@
 audio_dev_is_mute() {
-    [ "$(pactl get-sink-mute 0)" = "Mute: yes" ]
+    _TYPE="$1"
+    _IDX="$2"
+    [ "$(pactl get-${_TYPE}-mute ${_IDX})" = "Mute: yes" ]
 }
index 2de135806cf99e8617c3d23425723de8f7c3d9ec..8f057b19c2b964577727ee097e0d03b093208596 100755 (executable)
@@ -139,9 +139,12 @@ print_datetime() {
 }
 
 print_volume() {
-    print_bar_block "vol " '' 0
-    VOLUME="$(pactl get-sink-volume 0 | head -1 | sed 's/ //g' | cut -d'/' -f2)"
-    if audio_dev_is_mute; then
+    _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}"
@@ -168,7 +171,8 @@ while true; do
     print_battery
     print_temperature
     print_datetime
-    print_volume
+    print_volume vol 0 sink
+    print_volume mic 1 source
     print_keyboard
     printf '],'
     sleep 0.1