local awful = require("awful") local gears = require("gears") local wibox = require("wibox") local beautiful = require("beautiful") local xresources = require("beautiful.xresources") local dpi = xresources.apply_dpi -- Set colors local active_color = beautiful.battery_bar_active_color or "#5AA3CC" local background_color = beautiful.battery_bar_background_color or "#222222" -- Configuration local update_interval = 30 -- in seconds local battery_bar = wibox.widget{ max_value = 100, value = 50, forced_height = dpi(10), margins = { top = dpi(8), bottom = dpi(8), }, forced_width = dpi(200), shape = gears.shape.rounded_bar, bar_shape = gears.shape.rounded_bar, color = active_color, background_color = background_color, border_width = 0, border_color = beautiful.border_color, widget = wibox.widget.progressbar, } local function update_widget(bat) battery_bar.value = tonumber(bat) end local bat_script = [[ bash -c " upower -i $(upower -e | grep BAT) | grep percentage | awk '{print $2}' "]] awful.widget.watch(bat_script, update_interval, function(widget, stdout) local bat = stdout:gsub("%%", "") update_widget(bat) end) return battery_bar