When I'm running X, I usually monitor battery charge with [conky][],
but I wanted a script to allow quick status checks from the command
-line.
+line. You can dig into `/sys/class/power_supply/` if you like, but
+the [acpi client][] (`sys-power/acpi`) provides a nicer interface:
- $ bat.sh
- Full 4400000/4400000 (100.0%)
+ $ acpi -b
+ Battery 0: Discharging, 99%, 05:06:14 remaining
[conky]: http://conky.sourceforge.net/
+[acpi]: http://sourceforge.net/projects/acpiclient/
[[!tag tags/bash]]
[[!tag tags/programming]]
+++ /dev/null
-#!/bin/bash
-#
-# Print battery status/percentage
-#
-# Copyright (C) 2010 W. Trevor King <wking@drexel.edu>
-#
-# 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 2 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, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-for i in $(seq 0 9); do
- BAT="BAT${i}"
- SYSPATH="/sys/class/power_supply/$BAT"
- if [ -d "${SYSPATH}" ]; then
- break
- fi
-done
-
-if [ ! -d "${SYSPATH}" ]; then
- echo "No battery found in $(dirname "${SYSPATH}")"
- exit 1
-fi
-
-STATUS=$(cat "$SYSPATH/status")
-CAPACITY=$(cat "$SYSPATH/charge_full")
-LEVEL=$(cat "$SYSPATH/charge_now")
-PERCENT=$(python -c "print($LEVEL * 100. / $CAPACITY)")
-
-echo -e "$BAT\t$STATUS\t$LEVEL/$CAPACITY ($PERCENT%)"