;;; 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