summaryrefslogtreecommitdiff
path: root/battery-widget
diff options
context:
space:
mode:
authorstreetturtle <streetturtle@gmail.com>2017-01-30 21:38:50 -0500
committerstreetturtle <streetturtle@gmail.com>2017-01-30 21:40:01 -0500
commitc4826fd21340d34e3592b0c8ca24fc068e52c6ef (patch)
treedbbc8fd3df693cfc57cbc1ff5246164f8fc41c01 /battery-widget
parenta079c79ab81a4bc2f7cf7971db6373fefe1e6110 (diff)
new widgets added
Diffstat (limited to 'battery-widget')
-rw-r--r--battery-widget/battery.lua61
1 files changed, 61 insertions, 0 deletions
diff --git a/battery-widget/battery.lua b/battery-widget/battery.lua
new file mode 100644
index 0000000..14fef67
--- /dev/null
+++ b/battery-widget/battery.lua
@@ -0,0 +1,61 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local naughty = require("naughty")
+local watch = require("awful.widget.watch")
+
+batteryIcon = wibox.widget { widget = wibox.widget.imagebox }
+
+-- acpi sample outputs
+-- Battery 0: Discharging, 75%, 01:51:38 remaining
+-- Battery 0: Charging, 53%, 00:57:43 until charged
+
+local path_to_icons = "/usr/share/icons/Arc-Icons/panel/22/"
+
+watch(
+ "acpi", 10,
+ function(widget, stdout, stderr, exitreason, exitcode)
+ local batteryType
+ local _, status, charge, time = string.match(stdout, '(.+): (%a+), (%d%d)%%, (.+)')
+ charge = tonumber(charge)
+ if (charge >= 0 and charge < 20) then
+ batteryType="battery-empty"
+ show_battery_warning()
+ elseif (charge >= 20 and charge < 40) then batteryType="battery-caution"
+ elseif (charge >= 40 and charge < 60) then batteryType="battery-low"
+ elseif (charge >= 60 and charge < 80) then batteryType="battery-good"
+ elseif (charge >= 80 and charge <= 100) then batteryType="battery-full"
+ end
+ if status == 'Charging' then
+ batteryType = batteryType .. '-charging'
+ end
+ batteryIcon.image = path_to_icons .. batteryType .. ".svg"
+ end
+)
+
+function show_battery_status()
+ awful.spawn.easy_async([[bash -c 'acpi']],
+ function(stdout, stderr, reason, exit_code)
+ naughty.notify{
+ text = stdout,
+ title = "Battery status",
+ timeout = 5, hover_timeout = 0.5,
+ width = 200,
+ }
+ end
+ )
+end
+
+function show_battery_warning()
+ naughty.notify{
+ text = "Huston, we have a problem",
+ title = "Battery is dying",
+ timeout = 5, hover_timeout = 0.5,
+ position = "bottom_right",
+ bg = "#F06060",
+ fg = "#EEE9EF",
+ width = 200,
+}
+end
+
+-- popup with battery info
+batteryIcon:connect_signal("mouse::enter", function() show_battery_status() end) \ No newline at end of file