#!/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))