-
Notifications
You must be signed in to change notification settings - Fork 212
alsabar
Shows ALSA volume with a progressbar; provides tooltips and notifications.
local volume = lain.widget.alsabar()| Variable | Meaning | Type | Default |
|---|---|---|---|
timeout |
Refresh timeout (in seconds) | integer | 5 |
settings |
User settings | function | empty function |
width |
Bar width | number | 63 |
height |
Bar height | number | 1 |
margins |
Bar margins | number | 1 |
paddings |
Bar paddings | number | 1 |
ticks |
Set bar ticks on | boolean | false |
ticks_size |
Ticks size | integer | 7 |
tick |
String for a notification tick | string | " |
tick_pre |
String for the left notification delimeter | string | "[" |
tick_post |
String for the right notification delimeter | string | "]" |
tick_none |
String for an empty notification tick | string | " " |
cmd |
ALSA mixer command | string | "amixer" |
channel |
Mixer channel | string | "Master" |
togglechannel |
Toggle channel | string | nil |
tick |
The character usef for ticks in the notification | string | " |
colors |
Bar colors | table | see Default colors |
notification_preset |
Notification preset | table | See default notification_preset
|
followtag |
Display the notification on currently focused screen | boolean | false |
cmd is useful if you need to pass additional arguments to amixer. For instance, you may want to define cmd = "amixer -c X" in order to set amixer with card X.
In case mute toggling can't be mapped to master channel (this happens, for instance, when you are using an HDMI output), define togglechannel as your S/PDIF device. Read alsa page to know how.
To set the maximum number of ticks to display in the notification, define max_ticks (integer) in notification_preset.
settings can use the following variables:
| Variable | Meaning | Type | Values |
|---|---|---|---|
volume_now.level |
Volume level | integer | 0-100 |
volume_now.status |
Device status | string | "on", "off" |
With multiple screens, the default behaviour is to show a visual notification pop-up window on the first screen. By setting followtag to true it will be shown on the currently focused tag screen.
| Variable | Meaning | Type | Default |
|---|---|---|---|
background |
Bar backgrund color | string | "#000000" |
mute |
Bar mute color | string | "#EB8F8F" |
unmute |
Bar unmute color | string | "#A4CE8A" |
notification_preset = {
font = "Monospace 10"
}| Variable | Meaning | Type |
|---|---|---|
bar |
The widget | wibox.widget.progressbar |
channel |
ALSA channel | string |
notify |
The notification | function |
update |
Update bar
|
function |
tooltip |
The tooltip | awful.tooltip |
If you want buttons, just add the following after your widget in rc.lua.
volume.bar:buttons(awful.util.table.join(
awful.button({}, 1, function() -- left click
awful.spawn(string.format("%s -e alsamixer", terminal))
end),
awful.button({}, 2, function() -- middle click
os.execute(string.format("%s set %s 100%%", volume.cmd, volume.channel))
volume.update()
end),
awful.button({}, 3, function() -- right click
os.execute(string.format("%s set %s toggle", volume.cmd, volume.togglechannel or volume.channel))
volume.update()
end),
awful.button({}, 4, function() -- scroll up
os.execute(string.format("%s set %s 1%%+", volume.cmd, volume.channel))
volume.update()
end),
awful.button({}, 5, function() -- scroll down
os.execute(string.format("%s set %s 1%%-", volume.cmd, volume.channel))
volume.update()
end)
))Read here. If you want notifications, use volume.notify() instead of volume.update().