Попробуй это.К сожалению, у меня нет не-ноутбуков, чтобы попробовать его: (
(require 'battery)
(setq have-battery-status-p
(let ((perc-charged (assoc ?p (funcall battery-status-function))))
(and perc-charged
(not (zerop (string-to-number (cdr perc-charged)))))))
(if have-battery-status-p
(display-battery-mode 1))
РЕДАКТИРОВАТЬ
Чтобы сломать его изнутри, (funcall battery-status-function)
возвращает alist , для которого нам нужен элемент 'p' (как символ), так как он содержит процент оставшегося заряда батареи.
Таким образом, perc-charged
будетчто-то вроде nil
, если в списке состояния батареи нет элемента 'p', или (112 . "97")
, если батарея заряжена на 97%, или (я предполагаю) (112 . "N/A")
, если состояние батареи недоступно.
Наконец, если perc-charged
не равно нулю и cdr
этого значения не равно нулю при преобразовании в число (как "N / A" будет при использовании преобразования string-to-number
), мы предполагаембатарея присутствует.
Я привел пример того, что теперь должно быть также полностью рабочим примером.