diff --git a/oni-termux.el b/oni-termux.el new file mode 100644 index 0000000..2afaad6 --- /dev/null +++ b/oni-termux.el @@ -0,0 +1,64 @@ +;;; oni-termux.el --- Termux-specific configuration -*- lexical-binding: t; -*- + +;; Copyright (C) 2019 Tom Willemse + +;; Author: Tom Willemse +;; Keywords: local +;; Version: 2019.0920.193557 + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; Configuration specific to running in Termux. + +;; This configuration shows the battery power in the mode-line, since +;; the devices running Emacs in Termux will most likely always have a +;; battery. + +;;; Code: + +(require 'battery) +(require 'json) + +(defun oni-termux--battery-status () + "Get battery status information using `termux-battery status'. + +The following %-sequences are provided: +%h Health +%p Percentage +%L Plugged +%B Status +%d Temperature" + (let ((info (with-temp-buffer + (call-process "termux-battery-status" nil t) + (goto-char (point-min)) + (json-read)))) + (list + (cons ?h (alist-get 'health info "N/A")) + (cons ?p (number-to-string (alist-get 'percentage info -1))) + (cons ?P (alist-get 'plugged info "N/A")) + (cons ?B (alist-get 'status info "N/A")) + (cons ?t (number-to-string (alist-get 'temperature info -1)))))) + +(setq battery-status-function #'oni-termux--battery-status) + +(setq battery-mode-line-format "%p%%") + +(display-battery-mode) + +;;;###autoload(require 'oni-termux) + +(provide 'oni-termux) +;;; oni-termux.el ends here