Commit 6b38e34a authored by Lars Ingebrigtsen's avatar Lars Ingebrigtsen

Have `M-x battery' list all batteries under GNU/Linux

* lisp/battery.el (battery-upower-device): Remove (bug#25559).
(battery--find-linux-sysfs-batteries): New function.
(battery-status-function, battery-linux-sysfs): Use it to list all
batteries, no matter what they're called.
parent 4982fd95
Pipeline #2934 passed with stage
in 89 minutes and 41 seconds
......@@ -507,6 +507,11 @@ current and the previous or the next line, as before.
* Changes in Specialized Modes and Packages in Emacs 27.1
---
** On GNU/Linux, `M-x battery' will now list all batteries, no matter
what they're named, and the `battery-linux-sysfs-regexp' variable has
been removed.
** The 'list-processes' command now includes port numbers in the
network connection information (in addition to the host name).
......
......@@ -38,19 +38,21 @@
:prefix "battery-"
:group 'hardware)
(defcustom battery-linux-sysfs-regexp "[bB][aA][tT][0-9]?$"
"Regexp for folder names to be searched under
/sys/class/power_supply/ that contain battery information."
:version "26.1"
:type 'regexp
:group 'battery)
(defcustom battery-upower-device "battery_BAT1"
"Upower battery device name."
:version "26.1"
:type 'string
:group 'battery)
(defun battery--find-linux-sysfs-batteries ()
(let ((dirs nil))
(dolist (file (directory-files "/sys/class/power_supply/" t))
(when (and (or (file-directory-p file)
(file-symlink-p file))
(file-exists-p (expand-file-name "capacity" file)))
(push file dirs)))
(nreverse dirs)))
(defcustom battery-status-function
(cond ((and (eq system-type 'gnu/linux)
(file-readable-p "/proc/apm"))
......@@ -60,8 +62,7 @@
#'battery-linux-proc-acpi)
((and (eq system-type 'gnu/linux)
(file-directory-p "/sys/class/power_supply/")
(directory-files "/sys/class/power_supply/" nil
battery-linux-sysfs-regexp))
(battery--find-linux-sysfs-batteries))
#'battery-linux-sysfs)
((and (eq system-type 'berkeley-unix)
(file-executable-p "/usr/sbin/apm"))
......@@ -449,9 +450,7 @@ The following %-sequences are provided:
;; available information together.
(with-temp-buffer
(dolist (dir (ignore-errors
(directory-files
"/sys/class/power_supply/" t
battery-linux-sysfs-regexp)))
(battery--find-linux-sysfs-batteries)))
(erase-buffer)
(ignore-errors (insert-file-contents
(expand-file-name "uevent" dir)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment