From e842d34c9ae3a48a78bbcaa5b9fc58216e1d49a6 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Mon, 7 Oct 2024 13:30:57 -0500 Subject: refactor(i3blocks): move i3blocks to bin dir --- i3blocks/.local/bin/i3blocks-cpu | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 i3blocks/.local/bin/i3blocks-cpu (limited to 'i3blocks/.local/bin/i3blocks-cpu') diff --git a/i3blocks/.local/bin/i3blocks-cpu b/i3blocks/.local/bin/i3blocks-cpu new file mode 100755 index 0000000..ddb1d68 --- /dev/null +++ b/i3blocks/.local/bin/i3blocks-cpu @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +import os +import json + +ICON = "\U000f0ee0" # 󰻠 +BLACK = f"#{os.environ.get("BASE16_COLOR_00_HEX")}" +RED = f"#{os.environ.get("BASE16_COLOR_08_HEX")}" +YELLOW = f"#{os.environ.get("BASE16_COLOR_0A_HEX")}" +AQUA = f"#{os.environ.get("BASE16_COLOR_0C_HEX")}" + + +def main(): + off = json.loads(os.environ.get("values", json.dumps([0 for i in range(10)]))) + + with open("/proc/stat", "r") as f: + val = [int(x) for x in f.readline().strip().split(" ")[2:]] + + if elapsed := sum(val + off): + usage = sum(val[0:3] + val[5:] + off[0:3] + off[5:]) / elapsed + else: + usage = 0 + + output = { + "full_text": " {} {:.0%} ".format(ICON, usage), + "values": [-x for x in val], + } + if usage > 0.9: + output["color"] = BLACK + output["background"] = RED + elif usage > 0.6: + output["color"] = BLACK + output["background"] = YELLOW + elif usage > 0.3: + output["color"] = BLACK + output["background"] = AQUA + + print(json.dumps(output, ensure_ascii=False), flush=True) + + +if __name__ == "__main__": + main() -- cgit v1.2.3-70-g09d2