1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
prezto/themes/twain/charge.py

35 lines
941 B

#!/usr/bin/env python
# coding=UTF-8
""" Prints a battery meter for use in a zsh theme """
import sys
""" Config """
output_length = 10
hide_when_charge_is_above = 95
blank_when_battery_full = True
filled_char, empty_char = u'', u''
""" Read battery charge """
def read_battery_percent ():
""" Reads the battery charge as an integer between 0 and 100,
using 'acpi -b' """
import subprocess, re
process = subprocess.Popen(["acpi", "-b"], stdout=subprocess.PIPE)
output = process.communicate()[0].strip()
return int(re.search("^Battery 0: .+, ([\d]+)\%",output).group(1))
""" Output """
charge = read_battery_percent()
if charge < hide_when_charge_is_above:
filled = int(charge / output_length)
empty = output_length - filled
meter = (filled * filled_char + empty * empty_char).encode('utf-8')
color = 'green'if filled > 6 else 'yellow' if filled > 4 else 'red'
sys.stdout.write("%F{{{}}}{}%f".format(color, meter))