Files
dotfiles/dot_config/waybar/waybar.wiki/Module:-Bluetooth.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

104 lines
6.8 KiB
Markdown

The `bluetooth` module displays information about a bluetooth controller and its connections.
### Config
Addressed by `bluetooth`
| option | typeof | default | description |
| ----------------- | ------- | ------------------- | ----------- |
| `controller` | string | | Use the controller with the defined alias. Otherwise a random controller is used. Recommended to define when there is more than 1 controller available to the system. |
| `format-device-preference` | array | | A ranking of bluetooth devices, addressed by their alias. The order is from `first displayed` to `last displayed`. If this config option is not defined or none of the devices in the list are connected, it will fall back to showing the last connected device. |
| `format` | string | ` {status}` | The format, how information should be displayed. This format is used when other formats aren't specified.
| `format-disabled` | string | | This format is used when the displayed controller is disabled. |
| `format-off` | string | | This format is used when the displayed controller is turned off. |
| `format-on` | string | | This format is used when the displayed controller is turned on with no devices connected. |
| `format-connected` | string | | This format is used when the displayed controller is connected to at least 1 device. |
| `format-no-controller` | string | | This format is used when no Bluetooth controller is available. |
| `rotate` | integer | | Positive value to rotate the text label. |
| `max-length` | integer | | The maximum length in characters the module should display. |
| `min-length` | integer | | The minimum length in characters the module should take up. |
| `align` | float | | The alignment of the text, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text. |
| `on-click` | string | | Command to execute when clicking on the module. |
| `on-click-middle` | string | | Command to execute when you middle click on the module using 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 disable tooltip on hover. |
| `tooltip-format` | string | | The format, how information should be displayed in the tooltip. This format is used when other formats aren't specified. |
| `tooltip-format-disabled` | string | | This format is used when the displayed controller is disabled. |
| `tooltip-format-off` | string | | This format is used when the displayed controller is turned off. |
| `tooltip-format-on` | string | | This format is used when the displayed controller is turned on with no devices connected. |
| `tooltip-format-connected` | string | | This format is used when the displayed controller is connected to at least 1 device. |
| `tooltip-format-enumerate-connected` | string | | This format is used to define how each connected device should be displayed within the `device_enumerate` format replacement in the tooltip menu. |
#### Format replacements:
| string | replacement |
| ----------------------| ----------- |
| `{status}` | Status of the bluetooth device. |
| `{num_connections}` | Number of connections the displayed controller has. |
| `{controller_address}` | Address of the displayed controller. |
| `{controller_address_type}` | Address type of the displayed controller. |
| `{controller_alias}` | Alias of the displayed controller. |
| `{device_address}` | Address of the displayed device. |
| `{device_address_type}` | Address type of the displayed device. |
| `{device_alias}` | Alias of the displayed device. |
| `{device_enumerate}` | Show a list of all connected devices, each on a seperate line. Define the format of each device with the `tooltip-format-enumerate-connected` and/or `tooltip-format-enumerate-connected-battery` config options. Can only be used in the tooltip related format options. |
#### Experimental battery percentage feature:
At the time of writing, the experimental features of BlueZ need to be turned on, for the battery percentage options listed below to work.
##### Experimental format replacements
| string | replacement |
| ----------------------| ----------- |
| `{device_battery_percentage}` | Battery percentage of the displayed device if available. Use only in the config options defined below. |
##### Experimental configuration
| option | typeof | default | description |
| ----------------- | ------- | ------------------- | ----------- |
| `format-connected-battery` | string | | This format is used when the displayed device provides its battery percentage. |
| `tooltip-format-connected-battery` | string | | This format is used when the displayed device provides its battery percentage. |
| `tooltip-format-enumerate-connected-battery` | string | | This format is used to define how each connected device with a battery should be displayed within the `device_enumerate` format replacement option. When this config option is not defined, it will fall back on the `tooltip-format-enumerate-connected` config option. |
#### Examples:
```jsonc
"bluetooth": {
// "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system
"format": " {status}",
"format-disabled": "", // an empty format will hide the module
"format-connected": " {num_connections} connected",
"tooltip-format": "{controller_alias}\t{controller_address}",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}"
}
```
```jsonc
"bluetooth": {
"format": " {status}",
"format-connected": " {device_alias}",
"format-connected-battery": " {device_alias} {device_battery_percentage}%",
// "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
}
```
### Style
- `#bluetooth`
- `#bluetooth.disabled`
- `#bluetooth.off`
- `#bluetooth.on`
- `#bluetooth.connected`
- `#bluetooth.discoverable`
- `#bluetooth.discovering`
- `#bluetooth.pairable`
- `#bluetooth.no-controller`