Skip to content

Volume

Displays the current volume level. Clicking on the widget opens a volume mixer, which allows you to change the device output level, the default playback device, and control application volume levels individually. Use truncate option to control the display of application titles in the volume mixer.

This requires PulseAudio to function (pipewire-pulse is supported).

The volume widget, with its popup open. A single stream is playing audio.

Configuration

Type: volume

NameTypeDefaultDescription
formatstring{icon} {percentage}%Format string to use for the widget button label.
max_volumefloat100Maximum value to allow volume sliders to reach. Pulse supports values > 100 but this may result in distortion.
icons.volume_highstring󰕾Icon to show for high volume levels.
icons.volume_mediumstring󰖀Icon to show for medium volume levels.
icons.volume_lowstring󰕿Icon to show for low volume levels.
icons.mutedstring󰝟Icon to show for muted outputs.
truncate'start' or 'middle' or 'end' or off or MapoffThe location of the ellipses and where to truncate text from. Leave null to avoid truncating. Use the long-hand Map version if specifying a length.
truncate.mode'start' or 'middle' or 'end' or offoffThe location of the ellipses and where to truncate text from. Leave null to avoid truncating.
truncate.lengthintegernullThe fixed width (in chars) of the widget. Leave blank to let GTK automatically handle.
truncate.max_lengthintegernullThe maximum number of characters before truncating. Leave blank to let GTK automatically handle.
JSON
{
"end": [
{
"type": "volume",
"format": "{icon} {percentage}%",
"max_volume": 100,
"truncate": "middle",
"icons": {
"volume_high": "󰕾",
"volume_medium": "󰖀",
"volume_low": "󰕿",
"muted": "󰝟"
}
}
]
}
TOML
[[end]]
type = "volume"
format = "{icon} {percentage}%"
max_volume = 100
truncate = "middle"
[end.icons]
volume_high = "󰕾"
volume_medium = "󰖀"
volume_low = "󰕿"
muted = "󰝟"
YAML
end:
- type: "volume"
format: "{icon} {percentage}%"
max_volume: 100
truncate: "middle"
icons:
volume_high: "󰕾"
volume_medium: "󰖀"
volume_low: "󰕿"
muted: "󰝟"
Corn
{
end = [
{
type = "volume"
format = "{icon} {percentage}%"
max_volume = 100
truncate = "end"
icons.volume_high = "󰕾"
icons.volume_medium = "󰖀"
icons.volume_low = "󰕿"
icons.muted = "󰝟"
}
]
}

Formatting Tokens

The following tokens can be used in the format config option:

TokenDescription
{percentage}The active device volume percentage.
{icon}The icon representing the current volume.
{name}The active device name.

Styling

SelectorDescription
.volumeVolume widget button.
.popup-volumeVolume popup box.
.popup-volume .device-boxBox for the device volume controls.
.popup-volume .device-box .device-selectorDefault device dropdown selector.
.popup-volume .device-box .sliderDevice volume slider.
.popup-volume .device-box .btn-muteDevice volume mute toggle button.
.popup-volume .apps-boxParent box for the application volume controls.
.popup-volume .apps-box .app-boxBox for an individual application volume controls.
.popup-volume .apps-box .app-box .titleName of the application playback stream.
.popup-volume .apps-box .app-box .sliderApplication volume slider.
.popup-volume .apps-box .app-box .btn-muteApplication volume mute toggle button.

For more information on styling, please see the styling guide.