dots/.config/awesome/components/statusbar/battery.lua
2023-01-29 10:02:22 +01:00

79 lines
2.2 KiB
Lua

local awful = require "awful"
local xresources = require "beautiful.xresources"
local dpi = xresources.apply_dpi
local vars = require "themes.prismite.vars"
local wibox = require "wibox"
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
}
awful.tooltip {
objects = { battery },
timer_function = function()
return io.popen("cat /sys/class/power_supply/BAT0/capacity"):read("*a"):sub(0, -2) .. "%"
end,
bg = vars.colors.bg,
fg = vars.colors.fg,
border_color = vars.colors.bright.black,
border_width = vars.border_width,
font = vars.font,
shape = vars.shape,
margin_leftright = dpi(6),
margin_topbottom = dpi(6)
}
return battery