diff options
author | streetturtle <streetturtle@gmail.com> | 2017-01-30 21:38:50 -0500 |
---|---|---|
committer | streetturtle <streetturtle@gmail.com> | 2017-01-30 21:38:50 -0500 |
commit | 2c387ecc1049454aa1d37d093e37e2b8e37aecf3 (patch) | |
tree | 700c11c23686a1ccc2c2e71dd1fcd8677b65809b /battery-widget | |
parent | a079c79ab81a4bc2f7cf7971db6373fefe1e6110 (diff) |
new widgets added
Diffstat (limited to 'battery-widget')
-rw-r--r-- | battery-widget/battery.lua | 61 |
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 |