commit 4111d5f31df2319dba1e656b095a0cc5347e4e04 from: Benjamin Stürz date: Sun Dec 24 13:29:36 2023 UTC Add dmenu_audio commit - fab1807bd2b1387ffe544b4f1ce2a238f3266d8d commit + 4111d5f31df2319dba1e656b095a0cc5347e4e04 blob - 29d733874d858708bbeabb8bb9e02d92193b69f2 blob + 88da87ef43b469fc8e6110fe0d0d0ea394337e20 --- dwm/config.h +++ dwm/config.h @@ -87,6 +87,7 @@ static const Key keys[] = { { MODKEY, XK_s, spawn, {.v = dmscript("dmenu_surf") }}, { MODKEY|ShiftMask, XK_s, spawn, {.v = dmscript("dmenu_surf_history") }}, { MODKEY|ShiftMask, XK_m, spawn, {.v = dmscript("dmenu_man") }}, + { MODKEY, XK_n, spawn, {.v = dmscript("dmenu_audio") }}, { MODKEY|ShiftMask, XK_w, spawn, {.v = dmscript("dmenu_word") }}, { MODKEY|ControlMask, XK_h, spawn, {.v = runst("htop") }}, { MODKEY, XK_c, spawn, {.v = runst("env", "LC_ALL=C", "qalc") }}, blob - /dev/null blob + c0b6c406a510920acceb794fbd62009f29e198bc (mode 755) --- /dev/null +++ scripts/dmenu_audio @@ -0,0 +1,40 @@ +#!/bin/sh + +while true; do + muted=$(sndioctl output.mute | cut -d= -f2) + level=$(sndioctl output.level | cut -d= -f2) + + [ "$muted" = 1 ] && m="Unmute" || m="Mute" + if [ "$muted" = 1 ]; then + m1=' (Muted)' + m2='Unmute' + else + m1='' + m2='Mute' + fi + + p=$(printf 'Level: %.2f%s' "$level" "$m1") + r=$(printf '+\n-\n%s\n' "$m2" | dmenu -p "$p" -l 5) || break + + case "$r" in + +) + level=$(printf 'scale=2; %.2f+0.1\n' "$level" | bc) + sndioctl "output.level=$level" + ;; + -) + level=$(printf 'scale=2; %.2f-0.1\n' "$level" | bc) + sndioctl "output.level=$level" + ;; + Mute) + sndioctl 'output.mute=1' + ;; + Unmute) + sndioctl 'output.mute=0' + ;; + *) + if echo "$r" | grep -qE '^(0|1|0\.[0-9]+)$'; then + sndioctl "output.level=$r" + fi + ;; + esac +done