A full man<->code consistency audit surfaced options, format placeholders
and CSS classes that were implemented but undocumented, documented but not
implemented (some causing fmt crashes when copied from examples), and
defaults that disagreed with the code. This aligns the docs with the code
and fixes a few genuine code gaps.
Docs:
- Add the missing waybar-user(5) man page (and register it in meson.build)
- Document previously-undocumented options/placeholders/CSS across many
modules (custom image-path/image-name/icon-size, graph_type/width/
datapoints; battery smooth-power; wireplumber format-source/only-physical;
mpris {position}/prefer-album-artist; network {signalStrengthApp}/compact
bandwidth; pulseaudio {source_volume}/{source_desc}; upower {temperature}/
{model}/{native-path}; wwan {power_state}/{imei}; tray ignore-list; and
many CSS state classes: .sink-muted, .source-muted, .workspace-hover, etc.)
- Correct documented defaults to match the code (hyprland format {name},
gamemode {count}, cpu-graph interval 5, cava input_delay 4, niri taskbar
icon-size 16, disk/gps/wayfire formats, menu-actions object type, ...)
- Remove placeholders/options that do not apply (custom-graph {icon}/format/
format-icons/rotate) and fix crashing examples (wwan {mode}, gps
format-no-fix); note cava background/foreground/continuous_rendering are
cava-config-file options
Code:
- bluetooth: accept the documented `controller` key as a synonym of
`controller-alias` (the option was silently ignored)
- mango/workspaces: supply the documented `{name}` fmt arg (was missing ->
fmt::format threw)
- privacy: read `tooltip` as a bool (was guarded on isString(), so the
documented `tooltip: false` was silently ignored)
All man pages validated with scdoc 1.11.4. Not compiled locally (no gtkmm);
C++ build relies on CI.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
204 lines
4.9 KiB
Scdoc
204 lines
4.9 KiB
Scdoc
waybar-idle-inhibitor(5)
|
|
|
|
# NAME
|
|
|
|
waybar - idle_inhibitor module
|
|
|
|
# DESCRIPTION
|
|
|
|
The *idle_inhibitor* module can inhibit the idle behavior such as screen blanking, locking, and
|
|
screensaver, also known as "presentation mode".
|
|
|
|
# CONFIGURATION
|
|
|
|
*format*: ++
|
|
typeof: string ++
|
|
The format, how the state should be displayed.
|
|
|
|
*format-icons*: ++
|
|
typeof: array ++
|
|
Based on the current state, the corresponding icon gets selected.
|
|
|
|
*rotate*: ++
|
|
typeof: integer ++
|
|
Positive value to rotate the text label (in 90 degree increments).
|
|
|
|
*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.
|
|
|
|
*on-click*: ++
|
|
typeof: string ++
|
|
Command to execute when clicked on the module. A click also toggles the state (enable only if dynamic timeouts are enabled).
|
|
|
|
*on-click-middle*: ++
|
|
typeof: string ++
|
|
Command to execute when middle-clicked on the module using mousewheel. (reset the timeout to the initial value if dynamic timeouts are enabled).
|
|
|
|
*on-click-right*: ++
|
|
typeof: string ++
|
|
Command to execute when you right-click on the module. (deactivate the inhibit if dynamic timeouts are enabled).
|
|
|
|
*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. (increase the timeout if dynamic timeouts are enabled).
|
|
|
|
*on-scroll-down*: ++
|
|
typeof: string ++
|
|
Command to execute when scrolling down on the module. (decrease the timeout if dynamic timeouts are enabled).
|
|
|
|
*smooth-scrolling-threshold*: ++
|
|
typeof: double ++
|
|
Threshold to be used when scrolling.
|
|
|
|
*start-activated*: ++
|
|
typeof: bool ++
|
|
default: *false* ++
|
|
Whether the inhibit should be activated when starting waybar.
|
|
|
|
*timeout*: ++
|
|
typeof: double ++
|
|
The number of minutes the inhibition should last.
|
|
|
|
*timeout-step*: ++
|
|
typeof: double ++
|
|
default: 10 ++
|
|
The number of minutes to add or subtract when scrolling (when dynamic timeouts are enabled).
|
|
|
|
*dynamic-timeouts*: ++
|
|
typeof: bool ++
|
|
default: false ++
|
|
Option to enable dynamic timeouts. ++
|
|
The legacy singular spelling *dynamic-timeout* is also accepted as an alias.
|
|
|
|
*wait-for-activity*: ++
|
|
typeof: bool ++
|
|
default: *false* ++
|
|
When enabled, the idle inhibitor remains active as long as there is keyboard or mouse activity on the bar. If there is no activity for the duration specified in *timeout*, the inhibitor will automatically toggle off. This option requires *timeout* to be set.
|
|
|
|
*signal*: ++
|
|
typeof: integer ++
|
|
The signal number used to toggle the idle inhibitor externally. ++
|
|
The number is valid between 1 and N, where *SIGRTMIN+N* = *SIGRTMAX*. ++
|
|
Use `pkill -SIGRTMIN+N waybar` to toggle the idle inhibitor from scripts or keybindings.
|
|
|
|
*tooltip*: ++
|
|
typeof: bool ++
|
|
default: true ++
|
|
Option to disable tooltip on hover.
|
|
|
|
*tooltip-format-activated*: ++
|
|
typeof: string ++
|
|
This format is used when the inhibit is activated.
|
|
|
|
*tooltip-format-deactivated*: ++
|
|
typeof: string ++
|
|
This format is used when the inhibit is deactivated.
|
|
|
|
*menu*: ++
|
|
typeof: string ++
|
|
Action that popups the menu. Cannot be "on-click".
|
|
|
|
*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.
|
|
|
|
*expand*: ++
|
|
typeof: bool ++
|
|
default: false ++
|
|
Enables this module to consume all left over space dynamically.
|
|
|
|
# FORMAT REPLACEMENTS
|
|
|
|
*{status}*: status (*activated* or *deactivated*)
|
|
|
|
*{icon}*: Icon, as defined in *format-icons*
|
|
|
|
*{timeout}*: Timeout in minutes
|
|
|
|
*{timeleft}*: Time left in minutes
|
|
|
|
# EXAMPLES
|
|
|
|
Basic usage with timeout:
|
|
|
|
```
|
|
"idle_inhibitor": {
|
|
"format": "{icon}",
|
|
"format-icons": {
|
|
"activated": "",
|
|
"deactivated": ""
|
|
},
|
|
"timeout": 30.5
|
|
}
|
|
```
|
|
|
|
With dynamic timeouts (scroll to adjust the timeout):
|
|
|
|
```
|
|
"idle_inhibitor": {
|
|
"format": "{status} {timeleft}/{timeout}",
|
|
"format-icons": {
|
|
"activated": "",
|
|
"deactivated": ""
|
|
},
|
|
"timeout": 480,
|
|
"dynamic-timeouts": true,
|
|
"timeout-step": 10
|
|
}
|
|
```
|
|
|
|
With external control via signals (can be toggled with `pkill -SIGRTMIN+8 waybar`):
|
|
|
|
```
|
|
"idle_inhibitor": {
|
|
"format": "{icon}",
|
|
"format-icons": {
|
|
"activated": "",
|
|
"deactivated": ""
|
|
},
|
|
"signal": 8
|
|
}
|
|
```
|
|
|
|
With wait-for-activity feature:
|
|
|
|
```
|
|
"idle_inhibitor": {
|
|
"format": "{icon}",
|
|
"format-icons": {
|
|
"activated": "",
|
|
"deactivated": ""
|
|
},
|
|
"timeout": 5.0,
|
|
"wait-for-activity": true
|
|
}
|
|
```
|
|
|
|
# STYLE
|
|
|
|
- *#idle_inhibitor*
|
|
- *#idle_inhibitor.activated*
|
|
- *#idle_inhibitor.deactivated*
|