diff --git a/include/modules/battery.hpp b/include/modules/battery.hpp index 11028cf6..99950ae3 100644 --- a/include/modules/battery.hpp +++ b/include/modules/battery.hpp @@ -46,6 +46,7 @@ class Battery : public ALabel { int global_watch_fd_; std::mutex battery_list_mutex_; std::string old_status_; + bool warnFirstTime_{true}; util::SleeperThread thread_; util::SleeperThread thread_battery_update_; diff --git a/src/modules/battery.cpp b/src/modules/battery.cpp index cb7237a3..60194f0f 100644 --- a/src/modules/battery.cpp +++ b/src/modules/battery.cpp @@ -20,7 +20,6 @@ waybar::modules::Battery::Battery(const std::string& id, const Json::Value& conf throw std::runtime_error("Could not watch for battery plug/unplug"); } - refreshBatteries(); worker(); } @@ -73,7 +72,6 @@ void waybar::modules::Battery::worker() { void waybar::modules::Battery::refreshBatteries() { std::lock_guard guard(battery_list_mutex_); - // Mark existing list of batteries as not necessarily found std::map check_map; for (auto const& bat : batteries_) { @@ -117,12 +115,14 @@ void waybar::modules::Battery::refreshBatteries() { } catch (fs::filesystem_error& e) { throw std::runtime_error(e.what()); } - if (batteries_.empty()) { + if (warnFirstTime_ && batteries_.empty()) { if (config_["bat"].isString()) { - spdlog::warn("No battery named {}", config_["bat"].asString()); + spdlog::warn("No battery named {0}", config_["bat"].asString()); } else { spdlog::warn("No batteries."); } + + warnFirstTime_ = false; } // Remove any batteries that are no longer present and unwatch them