From 6c1a0fa1851b8c837d4defa64073d0bbf5b880e9 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 5 Jul 2026 23:04:58 +0200 Subject: [PATCH] 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 --- src/modules/bluetooth.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/bluetooth.cpp b/src/modules/bluetooth.cpp index 8adfff26..3e4203d9 100644 --- a/src/modules/bluetooth.cpp +++ b/src/modules/bluetooth.cpp @@ -349,7 +349,15 @@ auto waybar::modules::Bluetooth::update() -> void { 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_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();