waybar-pulseaudio(5)
β¨ NAME β¨
waybar-pulseaudio β bestie, this is the pulseaudio module of waybar, and it's serving cunt while reporting your volume ππ
π«Ά DESCRIPTION π«Ά
okay so. the pulseaudio module displays the current volume that PulseAudio is reporting. that's the whole gig. it just sits there in your bar looking cute and telling you how loud you're being. π
and ALSO β plot twist, keep up β you can control the volume by scrolling up or down while the cursor is over the module. yes bestie, your scroll wheel is a volume knob now. slay. π±οΈβ¨
π CONFIGURATION π
every option, all of them, no skips, we're doing this properly:
formatβ typeof: string, default:{volume}%β the format, like, how the info should actually be displayed. this one's the fallback format: it gets used whenever no other format is specified. πΈformat-bluetoothβ typeof: string β this format is used when you're on bluetooth speakers. bluetooth girlies, this one's for you πformat-mutedβ typeof: string β this format is used when the sound is muted. π€«format-sourceβ typeof: string, default:{volume}%β this format is used for the source.format-source-mutedβ typeof: string β this format is used when the source is muted.format-iconsβ typeof: array β based on the current port name and volume, the corresponding icon gets selected. the order goes low to high. see Icons below πrotateβ typeof: integer β positive value to rotate the text label (in 90 degree increments). only positive, no spinning backwards, that's the rule πstatesβ typeof: object β a number of volume states which get activated on certain volume levels. seewaybar-states(5). π₯max-lengthβ typeof: integer β the maximum length in character the module should display.min-lengthβ typeof: integer β the minimum length in characters the module should accept.alignβ typeof: float β the alignment of the label within the module, where0is left-aligned and1is right-aligned. if the module is rotated, it will follow the flow of the text. π«justifyβ typeof: string β the alignment of the text within the module's label, allowing options'left','right', or'center'to define the positioning.scroll-stepβ typeof: float, default:1.0β the speed at which to change the volume when scrolling. crank it for chaos πon-clickβ typeof: string β command to execute when clicked on the module.on-click-middleβ typeof: string β command to execute when middle-clicked on the module using mousewheel.on-click-rightβ typeof: string β command to execute when you right-click on the module.on-updateβ typeof: string β command to execute when the module is updated.on-scroll-upβ typeof: string β command to execute when scrolling up on the module. β οΈ this replaces the default behaviour of volume control. so if you set it, no more free volume knob, it's your command now periodt.on-scroll-downβ typeof: string β command to execute when scrolling down on the module. β οΈ also replaces the default behaviour of volume control. same deal bestie.smooth-scrolling-thresholdβ typeof: double β threshold to be used when scrolling.reverse-scrollingβ typeof: bool β option to reverse the scroll direction for touchpads.reverse-mouse-scrollingβ typeof: bool β option to reverse the scroll direction for mice. πtooltipβ typeof: bool, default:trueβ option to disable tooltip on hover.max-volumeβ typeof: integer, default:100β the maximum volume that can be set, in percentage. πignored-sinksβ typeof: array β sinks in this list will not be shown as active sink by Waybar. entries should be the sink'sdescriptionfield.menuβ typeof: string β action that popups the menu.menu-fileβ typeof: string β location of the menu descriptor file. there need to be an element of typeGtkMenuwith idmenu.menu-actionsβ typeof: array β the actions corresponding to the buttons of the menu.expandβ typeof: bool, default:falseβ enables this module to consume all left over space dynamically. greedy little module, love that for it π«Ά
π FORMAT REPLACEMENTS π
these are the lil placeholders you can drop into your formats:
{desc}β Pulseaudio port's description; for bluetooth it'll be the device name.{volume}β volume in percentage.{icon}β icon, as defined informat-icons.{format_source}β source format,format-source,format-source-muted.
π¦ ICONS π¦
the following strings for format-icons are supported.
- the device name
if they are found in the current PulseAudio port name, the corresponding icons will be selected. β¨
default(shown, when no other port is found)headphonespeakerhdmiheadsethands-freeportablecarhifiphone
additionally, suffixing a device name or port with -muted will cause the icon to be selected when the corresponding audio device is muted. this applies to default as well. so yes, you can have a muted-default icon too, iconic πΈ
π EXAMPLES π
look at this config, it ate:
"pulseaudio": {
"format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon}",
"format-muted": "",
"format-icons": {
"alsa_output.pci-0000_00_1f.3.analog-stereo": "",
"alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"phone-muted": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"scroll-step": 1,
"on-click": "pavucontrol"
}
ngl some of those strings look empty in a terminal β that's just icon glyphs doing their shy lil thing. the config is exactly as written up there, don't come for me π
β STYLE β
these are the CSS selectors you get to play with, go off:
#pulseaudio#pulseaudio.bluetooth#pulseaudio.muted
and that's the whole page bestie π this was waybar-pulseaudio(5), from waybar's File Formats Manual, dated 2026-02-08. now go crank your volume responsibly. mwah ππ¦β¨
π¦ where this page comes from
- ubuntu resolute: waybar 0.15.0-1 Β· MIT
- ubuntu stonking: waybar 0.15.0-1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms