diff options
| author | streetturtle <streetturtle@gmail.com> | 2021-03-19 20:49:00 -0400 | 
|---|---|---|
| committer | streetturtle <streetturtle@gmail.com> | 2021-03-19 20:49:00 -0400 | 
| commit | 25d9eecfc68df3251dc96008aaa4cd7c81900da6 (patch) | |
| tree | 7f0b6a6c125ea622e099e5b569115b80dcad3753 /experiments/volume/widgets | |
| parent | a37e0a673ee3e6655f3d4be2c5a2f6c832476456 (diff) | |
[volume] BREAKING CHANGE - new widget instead of old ones
Having three widgets for volume led to a problem of code duplication -
same logic was duplicated three times. However when an issue was
discovered and fixed, it was fixed in only one of three widgets.
So I decided to create a volume widget from scratch, adding new
features, such as selecting input/output, better responsiveness,
easily customizable widget ui (bar, text, icon, icon and text, arc).
Should close #199, #198, #185, #182, #47, #122, #183.
Diffstat (limited to 'experiments/volume/widgets')
| -rw-r--r-- | experiments/volume/widgets/arc-widget.lua | 46 | ||||
| -rw-r--r-- | experiments/volume/widgets/horizontal-bar-widget.lua | 58 | ||||
| -rw-r--r-- | experiments/volume/widgets/icon-and-text-widget.lua | 59 | ||||
| -rw-r--r-- | experiments/volume/widgets/icon-widget.lua | 46 | ||||
| -rw-r--r-- | experiments/volume/widgets/vertical-bar-widget.lua | 64 | 
5 files changed, 0 insertions, 273 deletions
diff --git a/experiments/volume/widgets/arc-widget.lua b/experiments/volume/widgets/arc-widget.lua deleted file mode 100644 index b6c9d22..0000000 --- a/experiments/volume/widgets/arc-widget.lua +++ /dev/null @@ -1,46 +0,0 @@ -local wibox = require("wibox") -local beautiful = require('beautiful') - -local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/' - -local widget = {} - -function widget.get_widget(widgets_args) -    local args = widgets_args or {} - -    local thickness = args.thickness or 2 -    local main_color = args.main_color or beautiful.fg_color -    local bg_color = args.bg_color or '#ffffff11' -    local mute_color = args.mute_color or beautiful.fg_urgent -    local size = args.size or 18 - -    return wibox.widget { -        { -            id = "icon", -            image = ICON_DIR .. 'audio-volume-high-symbolic.svg', -            resize = true, -            widget = wibox.widget.imagebox, -        }, -        max_value = 100, -        thickness = thickness, -        start_angle = 4.71238898, -- 2pi*3/4 -        forced_height = size, -        forced_width = size, -        bg = bg_color, -        paddings = 2, -        widget = wibox.container.arcchart, -        set_volume_level = function(self, new_value) -            self.value = new_value -        end, -        mute = function(self) -            self.colors = { mute_color } -        end, -        unmute = function(self) -            self.colors = { main_color } -        end -    } - -end - - -return widget
\ No newline at end of file diff --git a/experiments/volume/widgets/horizontal-bar-widget.lua b/experiments/volume/widgets/horizontal-bar-widget.lua deleted file mode 100644 index 1a1c8a4..0000000 --- a/experiments/volume/widgets/horizontal-bar-widget.lua +++ /dev/null @@ -1,58 +0,0 @@ -local wibox = require("wibox") -local beautiful = require('beautiful') -local gears = require("gears") - -local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/' - -local widget = {} - -function widget.get_widget(widgets_args) -    local args = widgets_args or {} - -    local main_color = args.main_color or beautiful.fg_normal -    local mute_color = args.mute_color or beautiful.fg_urgent -    local bg_color = args.bg_color or '#ffffff11' -    local width = args.width or 50 -    local margins = args.margins or 10 -    local shape = args.shape or 'bar' -    local with_icon = args.with_icon == true and true or false - -    local bar = wibox.widget { -        { -            { -                id = "icon", -                image = ICON_DIR .. 'audio-volume-high-symbolic.svg', -                resize = false, -                widget = wibox.widget.imagebox, -            }, -            valign = 'center', -            visible = with_icon, -            layout = wibox.container.place, -        }, -        { -            id = 'bar', -            max_value = 100, -            forced_width = width, -            color = main_color, -            margins = { top = margins, bottom = margins }, -            background_color = bg_color, -            shape = gears.shape[shape], -            widget = wibox.widget.progressbar, -        }, -        spacing = 4, -        layout = wibox.layout.fixed.horizontal, -        set_volume_level = function(self, new_value) -            self:get_children_by_id('bar')[1]:set_value(tonumber(new_value)) -        end, -        mute = function(self) -            self:get_children_by_id('bar')[1]:set_color(mute_color) -        end, -        unmute = function(self) -            self:get_children_by_id('bar')[1]:set_color(main_color) -        end -    } - -    return bar -end - -return widget diff --git a/experiments/volume/widgets/icon-and-text-widget.lua b/experiments/volume/widgets/icon-and-text-widget.lua deleted file mode 100644 index 0ee8d16..0000000 --- a/experiments/volume/widgets/icon-and-text-widget.lua +++ /dev/null @@ -1,59 +0,0 @@ -local wibox = require("wibox") -local beautiful = require('beautiful') - -local widget = {} - -local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/' - -function widget.get_widget(widgets_args) -    local args = widgets_args or {} - -    local font = args.font or beautiful.font -    local icon_dir = args.icon_dir or ICON_DIR - -    return wibox.widget { -        { -            { -                id = "icon", -                resize = false, -                widget = wibox.widget.imagebox, -            }, -            valign = 'center', -            layout = wibox.container.place -        }, -        { -            id = 'txt', -            font = font, -            widget = wibox.widget.textbox -        }, -        layout = wibox.layout.fixed.horizontal, -        set_volume_level = function(self, new_value) -            self:get_children_by_id('txt')[1]:set_text(new_value) -            local volume_icon_name -            if self.is_muted then -                volume_icon_name = 'audio-volume-muted-symbolic' -            else -                local new_value_num = tonumber(new_value) -                if (new_value_num >= 0 and new_value_num < 33) then -                    volume_icon_name="audio-volume-low-symbolic" -                elseif (new_value_num < 66) then -                    volume_icon_name="audio-volume-medium-symbolic" -                else -                    volume_icon_name="audio-volume-high-symbolic" -                end -            end -            self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg') -        end, -        mute = function(self) -            self.is_muted = true -            self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg') -        end, -        unmute = function(self) -            self.is_muted = false -        end -    } - -end - - -return widget
\ No newline at end of file diff --git a/experiments/volume/widgets/icon-widget.lua b/experiments/volume/widgets/icon-widget.lua deleted file mode 100644 index f2aca26..0000000 --- a/experiments/volume/widgets/icon-widget.lua +++ /dev/null @@ -1,46 +0,0 @@ -local wibox = require("wibox") - -local widget = {} - -local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/' - -function widget.get_widget(widgets_args) -    local args = widgets_args or {} - -    local icon_dir = args.icon_dir or ICON_DIR - -    return wibox.widget { -        { -            id = "icon", -            resize = false, -            widget = wibox.widget.imagebox, -        }, -        valign = 'center', -        layout = wibox.container.place, -        set_volume_level = function(self, new_value) -            local volume_icon_name -            if self.is_muted then -                volume_icon_name = 'audio-volume-muted-symbolic' -            else -                local new_value_num = tonumber(new_value) -                if (new_value_num >= 0 and new_value_num < 33) then -                    volume_icon_name="audio-volume-low-symbolic" -                elseif (new_value_num < 66) then -                    volume_icon_name="audio-volume-medium-symbolic" -                else -                    volume_icon_name="audio-volume-high-symbolic" -                end -            end -            self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg') -        end, -        mute = function(self) -            self.is_muted = true -            self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg') -        end, -        unmute = function(self) -            self.is_muted = false -        end -    } -end - -return widget
\ No newline at end of file diff --git a/experiments/volume/widgets/vertical-bar-widget.lua b/experiments/volume/widgets/vertical-bar-widget.lua deleted file mode 100644 index 82f4b8a..0000000 --- a/experiments/volume/widgets/vertical-bar-widget.lua +++ /dev/null @@ -1,64 +0,0 @@ -local wibox = require("wibox") -local beautiful = require('beautiful') -local gears = require("gears") - -local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/' - -local widget = {} - -function widget.get_widget(widgets_args) -    local args = widgets_args or {} - -    local main_color = args.main_color or beautiful.fg_normal -    local mute_color = args.mute_color or beautiful.fg_urgent -    local bg_color = args.bg_color or '#ffffff11' -    local width = args.width or 10 -    local margins = args.height or 2 -    local shape = args.shape or 'bar' -    local with_icon = args.with_icon == true and true or false - -    local bar = wibox.widget { -        { -            { -                id = "icon", -                image = ICON_DIR .. 'audio-volume-high-symbolic.svg', -                resize = false, -                widget = wibox.widget.imagebox, -            }, -            valign = 'center', -            visible = with_icon, -            layout = wibox.container.place, -        }, -        { -            { -                id = 'bar', -                max_value = 100, -                forced_width = width, -                forced_height = 5, -                margins = { top = margins, bottom = margins }, -                color = main_color, -                background_color = bg_color, -                shape = gears.shape[shape], -                widget = wibox.widget.progressbar, -            }, -            forced_width = width, -            direction = 'east', -            layout = wibox.container.rotate, -        }, -        spacing = 4, -        layout = wibox.layout.fixed.horizontal, -        set_volume_level = function(self, new_value) -            self:get_children_by_id('bar')[1]:set_value(tonumber(new_value)) -        end, -        mute = function(self) -            self:get_children_by_id('bar')[1]:set_color(mute_color) -        end, -        unmute = function(self) -            self:get_children_by_id('bar')[1]:set_color(main_color) -        end -    } - -    return bar -end - -return widget  | 
