#!/bin/sh dbus_send() { label=$1 dbus-send --print-reply=literal --system \ --dest=org.freedesktop.UPower \ /org/freedesktop/UPower/devices/battery_BAT0 \ org.freedesktop.DBus.Properties.Get \ string:org.freedesktop.UPower.Device \ string:"${label}" | awk '{print $3}' } perc=$(dbus_send 'Percentage') state=$(dbus_send 'State') if [ "$state" -eq 2 ]; then # Discharging secs=$(dbus_send 'TimeToEmpty') elif [ "$state" -eq 1 ]; then # Charging secs=$(dbus_send 'TimeToFull') fi printf '%s%%%%%2dh%02dm \n' "$perc" $((secs / 3600)) $((secs % 3600 / 60))