mirror of https://github.com/lcpz/lain.git
2.9 KiB
2.9 KiB
Shows and controls alsa volume with a progressbar; provides tooltips, notifications, and color changes at mute/unmute switch.
volume = lain.widgets.alsabar()
- Left click: Launch
alsamixer
in yourterminal
. - Right click: Mute/unmute.
- Scroll wheel: Increase/decrase volume.
The function takes a table as optional argument, which can contain:
Variable | Meaning | Type | Default |
---|---|---|---|
timeout |
Refresh timeout seconds | int | 4 |
settings |
User settings | function | empty function |
width |
Bar width | int | 63 |
height |
Bar height | int | 1 |
ticks |
Set bar ticks on | boolean | true |
ticks_size |
Ticks size | int | 7 |
vertical |
Set the bar vertical | boolean | false |
channel |
Mixer channel | string | "Master" |
step |
Step at which volume is increased/decreased | string | "5%" |
colors |
Bar colors | table | see colors |
notifications |
Notifications settings | table | see notifications |
colors
Variable | Meaning | Type | Default |
---|---|---|---|
background |
Bar backgrund color | string | beautiful.bg_normal |
mute |
Bar mute color | string | "#EB8F8F" |
unmute |
Bar unmute color | string | "#A4CE8A" |
notifications
Variable | Meaning | Type | Default |
---|---|---|---|
font |
Notifications font | string | The one defined in beautiful.font |
font_size |
Notifications font size | string | "11" |
color |
Notifications color | string | beautiful.fg_normal |
bar_size |
Wibox height | int | 18 |
It's crucial to set notifications.bar_size
to your mywibox[s]
height.
settings
can use the following variables:
Variable | Meaning | Type | Values |
---|---|---|---|
volume_now.level |
Self explained | int | 0-100 |
volume_now.status |
Device status | string | "on", "off" |
output table
Variable | Meaning | Type |
---|---|---|
bar |
The widget | awful.widget.progressbar |
channel |
Alsa channel | string |
step |
Increase/decrease step | string |
notify |
The notification | function |
You can control the widget with key bindings like these:
-- ALSA volume control
awful.key({ altkey }, "Up",
function ()
awful.util.spawn("amixer -q set " .. volume.channel .. " " .. volume.step .. "+")
volume.notify()
end),
awful.key({ altkey }, "Down",
function ()
awful.util.spawn("amixer -q set " .. volume.channel .. " " .. volume.step .. "-")
volume.notify()
end),
awful.key({ altkey }, "m",
function ()
awful.util.spawn("amixer -q set " .. volume.channel .. " playback toggle")
volume.notify()
end),
awful.key({ altkey, "Control" }, "m",
function ()
awful.util.spawn("amixer -q set " .. volume.channel .. " playback 100%")
volume.notify()
end),
where altkey = "Mod1"
.