aboutsummaryrefslogtreecommitdiff
path: root/.config/qtile/statusbar/battery.py
diff options
context:
space:
mode:
authorJustine Smithies <justine@smithies.me.uk>2023-08-22 19:46:15 +0100
committerJustine Smithies <justine@smithies.me.uk>2023-08-22 19:46:15 +0100
commit6aaea9cf4b283d41016e60735f52c8feb3cd0c9e (patch)
treeffc170bb7f267247b60908ac9125fcc02175afd9 /.config/qtile/statusbar/battery.py
parent86c0c3694c93025dfec23f27266905c12f446a4e (diff)
Initial commit
Diffstat (limited to '.config/qtile/statusbar/battery.py')
-rwxr-xr-x.config/qtile/statusbar/battery.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/.config/qtile/statusbar/battery.py b/.config/qtile/statusbar/battery.py
new file mode 100755
index 0000000..a4fa33a
--- /dev/null
+++ b/.config/qtile/statusbar/battery.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python3
+
+import psutil
+import argparse
+import subprocess
+
+
+def secs2hours(secs):
+ mm, ss = divmod(secs, 60)
+ hh, mm = divmod(mm, 60)
+ return "%d:%02d:%02d" % (hh, mm, ss)
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--c',
+ choices=('status', 'left-click', 'middle-click', 'right-click'),
+ dest='command',
+ default='status',
+ help='Allowed values are status, left-click, middle-click and right-click'
+ )
+args = parser.parse_args()
+
+battery = psutil.sensors_battery()
+icon = ""
+percent = int(battery.percent)
+time_left = battery.secsleft
+isPlugged = battery.power_plugged
+remaining = secs2hours(time_left)
+
+if args.command == "status":
+ if isPlugged:
+ if percent == 100:
+ icon = "󰂅"
+ elif percent > 89 and percent < 100:
+ icon = "󰂋"
+ elif percent > 79 and percent < 90:
+ icon = "󰂊"
+ elif percent > 69 and percent < 80:
+ icon = "󰢞"
+ elif percent > 59 and percent < 70:
+ icon = "󰂉"
+ elif percent > 49 and percent < 60:
+ icon = "󰢝"
+ elif percent > 39 and percent < 50:
+ icon = "󰂈"
+ elif percent > 29 and percent < 40:
+ icon = "󰂇"
+ elif percent > 19 and percent < 30:
+ icon = "󰂆"
+ elif percent > 9 and percent < 20:
+ icon = "󰢜"
+ elif percent > 0 and percent < 10:
+ icon = "󰢟"
+ message = str(percent) + "%"
+ print(icon, message, end="")
+ else:
+ if percent == 100:
+ icon = "󰁹"
+ elif percent > 89 and percent < 100:
+ icon = "󰂂"
+ elif percent > 79 and percent < 90:
+ icon = "󰂁"
+ elif percent > 69 and percent < 80:
+ icon = "󰂀"
+ elif percent > 59 and percent < 70:
+ icon = "󰁿"
+ elif percent > 49 and percent < 60:
+ icon = "󰁾"
+ elif percent > 39 and percent < 50:
+ icon = "󰁽"
+ elif percent > 29 and percent < 40:
+ icon = "󰁼"
+ elif percent > 19 and percent < 30:
+ icon = "󰁻"
+ elif percent > 9 and percent < 20:
+ icon = "󰁺"
+ elif percent > 0 and percent < 10:
+ icon = "󰂎"
+ message = str(percent) + "%"
+ print(icon, message, end="")
+if args.command == "left-click":
+ if not isPlugged:
+ subprocess.call(["notify-send", "-r", "55555", "-u", "normal", "Est remaining time left: " + remaining])
+ else:
+ subprocess.call(["notify-send", "-r", "55555", "-u", "normal", str(percent) + "% Charged"])
+if args.command == "middle-click":
+ print("Middle click")
+if args.command == "right-click":
+ print("Right click")