summaryrefslogtreecommitdiff
path: root/experiments/volume/widgets
diff options
context:
space:
mode:
authorstreetturtle <streetturtle@gmail.com>2020-12-14 22:33:56 -0500
committerstreetturtle <streetturtle@gmail.com>2020-12-14 22:33:56 -0500
commitbaa9177b7009690d7a47487a2fbb80ae4077b818 (patch)
tree6a3234085cfac5ead0d41b660d73754201f4180b /experiments/volume/widgets
parentc319203fc9c4df2e6e43796bf0925d22b3593d66 (diff)
ultimate volume widget improvements
Diffstat (limited to 'experiments/volume/widgets')
-rw-r--r--experiments/volume/widgets/arc-widget.lua21
-rw-r--r--experiments/volume/widgets/horizontal-bar-widget.lua58
-rw-r--r--experiments/volume/widgets/icon-and-text-widget.lua21
-rw-r--r--experiments/volume/widgets/icon-widget.lua13
-rw-r--r--experiments/volume/widgets/vertical-bar-widget.lua64
5 files changed, 157 insertions, 20 deletions
diff --git a/experiments/volume/widgets/arc-widget.lua b/experiments/volume/widgets/arc-widget.lua
index d7a3b1f..b6c9d22 100644
--- a/experiments/volume/widgets/arc-widget.lua
+++ b/experiments/volume/widgets/arc-widget.lua
@@ -5,7 +5,14 @@ local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/exper
local widget = {}
-function widget.get_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 {
{
@@ -15,21 +22,21 @@ function widget.get_widget()
widget = wibox.widget.imagebox,
},
max_value = 100,
- thickness = 2,
+ thickness = thickness,
start_angle = 4.71238898, -- 2pi*3/4
- forced_height = 18,
- forced_width = 18,
- bg = '#ffffff11',
+ 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 = {'#BF616A'}
+ self.colors = { mute_color }
end,
unmute = function(self)
- self.colors = {beautiful.fg_color}
+ self.colors = { main_color }
end
}
diff --git a/experiments/volume/widgets/horizontal-bar-widget.lua b/experiments/volume/widgets/horizontal-bar-widget.lua
new file mode 100644
index 0000000..865fed6
--- /dev/null
+++ b/experiments/volume/widgets/horizontal-bar-widget.lua
@@ -0,0 +1,58 @@
+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.height 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
index 6ba6979..74044fb 100644
--- a/experiments/volume/widgets/icon-and-text-widget.lua
+++ b/experiments/volume/widgets/icon-and-text-widget.lua
@@ -1,10 +1,15 @@
local wibox = require("wibox")
+local beautiful = require('beautiful')
local widget = {}
-local WIDGET_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/'
+local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/'
-function widget.get_widget()
+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 {
{
@@ -18,15 +23,15 @@ function widget.get_widget()
},
{
id = 'txt',
+ font = font,
widget = wibox.widget.textbox
},
layout = wibox.layout.fixed.horizontal,
- is_muted = true,
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.svg'
+ 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
@@ -37,16 +42,16 @@ function widget.get_widget()
volume_icon_name="audio-volume-high-symbolic"
end
end
- self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. volume_icon_name .. '.svg')
+ self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg')
end,
mute = function(self)
+ print("called")
self.is_muted = true
- self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. 'audio-volume-muted-symbolic.svg')
+ 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
}
end
diff --git a/experiments/volume/widgets/icon-widget.lua b/experiments/volume/widgets/icon-widget.lua
index ac4122c..f2aca26 100644
--- a/experiments/volume/widgets/icon-widget.lua
+++ b/experiments/volume/widgets/icon-widget.lua
@@ -2,9 +2,12 @@ local wibox = require("wibox")
local widget = {}
-local WIDGET_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/'
+local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/'
-function widget.get_widget()
+function widget.get_widget(widgets_args)
+ local args = widgets_args or {}
+
+ local icon_dir = args.icon_dir or ICON_DIR
return wibox.widget {
{
@@ -17,7 +20,7 @@ function widget.get_widget()
set_volume_level = function(self, new_value)
local volume_icon_name
if self.is_muted then
- volume_icon_name = 'audio-volume-muted-symbolic.svg'
+ 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
@@ -28,11 +31,11 @@ function widget.get_widget()
volume_icon_name="audio-volume-high-symbolic"
end
end
- self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. volume_icon_name .. '.svg')
+ 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(WIDGET_DIR .. 'audio-volume-muted-symbolic.svg')
+ self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg')
end,
unmute = function(self)
self.is_muted = false
diff --git a/experiments/volume/widgets/vertical-bar-widget.lua b/experiments/volume/widgets/vertical-bar-widget.lua
new file mode 100644
index 0000000..82f4b8a
--- /dev/null
+++ b/experiments/volume/widgets/vertical-bar-widget.lua
@@ -0,0 +1,64 @@
+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