commit - fab1807bd2b1387ffe544b4f1ce2a238f3266d8d
commit + 4111d5f31df2319dba1e656b095a0cc5347e4e04
blob - 29d733874d858708bbeabb8bb9e02d92193b69f2
blob + 88da87ef43b469fc8e6110fe0d0d0ea394337e20
--- dwm/config.h
+++ dwm/config.h
{ 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
+#!/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