我在我的.emacs中有这样的设置,如 (display-battery-mode 1)
。它在模式行上显示我的电池状态。这可以帮助我,当我在全屏笔记本电脑上。但是当我在桌面上工作时,它会变得很难看[N/A%][N/A C]
。emacs,它是在笔记本电脑上还是在桌面上运行?
所以我想只有在笔记本电脑上工作时才能使用它。
像
(if OnLaptop
(display-battery-mode 1))
感谢。
UPDATE: 它们都运行的是Linux(Ubuntu的)
我在我的.emacs中有这样的设置,如 (display-battery-mode 1)
。它在模式行上显示我的电池状态。这可以帮助我,当我在全屏笔记本电脑上。但是当我在桌面上工作时,它会变得很难看[N/A%][N/A C]
。emacs,它是在笔记本电脑上还是在桌面上运行?
所以我想只有在笔记本电脑上工作时才能使用它。
像
(if OnLaptop
(display-battery-mode 1))
感谢。
UPDATE: 它们都运行的是Linux(Ubuntu的)
我会使用battery
包的内部来确定电池信息是否可用。这段代码应该为你做的伎俩:
(require 'battery)
(when (and battery-status-function
(not (string-match-p "N/A"
(battery-format "%B"
(funcall battery-status-function)))))
(display-battery-mode 1))
你还没有说什么操作系统,他们俩都上运行。我会建议做一些与主机名关键的东西。无论是通过getenv函数(虽然不是所有发行版出口主机名)或通过类似
(with-output-to-string
(call-process "/bin/hostname" nil standard-output nil))
如果你是在UNIX虽然,我会考虑类似的东西在你的.bashrc加入“出口LAPTOP = 1”并检查这一点。
我想不出一种直截了当的方式,但我认为你可以偷看/proc
中的一些文件并作出有根据的猜测。如果你有一台笔记本电脑和一台台式机来区分,应该有一些你可以用CPU创建的签名。
谢谢,我看到battery.el也在研究'/ proc'和'/ sys'。我会尝试编写一个函数来检查与battery.el中相同的方法。谢谢你对我的另一个问题的回答。我试图让gnus工作,我从.gnus中拿了一些函数。 – kindahero 2011-04-06 09:35:55
如果这对你有用,习惯于“接受”答案。 – 2011-04-06 10:08:39
试试这个。不幸的是,我没有任何非笔记本电脑尝试一下在:(
(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'el如果电池电量97%已充电,或者(我猜测)(112 . "N/A")
如果电池状态不可用,则为(112 . "97")
。
最后,如果perc-charged
是非零并且该值的cdr
当转换为一个数字(如“N/A”使用string-to-number
转换时会)是非零的,我们假设一个电池存在。
我已经充实了这个例子,现在应该是一个完全有效的例子。
我用
;; If not on AC power line, then display battery status on the mode line
(and (require 'battery nil t)
(functionp battery-status-function)
(or (equal (cdr (assoc ?L (funcall battery-status-function))) "on-line")
(display-battery-mode 1)))
我用:
;; load these only if using GUI emacs
(when (display-graphic-p)
很好的选择知道,虽然在这种情况下它不是真正想要的答案,因为我在这两种情况下都使用带有X的emacs。 – kindahero 2011-05-02 09:50:34
谢谢..干净和工作..! – kindahero 2011-04-07 03:27:09