local timer = require("gears.timer") local wibox = require("wibox") local function readfile(command) local file = io.open(command) if not file then return nil end local text = file:read('*all') file:close() return text:gsub("^%s*(.-)%s*$", "%1") end local battery_widget = wibox.widget{ markup = 'U00', align = 'center', widget = wibox.widget.textbox } timer = timer({ timeout = 10 }) timer:connect_signal("timeout", function() update() end) timer:start() function update() local percent = readfile("/sys/class/power_supply/BAT1/capacity") local status = readfile("/sys/class/power_supply/BAT1/status") if status == "Charging" then prefix = "C" elseif status == "Discharging" then prefix = "D" else prefix = "F" end battery_widget:set_markup(prefix .. percent) end update() return wibox.container.margin(battery_widget, 4)