|
|
|
@ -25,10 +25,33 @@
@@ -25,10 +25,33 @@
|
|
|
|
|
(require 'fg42/statusbar) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defbar-unit battery 30 "B-" |
|
|
|
|
(format "B%s" (with-temp-buffer |
|
|
|
|
(insert-file-contents "/sys/class/power_supply/BAT0/capacity") |
|
|
|
|
(buffer-string)))) |
|
|
|
|
(defmacro fg42/percentage-face (value err warn) |
|
|
|
|
"Return the correct face with repect to VALUE and the given |
|
|
|
|
thresholds ERR adn WARN" |
|
|
|
|
`(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 FG42's status bar only |
|
|
|
@ -40,7 +63,8 @@
@@ -40,7 +63,8 @@
|
|
|
|
|
|
|
|
|
|
(list |
|
|
|
|
:brief (list |
|
|
|
|
'battery |
|
|
|
|
'fg42/statusbar-battery |
|
|
|
|
'fg42/statusbar-memory |
|
|
|
|
"|" '(buffer-name) "|" '(format-mode-line "%l:%c") "|" '(format-time-string "%m-%d %H:%M")) |
|
|
|
|
:long " ")) |
|
|
|
|
;; No GUI |
|
|
|
|