aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/statusbar/widgets/battery.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/ui/statusbar/widgets/battery.lua')
-rw-r--r--.config/awesome/ui/statusbar/widgets/battery.lua84
1 files changed, 27 insertions, 57 deletions
diff --git a/.config/awesome/ui/statusbar/widgets/battery.lua b/.config/awesome/ui/statusbar/widgets/battery.lua
index b041c3a..dab98ca 100644
--- a/.config/awesome/ui/statusbar/widgets/battery.lua
+++ b/.config/awesome/ui/statusbar/widgets/battery.lua
@@ -1,67 +1,37 @@
-local awful = require "awful"
-local xresources = require "beautiful.xresources"
-local vars = require "misc.vars"
+local qvars = require "quarrel.vars"
local wibox = require "wibox"
-local h = require "misc.helpers"
+local qmath = require "quarrel.math"
+local gcolor = require "gears.color"
+local phosphor = require "assets.phosphor"
-local battery_inner = awful.widget.watch("cat /sys/class/power_supply/BAT0/capacity", 1, function(widget, stdout)
- local icon = ""
- local color = vars.colors.red
+local battery = wibox.widget {
+ widget = wibox.container.place,
+ valign = "center",
+ halign = "center",
+ {
+ widget = wibox.widget.imagebox,
+ image = gcolor.recolor_image(phosphor.battery_warning_vertical_fill, qvars.colors.red),
+ forced_width = qvars.icon_size,
+ forced_height = qvars.icon_size
+ }
+}
- if io.popen("cat /sys/class/power_supply/BAT0/status"):read("*a"):sub(0, -2) == "Charging" then
- icon = ""
- color = vars.colors.green
- widget:set_markup("<span color=\"" .. color .. "\">" .. icon .. "</span>")
+awesome.connect_signal("services::battery", function(capacity, status)
+ if status == "Charging" then
+ battery.widget.image = gcolor.recolor_image(phosphor.battery_charging_vertical_fill, qvars.colors.green)
return
end
- local percent = tonumber(stdout)
-
- if percent <= 5 then
- icon = ""
- color = vars.colors.red
- elseif percent <= 10 then
- icon = ""
- color = vars.colors.red
- elseif percent <= 20 then
- icon = ""
- color = vars.colors.red
- elseif percent <= 30 then
- icon = ""
- color = vars.colors.yellow
- elseif percent <= 40 then
- icon = ""
- color = vars.colors.yellow
- elseif percent <= 50 then
- icon = ""
- color = vars.colors.yellow
- elseif percent <= 60 then
- icon = ""
- color = vars.colors.yellow
- elseif percent <= 70 then
- icon = ""
- color = vars.colors.yellow
- elseif percent <= 80 then
- icon = ""
- color = vars.colors.green
- elseif percent <= 90 then
- icon = ""
- color = vars.colors.green
- elseif percent <= 100 then
- icon = ""
- color = vars.colors.green
- end
-
- widget:set_markup("<span color=\"" .. color .. "\">" .. icon .. "</span>")
-end)
-
-local battery = wibox.widget {
- widget = wibox.container.place,
- battery_inner
-}
+ local icon_data = qmath.step_value(capacity, {
+ { 0, { "empty", "red" } },
+ { 20, { "low", "red" } },
+ { 40, { "medium", "yellow" } },
+ { 60, { "high", "green" } },
+ { 80, { "full", "green" } },
+ { 100 }
+ })
-h.tooltip({ battery }, function()
- return io.popen("cat /sys/class/power_supply/BAT0/capacity"):read("*a"):sub(0, -2) .. "%"
+ battery.widget.image = gcolor.recolor_image(phosphor["battery_vertical_" .. icon_data[1] .. "_fill"], qvars.colors[icon_data[2]])
end)
return battery