help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Writing a Lisp to show the capacity of the battery of the laptop


From: Le Wang
Subject: Re: Writing a Lisp to show the capacity of the battery of the laptop
Date: Tue, 22 Feb 2011 23:13:24 +0800

Your Emacs probably came with "Emacs Lisp Intro" C-hi.  That's a good place to start.

On Mon, Feb 21, 2011 at 10:46 PM, Thomas Dean <address@hidden> wrote:

Hi,

I'm using Archlinux. I want to write a lisp to show the remaining
capacity of the battery of the laptop. It is expected to work like
this:

1. Read from /proc/acpi/battery/BAT0/state and obtain the remaining
capacity of the battery.
2. Read from /proc/acpi/battery/BAT0/info and obtain the full capacity
of the battery.
3. By calculating remaining / full, get the percentage and print it.

I writing the following lisp but it seems that it doesn't work.

;--------------------------------LISP---------------------------------

; get remaining capacity
(shell-command
 "cat /proc/acpi/battery/BAT0/state | grep \"remaining capacity\" | sed \"s/^[a-z][a-z: ]*\([0-9][0-9]*\).*$/\1/g\""
 "td-battery-temp-buffer")
(set-buffer "td-battery-temp-buffer")
(setq td-battery-full (string-to-number (buffer-string)))
(erase-buffer)

; get full capacity
(shell-command
 "cat /proc/acpi/battery/BAT0/info | grep \"last full capacity\" | sed \"s/^[a-z][a-z: ]*\([0-9][0-9]*\).*$/\1/g\""
 "td-battery-temp-buffer")
(setq td-battery-full (string-to-number (buffer-string)))

; calculate percentage
(message (concat "Remaining Capacity: " (number-to-string td-battery-remaining)
                "\nFull Capacity: " (number-to-string td-battery-full)))

; kill temporary buffer
(set-buffer-modified-p nil)
(kill-buffer)

;----------------------LISP END-------------------------------

I'm new to lisp :-) So it maybe looks ugly.

Could you please show me a good lisp that can finish this task?

Thomas

--




--
Le

reply via email to

[Prev in Thread] Current Thread [Next in Thread]