waybar-wireplumber(5)

✨ waybar-wireplumber ✨

okay bestie, pull up a chair (or a beanbag, no judgement) because this is the wireplumber module for waybar β€” that's the waybar-wireplumber(5) situation, section 5 of the manual, the whole thing πŸ’–


🌸 NAME 🌸

waybar β€” the WirePlumber module. that's it, that's the name, we move πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so like. this module literally just shows you the current volume that WirePlumber is reporting. that's the whole job. it's giving humble, it's giving reliable, it's giving main character energy in your bar ✨


πŸŽ€ CONFIGURATION πŸŽ€

every single knob you can turn, in order, no skips, no shortcuts, we're doing this properly:

  • format β€” typeof: string, default: {volume}% the format, like how the info should actually get displayed. this one is the fallback β€” it's used when other formats aren't specified.
  • format-muted β€” typeof: string this format kicks in when the sound is muted. 🫒
  • node-type β€” typeof: string, default: Audio/Sink the WirePlumber node type to attach to. use Audio/Source if you wanna manage microphones and stuff.
  • tooltip β€” typeof: bool, default: true option to disable the tooltip on hover. if you're not feeling the hover moment, this is your girl.
  • tooltip-format β€” typeof: string, default: {node_name} the format of the info shown inside the tooltip.
  • rotate β€” typeof: integer positive value to rotate the text label β€” and it goes in 90 degree increments, no cap.
  • states β€” typeof: object a number of volume states that get activated at certain volume levels. peek at waybar-states(5) for the deets.
  • max-length β€” typeof: integer the maximum length, in characters, 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 inside the module, where 0 is left-aligned and 1 is right-aligned. and if the module is rotated, it follows the flow of the text. lowkey poetic 🌈
  • justify β€” typeof: string the alignment of the text inside the module's label β€” 'left', 'right', or 'center' to define the positioning.
  • scroll-step β€” typeof: float, default: 1.0 the speed at which the volume changes when you scroll. πŸ‘‘
  • on-click β€” typeof: string command to execute when the module gets clicked.
  • on-click-middle β€” typeof: string command to execute on a middle-click, using the 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 updates.
  • on-scroll-up β€” typeof: string command to execute when scrolling up on the module. ⚠️ this replaces the default volume-control behaviour.
  • on-scroll-down β€” typeof: string command to execute when scrolling down on the module. ⚠️ this also replaces the default volume-control behaviour.
  • max-volume β€” typeof: float, default: 100 the maximum volume that can be set, in percentage.
  • menu β€” typeof: string action that popups the menu.
  • menu-file β€” typeof: string location of the menu descriptor file. there needs to be an element of type GtkMenu with id menu. (yes, like that. exactly like that.)
  • menu-actions β€” typeof: array the actions corresponding to the buttons of the menu.

πŸ’œ FORMAT REPLACEMENTS πŸ’œ

the little magic words you can drop into your formats, periodt:

  • {volume} β€” volume in percentage.
  • {node_name} β€” the node's nickname as reported by WirePlumber (the node.nick property).

πŸ”₯ EXAMPLES πŸ”₯

✨ Basic ✨

"wireplumber": {
     "format": "{volume}%",
     "format-muted": "",
     "on-click": "helvum"
}

✨ Separate Sink and Source Widgets ✨

"wireplumber#sink": {
    "format": "{volume}% {icon}",
    "format-muted": "",
    "format-icons": ["", "", ""],
    "on-click": "helvum",
    "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
    "scroll-step": 5
},
"wireplumber#source": {
    "node-type": "Audio/Source",
    "format": "{volume}% ",
    "format-muted": "",
    "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
    "scroll-step": 5
}

🌟 STYLE 🌟

the CSS classes you can dress up, go off:

  • #wireplumber
  • #wireplumber.muted

ngl that's the whole thing. go make your bar cute, bestie 🫢 you're literally doing amazing sweetie

this was the waybar-wireplumber(5) page, dated 2026-02-08, straight from the File Formats Manual β€” mwah, slay, bye πŸ˜­πŸ’–

πŸ“¦ where this page comes from