Found a nice battery monitoring app -
juiced battery monitor designed for minimal window managersNice little app, needs libnotify (should be installed by default) and libnotify-dev to compile. Like all things from the suckless crowd, edit the config.def.h file - basically select the thresholds you want, and the command to execute when battery is low (dangercmd[])
here is mine -
/* See LICENSE file for copyright and license details. */
/* battery to check */
static const char battery[] = "BAT0";
/* how often to check */
static const unsigned int repeat = 60;
/* order should be danger < critical < warning; numbers in percent; check is <= */
static const signed int warning = 20;
static const signed int critical = 10;
static const signed int danger = 5;
/* what command to run if battery is under "danger" value */
static const char dangercmd[] = "sudo zzz";
Extremely low on system resources:
632.0 KiB + 139.5 KiB = 771.5 KiB juiced
Sends a nice warning to desktop:

Tried it with dwm, spectrwm, i3, xmonad, fvwm - always worked as advertised.