awesome-wm-widgets/experiments/volume/widgets/icon-and-text-widget.lua

60 lines
1.9 KiB
Lua
Raw Normal View History

local wibox = require("wibox")
2020-12-15 04:33:56 +01:00
local beautiful = require('beautiful')
local widget = {}
2020-12-15 04:33:56 +01:00
local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/'
2020-12-15 04:33:56 +01:00
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',
2020-12-15 04:33:56 +01:00
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)
2020-12-06 20:47:40 +01:00
local volume_icon_name
2020-11-14 19:29:31 +01:00
if self.is_muted then
2020-12-15 04:33:56 +01:00
volume_icon_name = 'audio-volume-muted-symbolic'
else
2020-11-14 19:29:31 +01:00
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
2020-12-15 04:33:56 +01:00
self:get_children_by_id('icon')[1]:set_image(icon_dir .. volume_icon_name .. '.svg')
end,
2020-11-14 19:29:31 +01:00
mute = function(self)
2020-12-15 04:33:56 +01:00
print("called")
2020-11-14 19:29:31 +01:00
self.is_muted = true
2020-12-15 04:33:56 +01:00
self:get_children_by_id('icon')[1]:set_image(icon_dir .. 'audio-volume-muted-symbolic.svg')
2020-11-14 19:29:31 +01:00
end,
unmute = function(self)
self.is_muted = false
2020-12-15 04:33:56 +01:00
end
}
end
return widget