about summary refs log blame commit diff
path: root/users/wpcarro/emacs/.emacs.d/wpc/laptop-battery.el
blob: 91b2e3125001db4e558850a69c811578a608228c (plain) (tree)
1
2
3
4
5
6
                                                                                       
 
                                              

                                                 
                                     






















                                                                                
             





                                                                                
                                   
                                                 
                                        
 
                                   


                                                 
                     
 
                                         

                                                 
                                  

                
                                



                                                      
                             





                                                   
;;; laptop-battery.el --- Display laptop battery information -*- lexical-binding: t -*-

;; Author: William Carroll <wpcarro@gmail.com>
;; Version: 0.0.1
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
;; Package-Requires: ((emacs "25.1"))

;;; 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 'al)
(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
       (al-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