Files
dotfiles/dot_config/waybar/waybar.wiki/Module:-Battery.md
s0wlz (Matthias Puchstein) 8018b53353 feat: finalize migration to chezmoi and modernize configuration logic
- Modularize Hyprland config into hyprland.d/
- Implement infinitely scalable monitor/workspace logic using templates and loop-based data structures
- Consolidate host-specific configs (hyprlock, hyprpaper, waybar) into single templates
- Resolve waybar symlink conflict and fix template execution errors
- Integrate chezmoi data variables for scale, resolution, and peripherals
2025-12-27 22:52:43 +01:00

112 lines
6.5 KiB
Markdown

The `battery` module displays the current capacity and state (eg. charging) of your battery.
### Config
Addressed by `battery`
| option | typeof | default | description |
| ---------------- | ------- | ------------- | ----------- |
| `bat` | string | | The battery to monitor, as in `/sys/class/power_supply/` instead of auto detect. |
| `adapter` | string | | The adapter to monitor, as in `/sys/class/power_supply/` instead of auto detect. |
| `design-capacity` | bool | `false` | Option to enable the use of the design capacity instead of the actual maximal capacity. Thus, even full, the battery may be at less than 100%. |
| `full-at` | integer | | Define the max percentage of the battery, useful for an old battery, e.g. 96 |
| `interval` | integer | 60 | The polling interval (in seconds) for the battery status. |
| `states` | array/object | | A number of battery states which get activated on certain capacity levels.<br>See [States](https://github.com/Alexays/Waybar/wiki/States) |
| `format` | string | `{capacity}%` | The format, how the information should be displayed. |
| `format-time` | string | `{H} h {M} min` | The format of the estimate of time until full or empty. Use `{m}` for zero-padded minutes. |
| `format-icons` | array/object | | Based on the current capacity, the corresponding icon gets selected.<br>The order is *low* to *high*.<br>Or by the state if it is an object. |
| `max-length` | integer | | The maximum length (in characters) the module should display. |
| `rotate` | integer | | Positive value to rotate the text label. |
| `on-click` | string | | Command to execute when clicking the module. |
| `on-click-middle` | string | | Command to execute when you middle click on the module using the mousewheel. |
| `on-click-right` | string | | Command to execute when you right click on the module. |
| `on-scroll-up` | string | | Command to execute when scrolling up on the module. |
| `on-scroll-down` | string | | Command to execute when scrolling down on the module. |
| `smooth-scrolling-threshold`| double | | Threshold to be used when scrolling. |
| `tooltip` | bool | `true` | Option to enable tooltip on hover. |
| `tooltip-format` | string | `{timeTo}` | The tooltip format. |
| `weighted-average` | bool | `false` | For devices with multiple batteries, an option to display the percentage as an average weighted by the size of the batteries, rather than a simple average of their percentage levels |
| `bat-compatibility` | bool | `false` | Option to enable battery compatibility if not detected. |
#### Format replacements:
| string | replacement |
| ------------ | ----------- |
| `{capacity}` | Capacity in percentage |
| `{power}` | Power draw in watts |
| `{icon}` | Icon, as defined in `format-icons`. |
| `{time}` | Estimate of time until full or empty. Note that this is based on the power draw at the last refresh time, not an average. |
| `{cycles}` | The amount of charge cycles the highest-capacity battery has seen *(Linux only)* |
<!--
| `{health}` | A percentage representing the highest-capacity battery's current maximum charge relative to it's design capacity *(Linux only)* |
-->
<a name="module-battery-config-format-custom"></a>
#### Custom Formats:
The `battery` module allows to define custom formats based on up to two factors. The best fitting format will be selected.
| format | description |
| ------------------------- | ----------- |
| `format-<state>` | With [states](#module-battery-config-states), a custom format can be set depending on the capacity of your battery. |
| `format-<status>` | With the status, a custom format can be set depending on the status in `/sys/class/power_supply/<bat>/status` (in lowercase). |
| `format-<status>-<state>` | You can also set a custom format depending on both values. |
<a name="module-battery-config-tooltip-format-custom"></a>
#### Custom Tooltip Formats:
The tooltip format can be changed similarly to the label format. The best fitting from `tooltip-format`, `tooltip-format-<state>`, `tooltip-format-<status>` and `tooltip-format-<status>-<state>` will be used (using the same logic as `format-*`). Valid tooltip format replacements are as follows:
| string | replacement |
| ------------ | ----------- |
| `{capacity}` | Capacity in percentage |
| `{power}` | Power draw in watts |
| `{time}` | Estimate of time until full or empty. Note that this is based on the power draw at the last refresh time, not an average. |
| `{timeTo}` | Either an estimate of time until full or empty, or "Full", "Plugged" or "Empty" depending on the current battery status |
| `{cycles}` | The amount of charge cycles the highest-capacity battery has seen *(Linux only)* |
| `{health}` | A percentage representing the highest-capacity battery's current maximum charge relative to it's design capacity *(Linux only)* |
<a name="module-battery-config-states"></a>
#### States:
- Every entry (*state*) consists of a `<name>` (typeof: `string`) and a `<value>` (typeof: `integer`).
- The state can be addressed as a CSS class in the `style.css`. The name of the CSS class is the `<name>` of the state.
Each class gets activated when the current capacity is equal or below the configured `<value>`.
- Also each state can have its own `format`.
Those can be configured via `format-<name>`.
Or if you want to differentiate a bit more even as `format-<status>-<state>`. For more information see [custom formats](#module-battery-config-format-custom).
#### Example:
```jsonc
"battery": {
"bat": "BAT2",
"interval": 60,
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-icons": ["", "", "", "", ""],
"max-length": 25
}
```
### Style
- `#battery`
- `#battery.<status>`
- `<status>` is the value of `/sys/class/power_supply/<bat>/status` in lowercase.
- `#battery.<state>`
- `<state>` can be defined in the `config`. For more information see [`states`](#module-battery-config-states)
- `#battery.<status>.<state>`
- Combination of both `<status>` and `<state>`.
The following classes can apply styles to _the entire Waybar_:
- `window#waybar.battery-<state>`
- `<state>` can be defined in the `config`, as previously mentioned.