Extend the pow_format spec parser beyond alignment so configs can shape the
rendered number, not just pad it. A forced scale (#, k, M, G, T, P) pins the SI
prefix instead of auto-selecting it and, since the author then knows both scale
and unit, hides the prefix and unit by default; U brings the unit back, u hides
it in auto mode, and i forces integer display. b and B override the decimal or
binary base independently of the call site, and a trailing width now fixes the
coefficient field when a scale is forced, overflowing to '#' when it does not
fit.
The old '>' and '<' branches rendered via fmt::format("{}", s), which discarded
every new field on the recursive call; they now build from a single render path
that reads the current formatter, so modifiers survive alignment. The auto path
is byte-identical to before, verified against the previous implementation.
Adds a Catch2 suite covering each modifier alone and combined, plus the
backward-compatible alignment cases, and documents the modifiers in the network
and disk man pages.
205 lines
5.4 KiB
Scdoc
205 lines
5.4 KiB
Scdoc
waybar-disk(5)
|
|
|
|
# NAME
|
|
|
|
waybar - disk module
|
|
|
|
# DESCRIPTION
|
|
|
|
The *disk* module displays information of multiple disks.
|
|
|
|
# CONFIGURATION
|
|
|
|
Addressed by *disk*
|
|
|
|
*interval*: ++
|
|
typeof: integer++
|
|
default: 30 ++
|
|
The interval in which the information gets polled.
|
|
|
|
*format*: ++
|
|
typeof: string ++
|
|
default: "{}%" ++
|
|
The format, how information for each disk should be displayed. Note: in the default the positional field "{}" resolves to *{percentage_free}*.
|
|
|
|
*rotate*: ++
|
|
typeof: integer ++
|
|
Positive value to rotate the text label (in 90 degree increments).
|
|
|
|
*states*: ++
|
|
typeof: object ++
|
|
A number of disk utilization states that get activated on certain percentage thresholds (percentage_used). 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.
|
|
|
|
*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.
|
|
|
|
*on-scroll-down*: ++
|
|
typeof: string ++
|
|
Command to execute when scrolling down on the module.
|
|
|
|
*path*: ++
|
|
typeof: string ++
|
|
default: "/" ++
|
|
Deprecated path of filesystem or mountpoint to monitor.
|
|
|
|
*paths*: ++
|
|
typeof: array ++
|
|
default: ["/"] ++
|
|
Array of paths residing in the filesystem or mountpoint for which the information should be displayed.
|
|
|
|
*header*: ++
|
|
typeof: string ++
|
|
default: "" ++
|
|
Text to appear before the disk information defined in the format.
|
|
|
|
*separator*: ++
|
|
typeof: string ++
|
|
default: " " ++
|
|
Separator string between multiple disk information.
|
|
|
|
*smooth-scrolling-threshold*: ++
|
|
typeof: double ++
|
|
Threshold to be used when scrolling.
|
|
|
|
*tooltip*: ++
|
|
typeof: bool ++
|
|
default: true ++
|
|
Option to disable tooltip on hover.
|
|
|
|
*tooltip-format*: ++
|
|
typeof: string ++
|
|
default: "{used} used out of {total} on {path} ({percentage_used}%)" ++
|
|
The format of the information displayed in the tooltip.
|
|
|
|
*unit*: ++
|
|
typeof: string ++
|
|
Use with specific_free, specific_used, and specific_total to force calculation to always be in a certain unit. Accepts kB, kiB, MB, Mib, GB, GiB, TB, TiB.
|
|
|
|
*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.
|
|
|
|
*expand*: ++
|
|
typeof: bool ++
|
|
default: false ++
|
|
Enables this module to consume all left over space dynamically.
|
|
|
|
# FORMAT REPLACEMENTS
|
|
|
|
*{percentage_used}*: Percentage of disk in use.
|
|
|
|
*{percentage_free}*: Percentage of free disk space
|
|
|
|
*{total}*: Total amount of space on the disk, partition, or mountpoint. Automatically selects unit based on size remaining.
|
|
|
|
*{used}*: Amount of used disk space. Automatically selects unit based on size remaining.
|
|
|
|
*{free}*: Amount of available disk space for normal users. Automatically selects unit based on size remaining.
|
|
|
|
*{path}*: The path for each disk specified in the configuration.
|
|
|
|
*{specific_total}*: Total amount of space on the disk, partition, or mountpoint in a specific unit. Defaults to bytes.
|
|
|
|
*{specific_used}*: Amount of used disk space in a specific unit. Defaults to bytes.
|
|
|
|
*{specific_free}*: Amount of available disk space for normal users in a specific unit. Defaults to bytes.
|
|
|
|
# NUMBER FORMAT MODIFIERS
|
|
|
|
*{total}*, *{used}* and *{free}* auto-scale with a binary prefix (KiB, GiB, …).
|
|
Their rendering can be tuned with fmt-style modifiers, e.g. *"{free:>}"* or
|
|
*"{free:G}"*, combined in any order:
|
|
|
|
*<*, *=*, *>*: Alignment/padding (left, column-align, right).
|
|
|
|
*u* / *U*: Hide (*u*) or show (*U*) the unit suffix. Shown by default with an auto
|
|
scale, hidden by default when a scale is forced.
|
|
|
|
*#*, *k*, *M*, *G*, *T*, *P*: Force a fixed scale instead of auto-selecting
|
|
(*#* = base scale). Forcing a scale hides the scale prefix and, by default, the
|
|
unit. E.g. *"{free:G}"* always shows gibibytes.
|
|
|
|
*i*: Force integer display (no decimals).
|
|
|
|
*b* / *B*: Force decimal base 1000 (*b*) or binary base 1024 (*B*); disk values
|
|
are binary by default.
|
|
|
|
A trailing number is a fixed width for the coefficient when a scale is forced;
|
|
overflow is shown as *#* characters (e.g. *"{free:=3#}"* → *###*).
|
|
|
|
# EXAMPLES
|
|
|
|
```
|
|
"disk": {
|
|
"interval": 30,
|
|
"format": "{percentage_free}% free on {path}",
|
|
}
|
|
```
|
|
|
|
```
|
|
"disk": {
|
|
"interval": 30,
|
|
"format": "{percentage_free}% free on {path}",
|
|
"header": "Disks: ",
|
|
"paths": ["/", "/home"],
|
|
"separator": " ",
|
|
}
|
|
```
|
|
|
|
```
|
|
"disk": {
|
|
"interval": 30,
|
|
"paths": ["/"],
|
|
"format": "{specific_free:0.2f} GB out of {specific_total:0.2f} GB available. Alternatively {free} out of {total} available",
|
|
"unit": "GB"
|
|
}
|
|
|
|
// 1434.25 GB out of 2000.00 GB available. Alternatively 1.4TiB out of 1.9TiB available.
|
|
```
|
|
|
|
# STYLE
|
|
|
|
- *#disk*
|