-Shows and controls alsa volume with a progressbar.
+[<- widgets](https://github.com/copycat-killer/lain/wiki/Widgets)
-Dependencies:
-
-- alsa-utils (of course)
-
-Plus tooltips, notifications, and color changes at mute/unmute switch.
+Shows and controls alsa volume with a progressbar; provides tooltips, notifications, and color changes at mute/unmute switch.
myvolumebar = lain.widgets.alsabar()
Variable | Meaning | Type | Default
--- | --- | --- | ---
+`timeout` | Refresh timeout seconds | int | 4
`width` | Bar width | int | 63
`height` | Bar height | int | 1
`ticks` | Set bar ticks on | boolean | true
--- | --- | --- | ---
`font` | Notifications font | string | The one defined in `beautiful.font`
`font_size` | Notifications font size | string | "11"
+`color` | Notifications color | string | `beautiful.fg_focus`
`bar_size` | Wibox height | int | 18
-It's **crucial** to set `notifications.bar_size` to your `mywibox[s]` height,
-**if** you have set it different than default (18).
+It's **crucial** to set `notifications.bar_size` to your `mywibox[s]` height.
-`lain.widgets.alsabar` outputs the following table:
+### output table
Variable | Meaning | Type
--- | --- | ---
-`widget` | The widget | `awful.widget.progressbar`
+`bar` | The widget | `awful.widget.progressbar`
`channel` | Alsa channel | string
`step` | Increase/decrease step | string
`notify` | The notification | function
-Finally, you can control the widget with key bindings like these:
+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()
+ awful.util.spawn("amixer set " .. volume.channel .. " " .. volume.step .. "+")
+ myvolumebar.notify()
end),
awful.key({ altkey }, "Down",
function ()
- awful.util.spawn("amixer sset " .. volume.channel .. " " .. volume.step .. "-")
- volume.notify()
+ awful.util.spawn("amixer set " .. volume.channel .. " " .. volume.step .. "-")
+ myvolumeba.notify()
end),
awful.key({ altkey }, "m",
function ()
- awful.util.spawn("amixer set Master playback toggle")
- volume.notify()
+ awful.util.spawn("amixer set " .. volume.channel .. " playback toggle")
+ myvolumebar.notify()
end),
awful.key({ altkey, "Control" }, "m",
function ()
- awful.util.spawn("amixer set Master playback 100%", false )
- volume.notify()
+ awful.util.spawn("amixer set " .. volume.channel .. " playback 100%", false )
+ myvolumebar.notify()
end),
where `altkey = "Mod1"`.
\ No newline at end of file