diff options
author | Pavel Makhov <pavel.makhov@savoirfairelinux.com> | 2017-01-23 11:01:16 -0500 |
---|---|---|
committer | Pavel Makhov <pavel.makhov@savoirfairelinux.com> | 2017-01-23 11:01:16 -0500 |
commit | 2d2684587d61b294ef1f0c7f1a1d251a0aaf884a (patch) | |
tree | 4f9400b3d7ce328355e43fc262819ea96132d8ac /battery-widget-v4 | |
parent | 130813a6e2ed9e74526a67a44e5829b7b22eb8c2 (diff) |
Move v4 compatible widget in this repo
Diffstat (limited to 'battery-widget-v4')
-rw-r--r-- | battery-widget-v4/battery.lua | 59 |
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 |