* bug#643: Battery update
@ 2008-08-07 16:35 Chong Yidong
0 siblings, 0 replies; 27+ messages in thread
From: Chong Yidong @ 2008-08-07 16:35 UTC (permalink / raw
To: emacs-devel; +Cc: 643, Emre Sahin
The Linux kernel developers have deprecated the longstanding /proc/acpi
interface, which breaks battery.el on recent kernels (bug#643 and
bug#660). Now, the battery information is supposed to come through
sysfs.
Even though it's the feature freeze, I think it's necessary to ensure
that battery.el works at least at a basic level. So, here's a patch
that adds primitive sysfs support for battery.el. It doesn't do as much
as before, because AFAICT the new sysfs interface provides less
information than the old acpi interface (go figure).
It's lightly tested. Could someone try this out and see if it does the
right thing?
*** trunk/lisp/battery.el.~1.46.~ 2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el 2008-08-07 12:34:45.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
((and (eq system-type 'gnu/linux)
(file-directory-p "/proc/acpi/battery"))
'battery-linux-proc-acpi)
+ ((and (eq system-type 'gnu/linux)
+ (file-directory-p "/sys/class/power_supply/")
+ (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 'battery-linux-sysfs)
((and (eq system-type 'darwin)
(condition-case nil
(with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
(defcustom battery-echo-area-format
(cond ((eq battery-status-function 'battery-linux-proc-acpi)
"Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ ((eq battery-status-function 'battery-linux-sysfs)
+ "Power %L, battery %B (%p%% load)")
((eq battery-status-function 'battery-pmset)
"%L power, battery %B (%p%% load, remaining time %t)")
(battery-status-function
***************
*** 276,282 ****
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
--- 282,288 ----
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
"N/A")))))
\f
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+
+ (defun battery-linux-sysfs ()
+ "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+ (let (charging-state
+ (charge-full 0)
+ (charge-now 0)
+ (energy-full 0)
+ (energy-now 0))
+ ;; SysFS provides information about each battery present in the
+ ;; system in a separate subdirectory. We are going to merge the
+ ;; available information together.
+ (with-temp-buffer
+ (dolist (dir (ignore-errors
+ (directory-files
+ "/sys/class/power_supply/" t "BAT[0-9]$")))
+ (erase-buffer)
+ (ignore-errors (insert-file-contents
+ (expand-file-name "uevent" dir)))
+ (when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ (goto-char (point-min))
+ (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ ;; On most multi-battery systems, most of the time only
+ ;; one battery is "charging"/"discharging", the others
+ ;; are "unknown".
+ (member charging-state '("Unknown" "Full" nil))
+ (setq charging-state (match-string 1)))
+ (let (full-string now-string)
+ ;; Energy or charge
+ (cond ((and (re-search-forward
+ "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq charge-full (+ charge-full
+ (string-to-number full-string))
+ charge-now (+ charge-now
+ (string-to-number now-string))))
+ ((and (re-search-forward
+ "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq energy-full (+ energy-full
+ (string-to-number full-string))
+ energy-now (+ energy-now
+ (string-to-number now-string)))))))))
+ (list (cons ?c (cond ((or (> charge-full 0) (> charge-now 0))
+ (number-to-string charge-now))
+ ((or (> energy-full 0) (> energy-now 0))
+ (number-to-string energy-now))
+ (t "N/A")))
+ (cons ?B (or charging-state "N/A"))
+ (cons ?p (cond ((> charge-full 0)
+ (format "%.1f"
+ (/ (* 100 charge-now) (float charge-full))))
+ ((> energy-full 0)
+ (format "%.1f"
+ (/ (* 100 energy-now) (float energy-full))))
+ (t "N/A")))
+ (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ (if (battery-search-for-one-match-in-files
+ "/sys/class/power_supply/AC/online" "1" 0)
+ "AC"
+ "BAT")
+ "N/A")))))
+
+
+ \f
;;; `pmset' interface for Darwin (OS X).
(defun battery-pmset ()
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 16:35 Chong Yidong
@ 2008-08-07 18:09 ` Sven Joachim
2008-08-07 18:09 ` Sven Joachim
` (4 subsequent siblings)
5 siblings, 0 replies; 27+ messages in thread
From: Sven Joachim @ 2008-08-07 18:09 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel
On 2008-08-07 18:35 +0200, Chong Yidong wrote:
> The Linux kernel developers have deprecated the longstanding /proc/acpi
> interface, which breaks battery.el on recent kernels (bug#643 and
> bug#660). Now, the battery information is supposed to come through
> sysfs.
>
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level. So, here's a patch
> that adds primitive sysfs support for battery.el. It doesn't do as much
> as before, because AFAICT the new sysfs interface provides less
> information than the old acpi interface (go figure).
>
> It's lightly tested. Could someone try this out and see if it does the
> right thing?
The results are funny on my laptop (battery full, online):
Power N/A, battery Full at (-34.7% load, remaining time)
Sven
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 16:35 Chong Yidong
` (2 preceding siblings ...)
2008-08-07 18:18 ` Lennart Borgman (gmail)
@ 2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-08 17:56 ` Stefan Monnier
2008-08-08 17:56 ` Stefan Monnier
5 siblings, 0 replies; 27+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-07 18:18 UTC (permalink / raw
To: Chong Yidong, 643; +Cc: Emre Sahin, emacs-devel
Chong Yidong wrote:
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.
Just out of curiosity: Why is it necessary that battery.el works? Is not
this information something that the OS normally gives the user without
Emacs?
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: bug#643: Battery update
2008-08-07 16:35 Chong Yidong
2008-08-07 18:09 ` bug#643: " Sven Joachim
2008-08-07 18:09 ` Sven Joachim
@ 2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-07 18:36 ` Óscar Fuentes
` (5 more replies)
2008-08-07 18:18 ` Lennart Borgman (gmail)
` (2 subsequent siblings)
5 siblings, 6 replies; 27+ messages in thread
From: Lennart Borgman (gmail) @ 2008-08-07 18:18 UTC (permalink / raw
To: Chong Yidong, 643; +Cc: Emre Sahin, emacs-devel
Chong Yidong wrote:
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.
Just out of curiosity: Why is it necessary that battery.el works? Is not
this information something that the OS normally gives the user without
Emacs?
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 18:09 ` Sven Joachim
2008-08-07 18:19 ` Chong Yidong
@ 2008-08-07 18:19 ` Chong Yidong
1 sibling, 0 replies; 27+ messages in thread
From: Chong Yidong @ 2008-08-07 18:19 UTC (permalink / raw
To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel
Sven Joachim <svenjoac@gmx.de> writes:
> The results are funny on my laptop (battery full, online):
>
> Power N/A, battery Full at (-34.7% load, remaining time)
What does
M-: (battery-linux-sysfs)
return?
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: bug#643: Battery update
2008-08-07 18:18 ` Lennart Borgman (gmail)
@ 2008-08-07 18:36 ` Óscar Fuentes
2008-08-07 18:54 ` David De La Harpe Golden
` (4 subsequent siblings)
5 siblings, 0 replies; 27+ messages in thread
From: Óscar Fuentes @ 2008-08-07 18:36 UTC (permalink / raw
To: emacs-devel
"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> Just out of curiosity: Why is it necessary that battery.el works? Is
> not this information something that the OS normally gives the user
> without Emacs?
The OS gives the info, but does not display it.
--
Oscar
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-07 18:36 ` Óscar Fuentes
@ 2008-08-07 18:54 ` David De La Harpe Golden
2008-08-07 18:54 ` David De La Harpe Golden
` (3 subsequent siblings)
5 siblings, 0 replies; 27+ messages in thread
From: David De La Harpe Golden @ 2008-08-07 18:54 UTC (permalink / raw
To: Lennart Borgman (gmail); +Cc: 643, Chong Yidong, Emre Sahin, emacs-devel
Lennart Borgman (gmail) wrote:
> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.
>
> Just out of curiosity: Why is it necessary that battery.el works? Is not
> this information something that the OS normally gives the user without
> Emacs?
>
not if you're running emacs fullscreen I guess, can't see a tray icon
then...
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: bug#643: Battery update
2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-07 18:36 ` Óscar Fuentes
2008-08-07 18:54 ` David De La Harpe Golden
@ 2008-08-07 18:54 ` David De La Harpe Golden
2008-08-07 21:54 ` Emre Sahin
2008-08-07 21:54 ` Emre Sahin
2008-08-10 10:14 ` Yoni Rabkin
` (2 subsequent siblings)
5 siblings, 2 replies; 27+ messages in thread
From: David De La Harpe Golden @ 2008-08-07 18:54 UTC (permalink / raw
To: Lennart Borgman (gmail); +Cc: 643, Chong Yidong, Emre Sahin, emacs-devel
Lennart Borgman (gmail) wrote:
> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.
>
> Just out of curiosity: Why is it necessary that battery.el works? Is not
> this information something that the OS normally gives the user without
> Emacs?
>
not if you're running emacs fullscreen I guess, can't see a tray icon
then...
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 18:19 ` Chong Yidong
2008-08-07 19:11 ` Sven Joachim
@ 2008-08-07 19:11 ` Sven Joachim
1 sibling, 0 replies; 27+ messages in thread
From: Sven Joachim @ 2008-08-07 19:11 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel
On 2008-08-07 20:19 +0200, Chong Yidong wrote:
> Sven Joachim <svenjoac@gmx.de> writes:
>
>> The results are funny on my laptop (battery full, online):
>>
>> Power N/A, battery Full at (-34.7% load, remaining time)
>
> What does
>
> M-: (battery-linux-sysfs)
>
> return?
((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))
Sven
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 19:11 ` Sven Joachim
@ 2008-08-07 19:28 ` Chong Yidong
2008-08-07 19:28 ` Chong Yidong
1 sibling, 0 replies; 27+ messages in thread
From: Chong Yidong @ 2008-08-07 19:28 UTC (permalink / raw
To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel
Sven Joachim <svenjoac@gmx.de> writes:
> On 2008-08-07 20:19 +0200, Chong Yidong wrote:
>
>> Sven Joachim <svenjoac@gmx.de> writes:
>>
>>> The results are funny on my laptop (battery full, online):
>>>
>>> Power N/A, battery Full at (-34.7% load, remaining time)
>>
>> What does
>>
>> M-: (battery-linux-sysfs)
>>
>> return?
>
> ((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))
What about (from the shell)
cat /sys/class/power_supply/BAT0/uevent
?
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 19:28 ` Chong Yidong
2008-08-07 19:45 ` Sven Joachim
@ 2008-08-07 19:45 ` Sven Joachim
1 sibling, 0 replies; 27+ messages in thread
From: Sven Joachim @ 2008-08-07 19:45 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel
On 2008-08-07 21:28 +0200, Chong Yidong wrote:
> What about (from the shell)
>
> cat /sys/class/power_supply/BAT0/uevent
>
> ?
No such file or directory, but here's /sys/class/power_supply/BAT1/uevent:
PHYSDEVPATH=/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2c/PNP0C0A:00
PHYSDEVBUS=acpi
PHYSDEVDRIVER=battery
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Full
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000
POWER_SUPPLY_VOLTAGE_NOW=12444000
POWER_SUPPLY_CURRENT_NOW=0
POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
POWER_SUPPLY_CHARGE_FULL=3985000
POWER_SUPPLY_CHARGE_NOW=3985000
POWER_SUPPLY_MODEL_NAME=GC86503SY90
POWER_SUPPLY_MANUFACTURER=SONY
POWER_SUPPLY_SERIAL_NUMBER=
Sven
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 19:45 ` Sven Joachim
@ 2008-08-07 20:32 ` Chong Yidong
2008-08-07 20:32 ` Chong Yidong
1 sibling, 0 replies; 27+ messages in thread
From: Chong Yidong @ 2008-08-07 20:32 UTC (permalink / raw
To: Sven Joachim; +Cc: 643, Emre Sahin, emacs-devel
Sven Joachim <svenjoac@gmx.de> writes:
>> What about (from the shell)
>>
>> cat /sys/class/power_supply/BAT0/uevent
>
> POWER_SUPPLY_VOLTAGE_NOW=12444000
> POWER_SUPPLY_CURRENT_NOW=0
> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
> POWER_SUPPLY_CHARGE_FULL=3985000
> POWER_SUPPLY_CHARGE_NOW=3985000
> POWER_SUPPLY_MODEL_NAME=GC86503SY90
> POWER_SUPPLY_MANUFACTURER=SONY
> POWER_SUPPLY_SERIAL_NUMBER=
Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
machine). Does the following patch give better results?
*** trunk/lisp/battery.el.~1.46.~ 2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el 2008-08-07 16:31:34.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
((and (eq system-type 'gnu/linux)
(file-directory-p "/proc/acpi/battery"))
'battery-linux-proc-acpi)
+ ((and (eq system-type 'gnu/linux)
+ (file-directory-p "/sys/class/power_supply/")
+ (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 'battery-linux-sysfs)
((and (eq system-type 'darwin)
(condition-case nil
(with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
(defcustom battery-echo-area-format
(cond ((eq battery-status-function 'battery-linux-proc-acpi)
"Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ ((eq battery-status-function 'battery-linux-sysfs)
+ "Power %L, battery %B (%p%% load)")
((eq battery-status-function 'battery-pmset)
"%L power, battery %B (%p%% load, remaining time %t)")
(battery-status-function
***************
*** 276,282 ****
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
--- 282,288 ----
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
"N/A")))))
\f
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+
+ (defun battery-linux-sysfs ()
+ "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+ (let (charging-state
+ (charge-full 0.0)
+ (charge-now 0.0)
+ (energy-full 0.0)
+ (energy-now 0.0))
+ ;; SysFS provides information about each battery present in the
+ ;; system in a separate subdirectory. We are going to merge the
+ ;; available information together.
+ (with-temp-buffer
+ (dolist (dir (ignore-errors
+ (directory-files
+ "/sys/class/power_supply/" t "BAT[0-9]$")))
+ (erase-buffer)
+ (ignore-errors (insert-file-contents
+ (expand-file-name "uevent" dir)))
+ (when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ (goto-char (point-min))
+ (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ ;; On most multi-battery systems, most of the time only
+ ;; one battery is "charging"/"discharging", the others
+ ;; are "unknown".
+ (member charging-state '("Unknown" "Full" nil))
+ (setq charging-state (match-string 1)))
+ (let (full-string now-string)
+ ;; Sysfs may list either charge (mAh) or energy (mWh)
+ (cond ((and (re-search-forward
+ "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq charge-full (+ charge-full
+ (string-to-number full-string))
+ charge-now (+ charge-now
+ (string-to-number now-string))))
+ ((and (re-search-forward
+ "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq energy-full (+ energy-full
+ (string-to-number full-string))
+ energy-now (+ energy-now
+ (string-to-number now-string)))))))))
+ (list (cons ?c (cond ((or (> charge-full 0) (> charge-now 0))
+ (number-to-string charge-now))
+ ((or (> energy-full 0) (> energy-now 0))
+ (number-to-string energy-now))
+ (t "N/A")))
+ (cons ?B (or charging-state "N/A"))
+ (cons ?p (cond ((> charge-full 0)
+ (format "%.1f"
+ (/ (* 100 charge-now) charge-full)))
+ ((> energy-full 0)
+ (format "%.1f"
+ (/ (* 100 energy-now) energy-full)))
+ (t "N/A")))
+ (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ (if (battery-search-for-one-match-in-files
+ "/sys/class/power_supply/AC/online" "1" 0)
+ "AC"
+ "BAT")
+ "N/A")))))
+
+
+ \f
;;; `pmset' interface for Darwin (OS X).
(defun battery-pmset ()
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 18:54 ` David De La Harpe Golden
2008-08-07 21:54 ` Emre Sahin
@ 2008-08-07 21:54 ` Emre Sahin
1 sibling, 0 replies; 27+ messages in thread
From: Emre Sahin @ 2008-08-07 21:54 UTC (permalink / raw
To: David De La Harpe Golden; +Cc: 643, Chong Yidong, emacs-devel
David De La Harpe Golden <david@harpegolden.net> writes:
> Lennart Borgman (gmail) wrote:
>> Chong Yidong wrote:
>>> Even though it's the feature freeze, I think it's necessary to ensure
>>> that battery.el works at least at a basic level.
>>
>> Just out of curiosity: Why is it necessary that battery.el works? Is not
>> this information something that the OS normally gives the user without
>> Emacs?
>>
>
> not if you're running emacs fullscreen I guess, can't see a tray icon
> then...
>
I'm using ratpoison WM and using Emacs in full screen. (I suggest you
to try ratpoison, stumpwm or xmonad like "tiling wm"s and find "taste
of emacs" in their screen estate management. By the way, stumpwm has
its configuration in Common Lisp, and xmonad in Haskell, if that makes
a difference for you.)
There are no icons or bars or anything around. There is nothing except
Emacs' mode line to show battery information, hence battery.el. :)
Best Regards,
Emre
--
I. Emre Sahin @ Ankara, Turkey
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate @ http://cs.bilkent.edu.tr
Blogger, Writer, Poet @ http://emresahin.net
Maybe hears the phone @ +90 532 261 8985
Maybe gtalk (or jabber) @ i.emre.sahin@gmail.com
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: bug#643: Battery update
2008-08-07 18:54 ` David De La Harpe Golden
@ 2008-08-07 21:54 ` Emre Sahin
2008-08-07 21:54 ` Emre Sahin
1 sibling, 0 replies; 27+ messages in thread
From: Emre Sahin @ 2008-08-07 21:54 UTC (permalink / raw
To: David De La Harpe Golden
Cc: 643, Chong Yidong, Lennart Borgman (gmail), emacs-devel
David De La Harpe Golden <david@harpegolden.net> writes:
> Lennart Borgman (gmail) wrote:
>> Chong Yidong wrote:
>>> Even though it's the feature freeze, I think it's necessary to ensure
>>> that battery.el works at least at a basic level.
>>
>> Just out of curiosity: Why is it necessary that battery.el works? Is not
>> this information something that the OS normally gives the user without
>> Emacs?
>>
>
> not if you're running emacs fullscreen I guess, can't see a tray icon
> then...
>
I'm using ratpoison WM and using Emacs in full screen. (I suggest you
to try ratpoison, stumpwm or xmonad like "tiling wm"s and find "taste
of emacs" in their screen estate management. By the way, stumpwm has
its configuration in Common Lisp, and xmonad in Haskell, if that makes
a difference for you.)
There are no icons or bars or anything around. There is nothing except
Emacs' mode line to show battery information, hence battery.el. :)
Best Regards,
Emre
--
I. Emre Sahin @ Ankara, Turkey
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate @ http://cs.bilkent.edu.tr
Blogger, Writer, Poet @ http://emresahin.net
Maybe hears the phone @ +90 532 261 8985
Maybe gtalk (or jabber) @ i.emre.sahin@gmail.com
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 20:32 ` Chong Yidong
@ 2008-08-07 22:24 ` Emre Sahin
2008-08-07 22:24 ` Emre Sahin
2008-08-08 5:50 ` Sven Joachim
2 siblings, 0 replies; 27+ messages in thread
From: Emre Sahin @ 2008-08-07 22:24 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, Sven Joachim, emacs-devel
Chong Yidong <cyd@stupidchicken.com> writes:
> Sven Joachim <svenjoac@gmx.de> writes:
>
>>> What about (from the shell)
>>>
>>> cat /sys/class/power_supply/BAT0/uevent
>>
>> POWER_SUPPLY_VOLTAGE_NOW=12444000
>> POWER_SUPPLY_CURRENT_NOW=0
>> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
>> POWER_SUPPLY_CHARGE_FULL=3985000
>> POWER_SUPPLY_CHARGE_NOW=3985000
>> POWER_SUPPLY_MODEL_NAME=GC86503SY90
>> POWER_SUPPLY_MANUFACTURER=SONY
>> POWER_SUPPLY_SERIAL_NUMBER=
>
> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine). Does the following patch give better results?
Maybe I did something wrong with diff & patch; this is my first
adventure with them in practice. (Yes, really!)
Message is something like:
Loading /home/iesahin/site-lisp/battery.el (source)...done
setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
Emre
--
I. Emre Sahin @ Ankara, Turkey
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate @ http://cs.bilkent.edu.tr
Blogger, Writer, Poet @ http://emresahin.net
Maybe hears the phone @ +90 532 261 8985
Maybe gtalk (or jabber) @ i.emre.sahin@gmail.com
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 22:24 ` Emre Sahin
@ 2008-08-08 0:10 ` Chong Yidong
2008-08-08 0:10 ` Chong Yidong
1 sibling, 0 replies; 27+ messages in thread
From: Chong Yidong @ 2008-08-08 0:10 UTC (permalink / raw
To: Emre Sahin; +Cc: 643, Sven Joachim, emacs-devel
Emre Sahin <mail@emresahin.net> writes:
> Maybe I did something wrong with diff & patch; this is my first
> adventure with them in practice. (Yes, really!)
>
> Message is something like:
>
> Loading /home/iesahin/site-lisp/battery.el (source)...done
> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
No, it was a typo in the patch. Could you replace the line
(if (battery-search-for-one-match-in-files
"/sys/class/power_supply/AC/online" "1" 0)
"AC"
on line 471 of the battery.el, with
(if (battery-search-for-one-match-in-files
(list "/sys/class/power_supply/AC/online") "1" 0)
"AC"
and try again?
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 20:32 ` Chong Yidong
2008-08-07 22:24 ` bug#643: " Emre Sahin
2008-08-07 22:24 ` Emre Sahin
@ 2008-08-08 5:50 ` Sven Joachim
2 siblings, 0 replies; 27+ messages in thread
From: Sven Joachim @ 2008-08-08 5:50 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel
On 2008-08-07 22:32 +0200, Chong Yidong wrote:
> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine). Does the following patch give better results?
Yes, that looks better.
Sven
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-08 0:10 ` Chong Yidong
@ 2008-08-08 5:56 ` Sven Joachim
2008-08-08 13:26 ` Emre Sahin
2008-08-08 13:26 ` Emre Sahin
2 siblings, 0 replies; 27+ messages in thread
From: Sven Joachim @ 2008-08-08 5:56 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel
On 2008-08-08 02:10 +0200, Chong Yidong wrote:
> (if (battery-search-for-one-match-in-files
> (list "/sys/class/power_supply/AC/online") "1" 0)
> "AC"
FWIW, I don't have a /sys/class/power_supply/AC directory, but there is
/sys/class/power_supply/ACAD. Seems the directory has moved somewhere
between kernel 2.6.22 and 2.6.25, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478937.
Sven
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-08 0:10 ` Chong Yidong
2008-08-08 5:56 ` bug#643: " Sven Joachim
@ 2008-08-08 13:26 ` Emre Sahin
2008-08-08 13:26 ` Emre Sahin
2 siblings, 0 replies; 27+ messages in thread
From: Emre Sahin @ 2008-08-08 13:26 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, Sven Joachim, emacs-devel
Chong Yidong <cyd@stupidchicken.com> writes:
> Emre Sahin <mail@emresahin.net> writes:
>
>> Maybe I did something wrong with diff & patch; this is my first
>> adventure with them in practice. (Yes, really!)
>>
>> Message is something like:
>>
>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>
> No, it was a typo in the patch. Could you replace the line
>
> (if (battery-search-for-one-match-in-files
> "/sys/class/power_supply/AC/online" "1" 0)
> "AC"
>
> on line 471 of the battery.el, with
>
> (if (battery-search-for-one-match-in-files
> (list "/sys/class/power_supply/AC/online") "1" 0)
> "AC"
>
> and try again?
This looks OK. It fills %p in battery-mode-line-format and gives
an equal value with "acpi -b".
Thank you. I may try to retrieve other (available) information from sysfs
interface by looking your code. I don't know if Sven has anything to
add about interface though.
I think the interface change is thought for multi-battery systems. If battery.el
should support them, battery.el interface should also change I think,
which is, IMHO, not necessary at the moment.
Regards,
Emre
--
I. Emre Sahin @ Ankara, Turkey
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate @ http://cs.bilkent.edu.tr
Blogger, Writer, Poet @ http://emresahin.net
Maybe hears the phone @ +90 532 261 8985
Maybe gtalk (or jabber) @ i.emre.sahin@gmail.com
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 16:35 Chong Yidong
` (4 preceding siblings ...)
2008-08-08 17:56 ` Stefan Monnier
@ 2008-08-08 17:56 ` Stefan Monnier
5 siblings, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2008-08-08 17:56 UTC (permalink / raw
To: Chong Yidong; +Cc: 643, Emre Sahin, emacs-devel
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level. So, here's a patch
Agreed.
> ! This function works only with the new `/proc/acpi/' format introduced
> ! This function works only with the `/proc/acpi/' format introduced
[...]
> + This function works only with the new `/sys/class/power_supply/BAT'
Given the fix to the docstring for proc-acpi, I think we should try and
avoid making the same mistake. I.e. drop the "new".
Stefan
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-08 17:56 ` Stefan Monnier
@ 2008-08-09 1:00 ` OFFICE ZERO
2008-08-09 14:13 ` OFFICE ZERO
1 sibling, 0 replies; 27+ messages in thread
From: OFFICE ZERO @ 2008-08-09 1:00 UTC (permalink / raw
To: Stefan Monnier, 643
配信不要
----- Original Message -----
From: "Stefan Monnier" <monnier@IRO.UMontreal.CA>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>;
<emacs-devel@gnu.org>
Sent: Saturday, August 09, 2008 2:56 AM
Subject: bug#643: Battery update
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level. So, here's a patch
>
> Agreed.
>
>> ! This function works only with the new `/proc/acpi/' format introduced
>> ! This function works only with the `/proc/acpi/' format introduced
> [...]
>> + This function works only with the new `/sys/class/power_supply/BAT'
>
> Given the fix to the docstring for proc-acpi, I think we should try and
> avoid making the same mistake. I.e. drop the "new".
>
>
> Stefan
>
>
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-08 13:26 ` Emre Sahin
@ 2008-08-09 1:02 ` OFFICE ZERO
2008-08-09 1:07 ` OFFICE ZERO
1 sibling, 0 replies; 27+ messages in thread
From: OFFICE ZERO @ 2008-08-09 1:02 UTC (permalink / raw
To: Emre Sahin, 643
配信不要
----- Original Message -----
From: "Emre Sahin" <i.emre.sahin@gmail.com>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>;
"Sven Joachim" <svenjoac@gmx.de>; <emacs-devel@gnu.org>
Sent: Friday, August 08, 2008 10:26 PM
Subject: bug#643: Battery update
> Chong Yidong <cyd@stupidchicken.com> writes:
>
>> Emre Sahin <mail@emresahin.net> writes:
>>
>>> Maybe I did something wrong with diff & patch; this is my first
>>> adventure with them in practice. (Yes, really!)
>>>
>>> Message is something like:
>>>
>>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>>
>> No, it was a typo in the patch. Could you replace the line
>>
>> (if (battery-search-for-one-match-in-files
>> "/sys/class/power_supply/AC/online" "1" 0)
>> "AC"
>>
>> on line 471 of the battery.el, with
>>
>> (if (battery-search-for-one-match-in-files
>> (list "/sys/class/power_supply/AC/online") "1" 0)
>> "AC"
>>
>> and try again?
>
> This looks OK. It fills %p in battery-mode-line-format and gives
> an equal value with "acpi -b".
>
> Thank you. I may try to retrieve other (available) information from sysfs
> interface by looking your code. I don't know if Sven has anything to
> add about interface though.
>
> I think the interface change is thought for multi-battery systems. If
> battery.el
> should support them, battery.el interface should also change I think,
> which is, IMHO, not necessary at the moment.
>
> Regards,
>
> Emre
>
> --
> I. Emre Sahin @ Ankara, Turkey
> Software Developer & Consultant @ http://ydyazilim.com
> Ph.D. Candidate @ http://cs.bilkent.edu.tr
> Blogger, Writer, Poet @ http://emresahin.net
> Maybe hears the phone @ +90 532 261 8985
> Maybe gtalk (or jabber) @ i.emre.sahin@gmail.com
>
>
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-08 13:26 ` Emre Sahin
2008-08-09 1:02 ` bug#643: " OFFICE ZERO
@ 2008-08-09 1:07 ` OFFICE ZERO
1 sibling, 0 replies; 27+ messages in thread
From: OFFICE ZERO @ 2008-08-09 1:07 UTC (permalink / raw
To: Emre Sahin, 643
配信不要
----- Original Message -----
From: "Emre Sahin" <i.emre.sahin@gmail.com>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>;
"Sven Joachim" <svenjoac@gmx.de>; <emacs-devel@gnu.org>
Sent: Friday, August 08, 2008 10:26 PM
Subject: bug#643: Battery update
> Chong Yidong <cyd@stupidchicken.com> writes:
>
>> Emre Sahin <mail@emresahin.net> writes:
>>
>>> Maybe I did something wrong with diff & patch; this is my first
>>> adventure with them in practice. (Yes, really!)
>>>
>>> Message is something like:
>>>
>>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>>
>> No, it was a typo in the patch. Could you replace the line
>>
>> (if (battery-search-for-one-match-in-files
>> "/sys/class/power_supply/AC/online" "1" 0)
>> "AC"
>>
>> on line 471 of the battery.el, with
>>
>> (if (battery-search-for-one-match-in-files
>> (list "/sys/class/power_supply/AC/online") "1" 0)
>> "AC"
>>
>> and try again?
>
> This looks OK. It fills %p in battery-mode-line-format and gives
> an equal value with "acpi -b".
>
> Thank you. I may try to retrieve other (available) information from sysfs
> interface by looking your code. I don't know if Sven has anything to
> add about interface though.
>
> I think the interface change is thought for multi-battery systems. If
> battery.el
> should support them, battery.el interface should also change I think,
> which is, IMHO, not necessary at the moment.
>
> Regards,
>
> Emre
>
> --
> I. Emre Sahin @ Ankara, Turkey
> Software Developer & Consultant @ http://ydyazilim.com
> Ph.D. Candidate @ http://cs.bilkent.edu.tr
> Blogger, Writer, Poet @ http://emresahin.net
> Maybe hears the phone @ +90 532 261 8985
> Maybe gtalk (or jabber) @ i.emre.sahin@gmail.com
>
>
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-08 17:56 ` Stefan Monnier
2008-08-09 1:00 ` bug#643: " OFFICE ZERO
@ 2008-08-09 14:13 ` OFFICE ZERO
1 sibling, 0 replies; 27+ messages in thread
From: OFFICE ZERO @ 2008-08-09 14:13 UTC (permalink / raw
To: Stefan Monnier, 643
Do'nt send me mail !!!
no tkank you!!
----- Original Message -----
From: "Stefan Monnier" <monnier@IRO.UMontreal.CA>
To: "Chong Yidong" <cyd@stupidchicken.com>
Cc: <643@emacsbugs.donarmstrong.com>; "Emre Sahin" <mail@emresahin.net>;
<emacs-devel@gnu.org>
Sent: Saturday, August 09, 2008 2:56 AM
Subject: bug#643: Battery update
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level. So, here's a patch
>
> Agreed.
>
>> ! This function works only with the new `/proc/acpi/' format introduced
>> ! This function works only with the `/proc/acpi/' format introduced
> [...]
>> + This function works only with the new `/sys/class/power_supply/BAT'
>
> Given the fix to the docstring for proc-acpi, I think we should try and
> avoid making the same mistake. I.e. drop the "new".
>
>
> Stefan
>
>
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: bug#643: Battery update
2008-08-07 18:18 ` Lennart Borgman (gmail)
` (2 preceding siblings ...)
2008-08-07 18:54 ` David De La Harpe Golden
@ 2008-08-10 10:14 ` Yoni Rabkin
2008-08-11 0:10 ` T. V. Raman
2008-08-11 0:10 ` T. V. Raman
5 siblings, 0 replies; 27+ messages in thread
From: Yoni Rabkin @ 2008-08-10 10:14 UTC (permalink / raw
To: emacs-devel
"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.
>
> Just out of curiosity: Why is it necessary that battery.el works? Is
> not this information something that the OS normally gives the user
> without Emacs?
I use Emacs fullscreen under the Ion2 Tiling Window Manager, and it
doesn't have any "bars" and "docks" which are so popular these days. I
also use Emacs without X11 often. For me, battery.el and wireless.el are
the primary sources for me to get that information.
--
"Cut your own wood and it will warm you twice"
^ permalink raw reply [flat|nested] 27+ messages in thread
* bug#643: Battery update
2008-08-07 18:18 ` Lennart Borgman (gmail)
` (3 preceding siblings ...)
2008-08-10 10:14 ` Yoni Rabkin
@ 2008-08-11 0:10 ` T. V. Raman
2008-08-11 0:10 ` T. V. Raman
5 siblings, 0 replies; 27+ messages in thread
From: T. V. Raman @ 2008-08-11 0:10 UTC (permalink / raw
To: lennart.borgman; +Cc: 643, cyd, mail, emacs-devel
Define "OS". The OS is gnu/linux, not gnome or KDE -- those are
user environments. Emacs is also a user environment.
>>>>> "Lennart" == Lennart Borgman (gmail) <lennart.borgman@gmail.com> writes:
Lennart> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's
>> necessary to ensure that battery.el works at least at a
>> basic level.
Lennart>
Lennart> Just out of curiosity: Why is it necessary that
Lennart> battery.el works? Is not this information something
Lennart> that the OS normally gives the user without Emacs?
Lennart>
Lennart>
--
Best Regards,
--raman
Email: raman@users.sf.net
WWW: http://emacspeak.sf.net/raman/
AIM: emacspeak GTalk: tv.raman.tv@gmail.com
PGP: http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman
IRC: irc://irc.freenode.net/#emacs
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: bug#643: Battery update
2008-08-07 18:18 ` Lennart Borgman (gmail)
` (4 preceding siblings ...)
2008-08-11 0:10 ` T. V. Raman
@ 2008-08-11 0:10 ` T. V. Raman
5 siblings, 0 replies; 27+ messages in thread
From: T. V. Raman @ 2008-08-11 0:10 UTC (permalink / raw
To: lennart.borgman; +Cc: 643, cyd, mail, emacs-devel
Define "OS". The OS is gnu/linux, not gnome or KDE -- those are
user environments. Emacs is also a user environment.
>>>>> "Lennart" == Lennart Borgman (gmail) <lennart.borgman@gmail.com> writes:
Lennart> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's
>> necessary to ensure that battery.el works at least at a
>> basic level.
Lennart>
Lennart> Just out of curiosity: Why is it necessary that
Lennart> battery.el works? Is not this information something
Lennart> that the OS normally gives the user without Emacs?
Lennart>
Lennart>
--
Best Regards,
--raman
Email: raman@users.sf.net
WWW: http://emacspeak.sf.net/raman/
AIM: emacspeak GTalk: tv.raman.tv@gmail.com
PGP: http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman
IRC: irc://irc.freenode.net/#emacs
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2008-08-11 0:10 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-07 16:35 bug#643: Battery update Chong Yidong
-- strict thread matches above, loose matches on Subject: below --
2008-08-07 16:35 Chong Yidong
2008-08-07 18:09 ` bug#643: " Sven Joachim
2008-08-07 18:09 ` Sven Joachim
2008-08-07 18:19 ` Chong Yidong
2008-08-07 19:11 ` Sven Joachim
2008-08-07 19:28 ` bug#643: " Chong Yidong
2008-08-07 19:28 ` Chong Yidong
2008-08-07 19:45 ` Sven Joachim
2008-08-07 20:32 ` bug#643: " Chong Yidong
2008-08-07 20:32 ` Chong Yidong
2008-08-07 22:24 ` bug#643: " Emre Sahin
2008-08-07 22:24 ` Emre Sahin
2008-08-08 0:10 ` bug#643: " Chong Yidong
2008-08-08 0:10 ` Chong Yidong
2008-08-08 5:56 ` bug#643: " Sven Joachim
2008-08-08 13:26 ` Emre Sahin
2008-08-08 13:26 ` Emre Sahin
2008-08-09 1:02 ` bug#643: " OFFICE ZERO
2008-08-09 1:07 ` OFFICE ZERO
2008-08-08 5:50 ` Sven Joachim
2008-08-07 19:45 ` Sven Joachim
2008-08-07 19:11 ` Sven Joachim
2008-08-07 18:19 ` Chong Yidong
2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-07 18:36 ` Óscar Fuentes
2008-08-07 18:54 ` David De La Harpe Golden
2008-08-07 18:54 ` David De La Harpe Golden
2008-08-07 21:54 ` Emre Sahin
2008-08-07 21:54 ` Emre Sahin
2008-08-10 10:14 ` Yoni Rabkin
2008-08-11 0:10 ` T. V. Raman
2008-08-11 0:10 ` T. V. Raman
2008-08-07 18:18 ` Lennart Borgman (gmail)
2008-08-08 17:56 ` Stefan Monnier
2008-08-09 1:00 ` bug#643: " OFFICE ZERO
2008-08-09 14:13 ` OFFICE ZERO
2008-08-08 17:56 ` Stefan Monnier
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.