aboutsummaryrefslogtreecommitdiff
path: root/tw/home/files/volume
diff options
context:
space:
mode:
Diffstat (limited to 'tw/home/files/volume')
-rwxr-xr-xtw/home/files/volume60
1 files changed, 0 insertions, 60 deletions
diff --git a/tw/home/files/volume b/tw/home/files/volume
deleted file mode 100755
index 96398553..00000000
--- a/tw/home/files/volume
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env -S guile --no-auto-compile
-!#
-(use-modules (ice-9 format)
- (ice-9 match)
- (ice-9 popen)
- (ice-9 regex)
- (ice-9 textual-ports))
-
-(define (read-from-pactl . args)
- (let* ((port (apply open-pipe* OPEN_READ "pactl" args))
- (output (get-string-all port)))
- (close-pipe port)
- (string-trim-right output #\newline)))
-
-(define %default-sink
- (read-from-pactl "get-default-sink"))
-
-(define* (sink-muted? #:optional (sink %default-sink))
- (match (read-from-pactl "get-sink-mute" sink)
- ("Mute: yes" #t)
- ("Mute: no" #f)
- (output (error "Unknown `pactl get-sink-mute' output" output))))
-
-(define* (sink-volume #:optional (sink %default-sink))
- (match-let ((`#(,match (,start . ,end))
- (string-match "[0-9]+%" (read-from-pactl "get-sink-volume" sink))))
- (string->number (substring match start (1- end))))) ; trim trailing "%"
-
-(define* (set-sink-mute! #:optional (state "toggle") (sink %default-sink))
- (status:exit-val
- (system* "pactl" "set-sink-mute" sink state)))
-
-(define* (increment-sink-volume! increment-percent #:optional (sink %default-sink))
- (status:exit-val
- (system* "pactl" "set-sink-volume" sink
- ;; A percentage with a sign is an increment.
- (format #f "~@d%" increment-percent))))
-
-(define* (notify #:optional (muted? (sink-muted?)) (volume (sink-volume)))
- (status:exit-val
- (system* "dunstify" "-a" "volume" "-u" "low"
- "-i" (cond (muted? "audio-volume-muted")
- ((< volume 50) "audio-volume-low")
- (#t "audio-volume-high"))
- "-h" "string:x-canonical-private-synchronous:volume"
- "-h" (format #f "int:value:~d" (if muted? 0 volume))
- (if muted? "Volume muted" "Volume"))))
-
-(match (cdr (program-arguments))
- (() 0) ; notify only
- (("mute") (set-sink-mute! "true"))
- (("unmute") (set-sink-mute! "false"))
- (("toggle-mute") (set-sink-mute! "toggle"))
- (((? string->number increment-percent))
- (and (set-sink-mute! "false")
- (increment-sink-volume!
- (string->number increment-percent))))
- (args (error "Could not parse command-line arguments:" args)))
-
-(notify)