awesome/src/widgets/5_vol.lua

32 lines
990 B
Lua

local wibox = require('wibox')
local awful = require('awful')
local theme = require('src.theme')
local volume = require('src.util.volume')
local volumeicon = wibox.widget.imagebox(theme.widget_vol_mute)
local volume_widget = wibox.widget.textbox()
awesome.connect_signal(volume.volume_changed_signal, function(vol, mute)
if mute then
volumeicon:set_image(theme.widget_vol_mute)
elseif vol == 0 then
volumeicon:set_image(theme.widget_vol_mute)
elseif vol <= 50 then
volumeicon:set_image(theme.widget_vol_low)
else
volumeicon:set_image(theme.widget_vol_high)
end
volume_widget.text = vol .. (mute and 'M' or '%')
end)
local volumebuttons = awful.util.table.join(
awful.button({}, 1, volume.toggle_mute),
awful.button({}, 4, volume.vol_up),
awful.button({}, 5, volume.vol_down)
)
volume_widget:buttons(volumebuttons)
volumeicon:buttons(volumebuttons)
return { wibox.layout.fixed.horizontal(volumeicon, volume_widget) }