Merge pull request #2494 from KanuX-14/battery_fix
Fix battery not showing for some devices
This commit is contained in:
commit
9b8adc1951
|
@ -100,6 +100,11 @@ The *battery* module displays the current capacity and state (eg. charging) of y
|
||||||
default: true ++
|
default: true ++
|
||||||
Option to disable tooltip on hover.
|
Option to disable tooltip on hover.
|
||||||
|
|
||||||
|
*bat-compatibility*: ++
|
||||||
|
typeof: bool ++
|
||||||
|
default: false ++
|
||||||
|
Option to enable battery compatibility if not detected.
|
||||||
|
|
||||||
# FORMAT REPLACEMENTS
|
# FORMAT REPLACEMENTS
|
||||||
|
|
||||||
*{capacity}*: Capacity in percentage
|
*{capacity}*: Capacity in percentage
|
||||||
|
|
|
@ -100,9 +100,11 @@ void waybar::modules::Battery::refreshBatteries() {
|
||||||
}
|
}
|
||||||
auto dir_name = node.path().filename();
|
auto dir_name = node.path().filename();
|
||||||
auto bat_defined = config_["bat"].isString();
|
auto bat_defined = config_["bat"].isString();
|
||||||
|
bool bat_compatibility = config_["bat-compatibility"].asBool();
|
||||||
if (((bat_defined && dir_name == config_["bat"].asString()) || !bat_defined) &&
|
if (((bat_defined && dir_name == config_["bat"].asString()) || !bat_defined) &&
|
||||||
(fs::exists(node.path() / "capacity") || fs::exists(node.path() / "charge_now")) &&
|
(fs::exists(node.path() / "capacity") || fs::exists(node.path() / "charge_now")) &&
|
||||||
fs::exists(node.path() / "uevent") && fs::exists(node.path() / "status") &&
|
fs::exists(node.path() / "uevent") &&
|
||||||
|
(fs::exists(node.path() / "status") || bat_compatibility) &&
|
||||||
fs::exists(node.path() / "type")) {
|
fs::exists(node.path() / "type")) {
|
||||||
std::string type;
|
std::string type;
|
||||||
std::ifstream(node.path() / "type") >> type;
|
std::ifstream(node.path() / "type") >> type;
|
||||||
|
@ -252,7 +254,13 @@ const std::tuple<uint8_t, float, std::string, float> waybar::modules::Battery::g
|
||||||
for (auto const& item : batteries_) {
|
for (auto const& item : batteries_) {
|
||||||
auto bat = item.first;
|
auto bat = item.first;
|
||||||
std::string _status;
|
std::string _status;
|
||||||
std::getline(std::ifstream(bat / "status"), _status);
|
|
||||||
|
/* Check for adapter status if battery is not available */
|
||||||
|
if(!std::ifstream(bat / "status")) {
|
||||||
|
std::getline(std::ifstream(adapter_ / "status"), _status);
|
||||||
|
} else {
|
||||||
|
std::getline(std::ifstream(bat / "status"), _status);
|
||||||
|
}
|
||||||
|
|
||||||
// Some battery will report current and charge in μA/μAh.
|
// Some battery will report current and charge in μA/μAh.
|
||||||
// Scale these by the voltage to get μW/μWh.
|
// Scale these by the voltage to get μW/μWh.
|
||||||
|
|
Loading…
Reference in New Issue