lain/alsa.md

52 lines
1.6 KiB
Markdown

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"
and outputs the following table:
Variable | Type
--- | ---
`widget` | `awful.widget.textbox`
`channel` | string
`step` | string
`notify` | 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"`.