diff --git a/resources/config b/resources/config index 959bb1a6..7fab92c1 100644 --- a/resources/config +++ b/resources/config @@ -9,6 +9,7 @@ "modules-right": ["pulseaudio", "network", "cpu", "memory", "battery", "clock"], // Modules configuration "sway/workspaces": { + // "all-outputs": true, "format-icons": { "1": "", "2": "", diff --git a/src/modules/battery.cpp b/src/modules/battery.cpp index 51aeb857..ba0f2fb5 100644 --- a/src/modules/battery.cpp +++ b/src/modules/battery.cpp @@ -37,14 +37,14 @@ auto waybar::modules::Battery::update() -> void { try { uint16_t total = 0; - bool charging = false; std::string status; for (auto &bat : _batteries) { uint16_t capacity; + std::string _status; std::ifstream(bat / "capacity") >> capacity; - std::ifstream(bat / "status") >> status; - if (status == "Charging") - charging = true; + std::ifstream(bat / "status") >> _status; + if (_status != "Unknown") + status = _status; total += capacity; } uint16_t capacity = total / _batteries.size(); @@ -53,6 +53,7 @@ auto waybar::modules::Battery::update() -> void _label.set_text(fmt::format(format, fmt::arg("capacity", capacity), fmt::arg("icon", _getIcon(capacity)))); _label.set_tooltip_text(status); + bool charging = status == "Charging"; if (charging) _label.get_style_context()->add_class("charging"); else diff --git a/src/modules/sway/workspaces.cpp b/src/modules/sway/workspaces.cpp index 3579de53..3b334825 100644 --- a/src/modules/sway/workspaces.cpp +++ b/src/modules/sway/workspaces.cpp @@ -13,11 +13,11 @@ waybar::modules::sway::Workspaces::Workspaces(Bar &bar, Json::Value config) ipc_single_command(_ipcEventfd, IPC_SUBSCRIBE, subscribe, &len); _thread = [this] { try { - if (_bar.outputName.empty()) { - // Wait for the name of the output + // Wait for the name of the output + if (!_config["all-outputs"].asBool() && _bar.outputName.empty()) { while (_bar.outputName.empty()) _thread.sleep_for(chrono::milliseconds(150)); - } else + } else if (_workspaces.size()) ipc_recv_response(_ipcEventfd); uint32_t len = 0; std::lock_guard lock(_mutex); @@ -45,7 +45,8 @@ auto waybar::modules::sway::Workspaces::update() -> void ++it; } for (auto node : _workspaces) { - if (_bar.outputName != node["output"].asString()) + if (!_config["all-outputs"].asBool() + && _bar.outputName != node["output"].asString()) continue; auto it = _buttons.find(node["num"].asInt()); if (it == _buttons.end()) {