aboutsummaryrefslogtreecommitdiff
path: root/.config/eww/scripts/battery.py
diff options
context:
space:
mode:
authorJustine Smithies <justine@smithies.me.uk>2024-02-06 20:44:09 +0000
committerJustine Smithies <justine@smithies.me.uk>2024-02-06 20:44:09 +0000
commite2add462c0d66120867cdb7181a0d9c413f3e4c1 (patch)
tree4b313161d3300eeb5196d0b49d716cbec2bdc57f /.config/eww/scripts/battery.py
parent7620f87b79f7e8a4cfb6f672094a138518420d7a (diff)
Initial commit of Eww config
Diffstat (limited to '.config/eww/scripts/battery.py')
-rwxr-xr-x.config/eww/scripts/battery.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/.config/eww/scripts/battery.py b/.config/eww/scripts/battery.py
new file mode 100755
index 0000000..79d3471
--- /dev/null
+++ b/.config/eww/scripts/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")