#!/usr/bin/env python3 def read_file(path): try: with open(path, "r") as f: return f.read().strip() except: return None def get_battery_info(): capacity = read_file("/sys/class/power_supply/BAT1/capacity") status = read_file("/sys/class/power_supply/BAT1/status") ac_online = read_file("/sys/class/power_supply/ACAD/online") try: percent = int(capacity) except (TypeError, ValueError): percent = None charging = (status == "Charging") or (ac_online == "1") return charging, percent def print_symbol(): charging, percent = get_battery_info() if percent is None: print("[?]") return if charging and percent >= 90: print("[++]") elif charging and percent < 30: print("[-+]") elif charging: print("[+]") elif not charging and percent < 30: print("[--]") else: print("[-]") if __name__ == "__main__": print_symbol()