dots/.config/awesome/ui/statusbar/widgets/battery.lua

68 lines
1.9 KiB
Lua

local awful = require "awful"
local xresources = require "beautiful.xresources"
local vars = require "misc.vars"
local wibox = require "wibox"
local h = require "misc.helpers"
local battery_inner = awful.widget.watch("cat /sys/class/power_supply/BAT0/capacity", 1, function(widget, stdout)
local icon = ""
local color = vars.colors.red
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>")
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
}
h.tooltip({ battery }, function()
return io.popen("cat /sys/class/power_supply/BAT0/capacity"):read("*a"):sub(0, -2) .. "%"
end)
return battery