Date created: 2020-1-6
Last updated: 2020-1-6
I currently use XMonad as my window manager on my Dell XPS 15. However I had the issue that when I was working without being plugged in the laptop would frequently automatically shutdown with little warning when the battery was low.
Therefore, I decided to do some googling to see how to get a warning when using a window manager like XMonad and came across a post where a user suggested using cron and osd_cat.
osd_cat is a small program which allows you to display a message in X. It can be installed on Fedora 27 with the following command:
To show a warning when the battery is low I wrote the following short python script:
$ sudo yum install xosd
and saved it as ~/power_warning.py. Then I added the following cron job:
from subprocess import Popen, PIPE with open("/sys/class/power_supply/BAT0/charge_now") as f: charge_now = float(f.read()) with open("/sys/class/power_supply/BAT0/charge_full") as f: charge_full = float(f.read()) percent = 100*charge_now/charge_full if percent < 20: p = Popen(['osd_cat','-A','center','-p','middle','-f','-*-*-bold-*-*-*-36-120-*-*-*-*-*-*','-cred','-s','5'],stdin=PIPE) p.communicate(input="Battery Low!") p.wait()
DISPLAY=:0.0 PATH=/usr/bin * * * * * python ~/power_warning.py