Add battery and memory units for the status bar
This commit is contained in:
parent
d5059ac258
commit
f063883f6c
|
@ -25,10 +25,33 @@
|
||||||
(require 'fg42/statusbar)
|
(require 'fg42/statusbar)
|
||||||
|
|
||||||
|
|
||||||
(defbar-unit battery 30 "B-"
|
(defmacro fg42/percentage-face (value err warn)
|
||||||
(format "B%s" (with-temp-buffer
|
"Return the correct face with repect to VALUE and the given
|
||||||
(insert-file-contents "/sys/class/power_supply/BAT0/capacity")
|
thresholds ERR adn WARN"
|
||||||
(buffer-string))))
|
`(cond ((> ,value ,err) 'error) ((> ,value ,warn) 'warning) (t 'success)))
|
||||||
|
|
||||||
|
(defbar-unit fg42/statusbar-battery 30 "B--"
|
||||||
|
(format "B%s"
|
||||||
|
(string-trim
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert-file-contents "/sys/class/power_supply/BAT0/capacity")
|
||||||
|
(buffer-string)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defbar-unit fg42/statusbar-memory 3 "M--S--"
|
||||||
|
(let* ((struct (string-trim
|
||||||
|
(shell-command-to-string "free -k|tail -n 2|awk '{printf(\"%s,%s,\", $3, $2)}'")))
|
||||||
|
(vals (mapcar #'cl-parse-integer (butlast (split-string struct ","))))
|
||||||
|
;; TODO: Check for division by zero
|
||||||
|
(m (* 100 (/ (float(car vals)) (cadr vals))))
|
||||||
|
;; TODO: Check for division by zero
|
||||||
|
(s (* 100 (/ (float(caddr vals)) (cadddr vals))))
|
||||||
|
(x ))
|
||||||
|
|
||||||
|
(format
|
||||||
|
"M%sS%s"
|
||||||
|
(propertize (format "%02d" m) 'face (fg42/percentage-face m 90 75))
|
||||||
|
(propertize (format "%02d" s) 'face (fg42/percentage-face s 90 75)))))
|
||||||
|
|
||||||
;; The default modeline for FG42 that is compatible with
|
;; The default modeline for FG42 that is compatible with
|
||||||
;; the FG42's status bar only
|
;; the FG42's status bar only
|
||||||
|
@ -40,7 +63,8 @@
|
||||||
|
|
||||||
(list
|
(list
|
||||||
:brief (list
|
:brief (list
|
||||||
'battery
|
'fg42/statusbar-battery
|
||||||
|
'fg42/statusbar-memory
|
||||||
"|" '(buffer-name) "|" '(format-mode-line "%l:%c") "|" '(format-time-string "%m-%d %H:%M"))
|
"|" '(buffer-name) "|" '(format-mode-line "%l:%c") "|" '(format-time-string "%m-%d %H:%M"))
|
||||||
:long " "))
|
:long " "))
|
||||||
;; No GUI
|
;; No GUI
|
||||||
|
|
|
@ -173,10 +173,14 @@ that runs the given BODY at the given INTERVAL."
|
||||||
`(progn
|
`(progn
|
||||||
(defvar ,name ,default)
|
(defvar ,name ,default)
|
||||||
(defvar ,timer-name)
|
(defvar ,timer-name)
|
||||||
(add-hook 'fg42/statusbar-enable-hook
|
(let ((fn (lambda () ,@body)))
|
||||||
(lambda ()
|
(add-hook 'fg42/statusbar-enable-hook
|
||||||
(setq ,timer-name
|
(lambda ()
|
||||||
(run-with-timer 0 ,interval (lambda () ,@body)))))
|
(setq ,timer-name
|
||||||
|
(run-with-timer 0 ,interval
|
||||||
|
(lambda ()
|
||||||
|
(setq ,name (funcall fn))))))))
|
||||||
|
|
||||||
(add-hook 'fg42/statusbar-disable-hook
|
(add-hook 'fg42/statusbar-disable-hook
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(when (timerp ,timer-name)
|
(when (timerp ,timer-name)
|
||||||
|
|
Loading…
Reference in New Issue