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>
79 lines
1.9 KiB
Scdoc
79 lines
1.9 KiB
Scdoc
waybar-mango-language(5)
|
||
|
||
# NAME
|
||
|
||
waybar - mango language module
|
||
|
||
# DESCRIPTION
|
||
|
||
The *language* module displays the currently active keyboard layout in the Mango compositor.
|
||
|
||
# CONFIGURATION
|
||
|
||
Addressed by *mango/language*
|
||
|
||
*format*: ++
|
||
typeof: string ++
|
||
default: {} ++
|
||
The format, how the layout should be displayed. See *FORMAT REPLACEMENTS*.
|
||
|
||
*format-<lang>*: ++
|
||
typeof: string ++
|
||
Provide an alternative format string for a given language.
|
||
<lang> is the short description of the layout (e.g. "us", "de").
|
||
The value is used as the replacement for *{}* in the main *format*.
|
||
This option can be repeated for multiple languages.
|
||
|
||
*format-<lang>-<variant>*: ++
|
||
typeof: string ++
|
||
Like *format-<lang>* but also matches the layout variant, taking precedence over *format-<lang>* when both the language and variant match.
|
||
|
||
*menu*: ++
|
||
typeof: string ++
|
||
Action that pops up a menu.
|
||
|
||
*menu-file*: ++
|
||
typeof: string ++
|
||
Location of the menu descriptor file. It must contain an element of type GtkMenu with id *menu*.
|
||
|
||
*menu-actions*: ++
|
||
typeof: array ++
|
||
Actions corresponding to the buttons of the menu.
|
||
|
||
*expand*: ++
|
||
typeof: bool ++
|
||
default: false ++
|
||
Enables this module to consume all leftover space dynamically.
|
||
|
||
# FORMAT REPLACEMENTS
|
||
|
||
*{short}*: Short name of the layout (e.g. "us").
|
||
|
||
*{shortDescription}*: Short description of the layout (same as *{short}* in most cases).
|
||
|
||
*{long}*: Full name of the layout as reported by Mango (e.g. "English (US)"). The empty positional *{}* in the default format resolves to this value, so the long name is shown when no *format* is specified.
|
||
|
||
*{variant}*: Variant of the layout, if any.
|
||
|
||
# EXAMPLES
|
||
|
||
```
|
||
"mango/language": {
|
||
"format": " {long} ",
|
||
"format-us": "US",
|
||
"format-de": "DE"
|
||
}
|
||
```
|
||
|
||
# STYLE
|
||
|
||
- *#language*
|
||
|
||
A CSS class matching the current layout's short name is added to the widget.
|
||
This allows per‑layout styling:
|
||
|
||
```
|
||
#language.us { color: #00ff00; }
|
||
#language.de { color: #ff0000; }
|
||
```
|