diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2024-10-07 13:30:57 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2024-10-07 13:30:57 -0500 |
commit | e842d34c9ae3a48a78bbcaa5b9fc58216e1d49a6 (patch) | |
tree | 9b3b9c8883f5536fddf736a93c29e3dc1dab9446 /i3blocks/.local/bin/i3blocks-cpu | |
parent | 59dcb091288d60e8c2d2e352711b72f4beeb1ddf (diff) |
refactor(i3blocks): move i3blocks to bin dir
Diffstat (limited to 'i3blocks/.local/bin/i3blocks-cpu')
-rwxr-xr-x | i3blocks/.local/bin/i3blocks-cpu | 42 |
1 files changed, 42 insertions, 0 deletions
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() |