diff options
Diffstat (limited to '.config/awesome/ui/statusbar/panel/widgets/displays.lua')
-rw-r--r-- | .config/awesome/ui/statusbar/panel/widgets/displays.lua | 78 |
1 files changed, 28 insertions, 50 deletions
diff --git a/.config/awesome/ui/statusbar/panel/widgets/displays.lua b/.config/awesome/ui/statusbar/panel/widgets/displays.lua index cd05253..de15bd5 100644 --- a/.config/awesome/ui/statusbar/panel/widgets/displays.lua +++ b/.config/awesome/ui/statusbar/panel/widgets/displays.lua @@ -1,9 +1,8 @@ +local phosphor = require "assets.phosphor" local qmath = require "quarrel.math" -local qvars = require "quarrel.vars" local qui = require "quarrel.ui" +local qvars = require "quarrel.vars" local wibox = require "wibox" -local phosphor = require "assets.phosphor" -local gcolor = require "gears.color" local function create_display(icon, color) return wibox.widget(qui.styled { @@ -24,13 +23,7 @@ local function create_display(icon, color) forced_width = qvars.element_size * 4, { widget = wibox.container.place, - { - widget = wibox.widget.imagebox, - image = icon, - forced_height = qvars.char_height, - forced_width = qvars.char_height, - id = "icon" - } + qui.icon(icon, color, { id = "icon" }) }, id = "indicator" }, @@ -50,55 +43,40 @@ local function create_display(icon, color) }) end -local d_battery = create_display(gcolor.recolor_image(phosphor.battery_vertical_warning_fill, qvars.colors.fg), qvars.colors.red) - -awesome.connect_signal("services::battery", function(capacity, status) - local icon_data = status == "Charging" and { "charging", "green" } or qmath.step_value(capacity, { - { 0, { "empty", "red" } }, - { 20, { "low", "red" } }, - { 40, { "medium", "yellow" } }, - { 60, { "high", "green" } }, - { 80, { "full", "green" } }, - { 100 } - }) +local d_audio = create_display(phosphor.speaker_simple_high_fill, qvars.colors.fg) +awesome.connect_signal("services::audio", function(volume) + if not volume then + return + end + d_audio:get_children_by_id("indicator")[1].value = math.min(volume, 100) + d_audio:get_children_by_id("text")[1].text = volume .. "%" +end) +awesome.connect_signal("services::audio::icon", function(icon, color) + d_audio:get_children_by_id("indicator")[1].color = color + d_audio:get_children_by_id("icon")[1].image = icon + d_audio:get_children_by_id("icon")[1].stylesheet = qui.recolor(color) +end) - d_battery:get_children_by_id("indicator")[1].color = qvars.colors[icon_data[2]] +local d_battery = create_display(phosphor.battery_vertical_warning_fill, qvars.colors.red) +awesome.connect_signal("services::battery", function(capacity) d_battery:get_children_by_id("indicator")[1].value = capacity - d_battery:get_children_by_id("icon")[1].image = gcolor.recolor_image(phosphor["battery_vertical_" .. icon_data[1] .. "_fill"], qvars.colors[icon_data[2]]) - d_battery:get_children_by_id("text")[1].text = capacity .. "%" end) - -local d_volume = create_display(gcolor.recolor_image(phosphor.speaker_simple_high_fill, qvars.colors.fg), qvars.colors.fg) - -awesome.connect_signal("services::audio", function(volume, muted) - d_volume:get_children_by_id("indicator")[1].value = math.min(volume, 100) - d_volume:get_children_by_id("text")[1].text = volume .. "%" - - if muted then - d_volume:get_children_by_id("icon")[1].image = gcolor.recolor_image(phosphor["speaker_simple_x_fill"], qvars.colors.red) - return - end - - local icon_data = qmath.step_value(volume, { - { 0, "slash" }, - { 25, "none" }, - { 50, "low" }, - { 75, "high" }, - { 100 } - }) - - d_volume:get_children_by_id("icon")[1].image = gcolor.recolor_image(phosphor["speaker_simple_" .. icon_data .. "_fill"], qvars.colors.fg) +awesome.connect_signal("services::battery::icon", function(icon, color) + d_battery:get_children_by_id("indicator")[1].color = color + d_battery:get_children_by_id("icon")[1].image = icon + d_battery:get_children_by_id("icon")[1].stylesheet = qui.recolor(color) end) -local d_brightness = create_display(gcolor.recolor_image(phosphor.sun_fill, qvars.colors.fg), qvars.colors.fg) - +local d_brightness = create_display(phosphor.sun_fill, qvars.colors.fg) awesome.connect_signal("services::brightness", function(brightness) brightness = math.floor(qmath.translate_range(brightness, 0, 255, 0, 100)) - d_brightness:get_children_by_id("indicator")[1].value = brightness - d_brightness:get_children_by_id("text")[1].text = brightness .. "%" end) +awesome.connect_signal("services::brightness::icon", function(icon, color) + d_brightness:get_children_by_id("icon")[1].image = icon + d_brightness:get_children_by_id("icon")[1].stylesheet = qui.recolor(color) +end) -return { battery = d_battery, volume = d_volume, brightness = d_brightness } +return { audio = d_audio, battery = d_battery, brightness = d_brightness } |