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) }