lain/alsa.md

57 lines
1.8 KiB
Markdown

[<- widgets](https://github.com/copycat-killer/lain/wiki/Widgets)
Shows and controls alsa volume with a textbox.
myvolume = lain.widgets.alsa()
* Left click: Launch `alsamixer` in your `terminal`.
* Right click: Mute/unmute.
* Scroll wheel: Increase/decrase volume.
The function takes a table as optional argument, which can contain:
Variable | Meaning | Type | Default
--- | --- | --- | ---
`channel` | Mixer channel | string | "Master"
`step` | Step at which volume is increased/decreased | string | "1%"
`header` | Text to show before value | string | " Vol "
`header_color` | Header color | string | `beautiful.fg_normal` or "#FFFFFF"
`color` | Value color | string | `beautiful.fg_focus` or "#FFFFFF"
`footer` | Text to append after value | string | " "
*Note*: `footer` can be markup text.
`lain.widgets.alsa` outputs the following table:
Variable | Meaning | Type
--- | --- | ---
`widget` | The widget | `wibox.widget.textbox`
`channel` | Alsa channel | string
`step` | Increase/decrease step | string
`notify` | 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 " .. volume.channel .. " " .. volume.step .. "+")
volume.notify()
end),
awful.key({ altkey }, "Down",
function ()
awful.util.spawn("amixer sset " .. volume.channel .. " " .. volume.step .. "-")
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"`.