summaryrefslogtreecommitdiff
path: root/battery-widget-v4
diff options
context:
space:
mode:
authorPavel Makhov <pavel.makhov@savoirfairelinux.com>2017-01-23 11:01:16 -0500
committerPavel Makhov <pavel.makhov@savoirfairelinux.com>2017-01-23 11:01:16 -0500
commit2d2684587d61b294ef1f0c7f1a1d251a0aaf884a (patch)
tree4f9400b3d7ce328355e43fc262819ea96132d8ac /battery-widget-v4
parent130813a6e2ed9e74526a67a44e5829b7b22eb8c2 (diff)
Move v4 compatible widget in this repo
Diffstat (limited to 'battery-widget-v4')
-rw-r--r--battery-widget-v4/battery.lua59
1 files changed, 59 insertions, 0 deletions
diff --git a/battery-widget-v4/battery.lua b/battery-widget-v4/battery.lua
new file mode 100644
index 0000000..eb467d7
--- /dev/null
+++ b/battery-widget-v4/battery.lua
@@ -0,0 +1,59 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local naughty = require("naughty")
+
+
+batteryIcon = wibox.widget {
+widget = wibox.widget.imagebox
+}
+
+function refresh_icon()
+ awful.spawn.easy_async([[bash -c 'acpi | cut -d, -f 2 | egrep -o "[0-9]{1,3}"']],
+ function(stdout, stderr, reason, exit_code)
+ local batteryType
+ local charge = tonumber(stdout)
+ 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
+ batteryIcon.image = "/usr/share/icons/Arc-Icons/panel/22/" .. batteryType .. ".svg"
+ end)
+end
+
+function show_battery_status()
+ awful.spawn.easy_async([[bash -c 'acpi | cut -d, -f 2,3']],
+ 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
+
+-- timer to refresh icon
+local batteryWidgetTimer = timer({ timeout = 60 })
+batteryWidgetTimer:connect_signal("timeout", function() refresh_icon() end)
+batteryWidgetTimer:start()
+batteryWidgetTimer:emit_signal("timeout")
+
+-- popup with battery info
+batteryIcon:connect_signal("mouse::enter", function() show_battery_status() end) \ No newline at end of file