Function: doom-modeline-update-battery-status
doom-modeline-update-battery-status is a natively compiled function
defined in doom-modeline-segments.el.
Signature
(doom-modeline-update-battery-status)
Documentation
Update battery status.
Source Code
;; Defined in /nix/store/1lcicrdd2r4b8rkc91nnn74ymk1jl6yd-emacs-packages-deps/share/emacs/site-lisp/elpa/doom-modeline-20260928.1632/doom-modeline-segments.el
(defun doom-modeline-update-battery-status ()
"Update battery status."
(setq doom-modeline--battery-status
(when (and doom-modeline-battery
(bound-and-true-p display-battery-mode))
(let* ((data (and battery-status-function
(funcall battery-status-function)))
(status (cdr (assoc ?L data)))
(charging? (or (string= "AC" status)
(string= "on-line" status)))
(percentage (car (read-from-string (or (cdr (assq ?p data)) "ERR"))))
(valid-percentage? (and (numberp percentage)
(>= percentage 0)
(<= percentage battery-mode-line-limit)))
(face (if valid-percentage?
(cond (charging? 'doom-modeline-battery-charging)
((< percentage battery-load-critical) 'doom-modeline-battery-critical)
((< percentage 25) 'doom-modeline-battery-warning)
((< percentage 95) 'doom-modeline-battery-normal)
(t 'doom-modeline-battery-full))
'doom-modeline-battery-error))
(icon (if valid-percentage?
(cond
((>= percentage 100)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_100"
"nf-md-battery")
"đ" "-" face))
((>= percentage 90)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_90"
"nf-md-battery_90")
"đ" "-" face))
((>= percentage 80)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_80"
"nf-md-battery_80")
"đ" "-" face))
((>= percentage 70)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_70"
"nf-md-battery_70")
"đ" "-" face))
((>= percentage 60)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_60"
"nf-md-battery_60")
"đ" "-" face))
((>= percentage 50)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_50"
"nf-md-battery_50")
"đ" "-" face))
((>= percentage 40)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_40"
"nf-md-battery_40")
"đ" "-" face))
((>= percentage 30)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_30"
"nf-md-battery_30")
"đ" "-" face))
((>= percentage 20)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_20"
"nf-md-battery_20")
"đ" "-" face))
((>= percentage 10)
(doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_10"
"nf-md-battery_10")
"đĒĢ" "-" face))
(t (doom-modeline-battery-icon (if charging?
"nf-md-battery_charging_outline"
"nf-md-battery_outline")
"đĒĢ" "!" face)))
(doom-modeline-battery-icon "nf-md-battery_alert" "â " "N/A" face)))
(text (if valid-percentage? (format "%d%s" percentage "%%") ""))
(help-echo (if (and battery-echo-area-format data valid-percentage?)
(battery-format battery-echo-area-format data)
"Battery status not available")))
(run-hook-with-args 'battery-update-functions data)
(cons (propertize icon 'help-echo help-echo)
(propertize text 'face face 'help-echo help-echo)))))
(when doom-modeline--battery-status
(setq battery-mode-line-string
(substring
(concat
(let* ((status (car doom-modeline--battery-status))
(substr (substring-no-properties status))
(char (string-to-char substr))
(char-p (char-displayable-p char))
(fallback (doom-modeline-battery-icon
"nf-md-battery_alert" "â " "N/A"
'doom-modeline-battery-error)))
(if (or (null char-p)
(eq char-p 'unicode)
(string-empty-p substr))
fallback
substr))
(substring-no-properties (cdr doom-modeline--battery-status)))
0 -1)))
(force-mode-line-update t))