aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/i3blocks/.local/bin/i3blocks-cpu
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2024-10-07 13:30:57 -0500
committerToby Vincent <tobyv@tobyvin.dev>2024-10-07 13:30:57 -0500
commite842d34c9ae3a48a78bbcaa5b9fc58216e1d49a6 (patch)
tree9b3b9c8883f5536fddf736a93c29e3dc1dab9446 /i3blocks/.local/bin/i3blocks-cpu
parent59dcb091288d60e8c2d2e352711b72f4beeb1ddf (diff)
refactor(i3blocks): move i3blocks to bin dir
Diffstat (limited to 'i3blocks/.local/bin/i3blocks-cpu')
-rwxr-xr-xi3blocks/.local/bin/i3blocks-cpu42
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()