Port information that previously lived only in the GitHub wiki into the authoritative scdoc man pages, so the man pages become the single source of truth for module documentation. 33 man pages enriched (options, format replacements, actions, style selectors, troubleshooting and implementation notes). Additions were verified against the source; stale/incorrect wiki entries were deliberately not ported. All pages still compile with scdoc. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
222 lines
5.7 KiB
Scdoc
222 lines
5.7 KiB
Scdoc
waybar-wireplumber(5)
|
|
|
|
# NAME
|
|
|
|
waybar - WirePlumber module
|
|
|
|
# DESCRIPTION
|
|
|
|
The *wireplumber* module displays the current volume reported by WirePlumber.
|
|
|
|
# CONFIGURATION
|
|
|
|
*format*: ++
|
|
typeof: string ++
|
|
default: *{volume}%* ++
|
|
The format, how information should be displayed. This format is used when other formats aren't specified.
|
|
|
|
*format-muted*: ++
|
|
typeof: string ++
|
|
This format is used when the sound is muted.
|
|
|
|
*format-bluetooth*: ++
|
|
typeof: string ++
|
|
This format is used when the active sink is a Bluetooth device (its node name contains *bluez* or *a2dp-sink*).
|
|
|
|
*format-bluetooth-muted*: ++
|
|
typeof: string ++
|
|
This format is used when the active sink is a Bluetooth device and the sound is muted.
|
|
|
|
*format-source*: ++
|
|
typeof: string ++
|
|
default: *{volume}%* ++
|
|
The format used to render the source (microphone) volume sub-string that is exposed through the *{format_source}* replacement.
|
|
|
|
*format-source-muted*: ++
|
|
typeof: string ++
|
|
The format used for the *{format_source}* sub-string when the source (microphone) is muted.
|
|
|
|
*format-icons*: ++
|
|
typeof: array ++
|
|
Based on the current volume, the corresponding icon gets selected. The order is *low* to *high*.
|
|
|
|
*node-type*: ++
|
|
typeof: string ++
|
|
default: *Audio/Sink* ++
|
|
The WirePlumber node type to attach to. Use *Audio/Source* to manage microphones etc.
|
|
|
|
*only-physical*: ++
|
|
typeof: bool ++
|
|
default: *false* ++
|
|
When enabled, resolve through virtual/filter-chain sinks to the underlying physical sink and report its volume instead.
|
|
|
|
*tooltip*: ++
|
|
typeof: bool ++
|
|
default: *true* ++
|
|
Option to disable tooltip on hover.
|
|
|
|
*tooltip-format*: ++
|
|
typeof: string ++
|
|
default: *{node_name}* ++
|
|
The format of information displayed in the tooltip.
|
|
|
|
*rotate*: ++
|
|
typeof: integer ++
|
|
Positive value to rotate the text label (in 90 degree increments).
|
|
|
|
*states*: ++
|
|
typeof: object ++
|
|
A number of volume states which get activated on certain volume levels. See *waybar-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, where 0 is left-aligned and 1 is 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.
|
|
|
|
*scroll-scale*: ++
|
|
typeof: string ++
|
|
default: cubic_percent
|
|
The scale to use for the scrolling volume change. Options are 'linear', 'db', 'cubic', and 'cubic_percent'.
|
|
|
|
*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.
|
|
|
|
*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.
|
|
|
|
*on-scroll-down*: ++
|
|
typeof: string ++
|
|
Command to execute when scrolling down on the module. This replaces the default behaviour of volume control.
|
|
|
|
*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 need to be an element of type
|
|
GtkMenu with id *menu*
|
|
|
|
*menu-actions*: ++
|
|
typeof: array ++
|
|
The actions corresponding to the buttons of the menu.
|
|
|
|
# FORMAT REPLACEMENTS
|
|
|
|
*{volume}*: Volume in percentage, cubic scale as integer.
|
|
|
|
*{volume_linear}*: Volume in linear scale as float.
|
|
|
|
*{volume_cubic}*: Volume in cubic scale as float.
|
|
|
|
*{volume_db}*: Volume in decibel scale as float.
|
|
|
|
*{icon}*: Icon, as defined in *format-icons*.
|
|
|
|
*{node_name}*: The node's nickname as reported by WirePlumber (*node.nick* property)
|
|
|
|
*{source_volume}*: Source (microphone) volume in percentage, cubic scale as integer.
|
|
|
|
*{source_volume_linear}*: Source (microphone) volume in linear scale as float.
|
|
|
|
*{source_volume_cubic}*: Source (microphone) volume in cubic scale as float.
|
|
|
|
*{source_volume_db}*: Source (microphone) volume in decibel scale as float.
|
|
|
|
*{source_desc}*: The source node's nickname/description as reported by WirePlumber.
|
|
|
|
*{format_source}*: The pre-rendered source (microphone) volume sub-string, formatted with *format-source*/*format-source-muted*.
|
|
|
|
# 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
|
|
}
|
|
```
|
|
|
|
## Use a Different Scale
|
|
|
|
```
|
|
"wireplumber": {
|
|
"format": "{volume_db:.2f}dB",
|
|
"scroll-scale": "db",
|
|
"scroll-step": 2.5
|
|
}
|
|
```
|
|
|
|
# STYLE
|
|
|
|
- *#wireplumber*
|
|
- *#wireplumber.muted*
|
|
- *#wireplumber.sink-muted*
|
|
- *#wireplumber.source-muted*
|
|
- *#wireplumber.bluetooth*
|