fix(bluetooth): accept module-level placeholders in enumerate formats

tooltip-format-enumerate-connected[-battery] only received the device_* args,
so {status}, {num_connections} and {controller_*} threw fmt "argument not
found". Pass those args to the enumerate fmt::format as well.

Fixes #4384
This commit is contained in:
Alex
2026-07-05 23:06:37 +02:00
parent 6d5d5f0768
commit 6c1a0fa185
+9 -1
View File
@@ -349,7 +349,15 @@ auto waybar::modules::Bluetooth::update() -> void {
fmt::arg("device_alias", dev.alias), fmt::arg("icon", enumerate_icon), fmt::arg("device_alias", dev.alias), fmt::arg("icon", enumerate_icon),
fmt::arg("device_battery_percentage", dev.battery_percentage.value_or(0)), fmt::arg("device_battery_percentage", dev.battery_percentage.value_or(0)),
fmt::arg("device_battery_percentage_peripheral", fmt::arg("device_battery_percentage_peripheral",
dev.battery_percentage_peripheral.value_or(0))); dev.battery_percentage_peripheral.value_or(0)),
// Also accept the module-level placeholders so {status} etc. don't
// throw "argument not found" in an enumerate format (#4384).
fmt::arg("status", state_),
fmt::arg("num_connections", connected_devices_.size()),
fmt::arg("controller_address", cur_controller_ ? cur_controller_->address : "null"),
fmt::arg("controller_address_type",
cur_controller_ ? cur_controller_->address_type : "null"),
fmt::arg("controller_alias", cur_controller_ ? cur_controller_->alias : "null"));
} }
} }
device_enumerate_ = ss.str(); device_enumerate_ = ss.str();