local backlight = req_rel(..., "util") local widget = {} widget.icon = wibox.widget { id = "icon", image = beautiful.icons.brightness.i, resize = true, widget = wibox.widget.imagebox, } widget.arc = wibox.widget { { widget.icon, top = beautiful.dpi(1), bottom = beautiful.dpi(1), layout = wibox.container.margin, }, max_value = 100, thickness = beautiful.dpi(4), start_angle = 4.71238898, -- 2pi*3/4 --forced_height = beautiful.dpi(16), --forced_width = beautiful.dpi(16), colors = {"#27D4CC", "#00446B"}, bg = "#FFFFFF30", paddings = beautiful.dpi(2), widget = wibox.container.arcchart } widget.widget = wibox.widget { { { -- Right space widget = wibox.widget.separator, color = beautiful.color.transparent, forced_width = beautiful.dpi(3) }, { -- Main indicator. Can be replaced with widget.arc widget.arc, top = beautiful.dpi(2), bottom = beautiful.dpi(2), layout = wibox.container.margin, }, { -- Left space widget = wibox.widget.separator, color = beautiful.color.transparent, forced_width = beautiful.dpi(3) }, layout = wibox.layout.align.horizontal, }, layout = wibox.container.background, } widget.widget:connect_signal("mouse::enter", function(result) widget.widget.bg = beautiful.color.bar.hover_bg end) widget.widget:connect_signal("mouse::leave", function(result) widget.widget.bg = beautiful.color.transparent end) widget.widget:connect_signal("button::press", function(_, _, _, button, mods) -- Scroll up if (button == 4) then backlight.backlight_up(config.backlight.scroll_step) -- Scroll down elseif (button == 5) then backlight.backlight_down(config.backlight.scroll_step) end awesome.emit_signal("module::backlight:popup_show_stay") end ) awesome.connect_signal("module::backlight:update", function(value) widget.arc.value = value if value >= 90 then widget.icon.image = beautiful.icons.brightness.i elseif value >= 80 then widget.icon.image = beautiful.icons.brightness.h elseif value >= 70 then widget.icon.image = beautiful.icons.brightness.g elseif value >= 60 then widget.icon.image = beautiful.icons.brightness.f elseif value >= 50 then widget.icon.image = beautiful.icons.brightness.e elseif value >= 40 then widget.icon.image = beautiful.icons.brightness.d elseif value >= 30 then widget.icon.image = beautiful.icons.brightness.c elseif value >= 20 then widget.icon.image = beautiful.icons.brightness.b elseif value <= 10 then widget.icon.image = beautiful.icons.brightness.a end end ) backlight.watch( 5, function() awesome.emit_signal("module::backlight::update_read") end, widget.widget ) return widget