summaryrefslogtreecommitdiff
path: root/widgets/pavolctld.lua
blob: 6f257b51539c38c33f11511b0aea8ecc51bc8fd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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