local awful = require("awful") local wibox = require("wibox") local pavolctld = require("lib.pavolctld") local volume_dropdown = require("widgets.volumedropdown") -- ensure pavolctld loaded if not pavolctld then return wibox.widget.textbox("err") end -- return table local widget = {} widget.textbox = wibox.widget.textbox() widget.tooltip = awful.tooltip { objects = {widget.textbox}, delay_show = 1 } widget.dropdown = volume_dropdown -- widget callbacks pavolctld.set_volume_change_callback(function() widget.textbox:set_text(pavolctld.sinks.default.vol) widget.dropdown.set_volume(pavolctld.sinks.default.vol, pavolctld.sinks.default.mute) widget.dropdown.dbmeter:set_text(pavolctld.sinks.default.db .. " dB") end) pavolctld.set_sink_change_callback(function() widget.tooltip:set_text(pavolctld.sinks.default.desc) end) pavolctld.set_default_sink_change_callback(function() widget.textbox:set_text(pavolctld.sinks.default.vol) widget.tooltip:set_text(pavolctld.sinks.default.desc) widget.dropdown.set_volume(pavolctld.sinks.default.vol, pavolctld.sinks.default.mute) widget.dropdown.dbmeter:set_text(pavolctld.sinks.default.db .. " dB") widget.dropdown.defsink:set_text(pavolctld.sinks.default.desc) end) return widget