lain/alsa.md

1.4 KiB

<- widgets

Shows and controls alsa volume with a textbox.

myvolume = lain.widgets.alsa()

input table

Variable Meaning Type Default
timeout Refresh timeout seconds int 5
channel Mixer channel string "Master"
settings User settings function empty function

settings can be fed with the following variables:

Variable Meaning Type Values
volume.level Self explained int 0-100
volume.status Device status string "on", "off"

output table

Variable Meaning Type
widget The widget wibox.widget.textbox
notify Force update widget function

Finally, you can control the widget with key bindings like these:

-- Volume control
awful.key({ altkey }, "Up",
function ()
    awful.util.spawn("amixer sset Master 1%+")
    volume.notify()
end),
awful.key({ altkey }, "Down",
function ()
    awful.util.spawn("amixer sset Master 1%-")
    volume.notify()
end),
awful.key({ altkey }, "m",
function ()
    awful.util.spawn("amixer set Master playback toggle")
    volume.notify()
end),
awful.key({ altkey, "Control" }, "m", 
function ()
    awful.util.spawn("amixer set Master playback 100%", false )
    volume.notify()
end),

where altkey = "Mod1".