stumpwm/sound.lisp @ 4f28fbfd7d63 default tip

More
author Steve Losh <steve@stevelosh.com>
date Tue, 09 Apr 2024 09:20:04 -0400
parents ea681bd9c52d
children (none)
(in-package :stumpwm-user)

(defun volume% ()
  (_ (run-shell-command "amixer sget Master" t)
    (string-grep "Front Left:" _ :first-only t)
    (string-split "[]" _)
    second
    (string-trim "%" _)
    parse-integer))

(defcached (volume :seconds 30)
  (volume%))

(defcommand mute () ()
  (run-shell-command "mute")
  (echo "Muted."))

(defcommand volume-up () ()
  (run-shell-command "amixer -q sset Master 5%+")
  (volume/uncache)
  (message "Volume: ~D%" (volume)))

(defcommand volume-down () ()
  (run-shell-command "amixer -q sset Master 5%-")
  (volume/uncache)
  (message "Volume: ~D%" (volume)))

(defun volume-modeline (ml)
  (declare (ignore ml))
  (format nil "~D%" (volume)))

(add-screen-mode-line-formatter #\V #'volume-modeline)

#; Scratch --------------------------------------------------------------------
(volume)