parent
25b11a5fba
commit
3cc1e08c9f
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python
|
||||
# coding=UTF-8
|
||||
""" Prints a battery meter for use in a zsh theme """
|
||||
|
||||
import math, sys
|
||||
|
||||
""" Config """
|
||||
|
||||
output_length = 10
|
||||
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 not(blank_when_battery_full == True and charge == 100):
|
||||
filled = int(math.ceil(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))
|
Loading…
Reference in new issue