blob: 3ec03553d2ca2d1d8c3e9016fac8cb07e2de07cd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
;;; laptop-battery.el --- Display laptop battery information -*- lexical-binding: t -*-
;; Author: William Carroll <wpcarro@gmail.com>
;;; Commentary:
;; Some wrappers to obtain battery information.
;;
;; To troubleshoot battery consumpton look into the CLI `powertop`.
;;; Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Roadmap
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; TODO: Support functions that work with reporting battery stats.
;; TODO: low-battery-reporting-threshold
;; TODO: charged-battery-reporting-threshold
;; TODO: Format modeline battery information.
;; TODO: Provide better time information in the modeline.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Dependencies
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'battery)
(require 'alist)
(require 'maybe)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Library
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun laptop-battery/available? ()
"Return t if battery information is available."
(maybe/some? battery-status-function))
(defun laptop-battery/percentage ()
"Return the current percentage of the battery."
(->> battery-status-function
funcall
(alist/get 112)))
(defun laptop-battery/print-percentage ()
"Return the current percentage of the battery."
(interactive)
(->> (laptop-battery/percentage)
message))
(defun laptop-battery/display ()
"Display laptop battery percentage in the modeline."
(interactive)
(display-battery-mode 1))
(defun laptop-battery/hide ()
"Hide laptop battery percentage in the modeline."
(interactive)
(display-battery-mode -1))
(provide 'laptop-battery)
;;; laptop-battery.el ends here
|