我在我的.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