all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* A simple battery level alert mcron job for your Guix
@ 2019-07-22 10:10 Maxim Cournoyer
  2019-08-01  0:07 ` A simple battery level alert mcron job for your Guix, v2 Maxim Cournoyer
  0 siblings, 1 reply; 3+ messages in thread
From: Maxim Cournoyer @ 2019-07-22 10:10 UTC (permalink / raw)
  To: help-guix

If like me, you are using a minimalist WM, you might miss on basic
features such as a battery level gauge.  Having a laptop silently die on
us due to forgetting to plug the AC charger can be frustrating...

So here's a small hack that should at least beep the PC speaker when the
battery goes below 20%.  It relies on "acpi" to get the battery level
and "beep" to make use of the PC speaker.

--8<---------------cut here---------------start------------->8---
(use-service-module
 ...
 base
 mcron
 ...)

(use-package-modules
 ...
 linux
 terminals                      ; for "beep"
 ...)

;;; Allow the use of the PC speaker (beep) for any active user.
(define %pcspeaker-beep-rule
  (udev-rule
   "70-pcspkr-beep.rules"
   (string-append "ACTION==\"add\", SUBSYSTEM==\"input\", "
		  "ATTRS{name}==\"PC Speaker\", ENV{DEVNAME}!=\"\", "
		  "TAG+=\"uaccess\"")))

(define %battery-alert-job
  #~(job '(next-minute (range 0 60 1))
	 "(( $(acpi | cut -d',' -f2 | tr -d ' %') < 20 )) && beep -r5"))

(operating-system
 ...
 (packages (cons* ...
             	  acpi beep		;for the battery alert mcron job
                  %base-packages))

 (services
  (cons*
   (service mcron-service-type
            (mcron-configuration (jobs (list %battery-alert-job))))
            ...
   (modify-services %desktop-services
    (udev-service-type config =>
		       (udev-configuration
		        (inherit config)
			(rules (cons* %pcspeaker-beep-rule
				      (udev-configuration-rules config)))))))))
--8<---------------cut here---------------end--------------->8---

One caveat: on my laptop at least, the mute button silences even the PC
speaker, leaving some room for more surprise shutdowns.

Have fun,

Maxim

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-07-31 15:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-22 10:10 A simple battery level alert mcron job for your Guix Maxim Cournoyer
2019-08-01  0:07 ` A simple battery level alert mcron job for your Guix, v2 Maxim Cournoyer
2019-07-31 15:23   ` Ricardo Wurmus

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.