Merge pull request #2241 from yangyingchao/master
support multiple items in hwmon-path of temperature module
This commit is contained in:
commit
b0f89f2bc1
|
@ -19,6 +19,8 @@ Addressed by *temperature*
|
||||||
*hwmon-path*: ++
|
*hwmon-path*: ++
|
||||||
typeof: string ++
|
typeof: string ++
|
||||||
The temperature path to use, e.g. */sys/class/hwmon/hwmon2/temp1_input* instead of one in */sys/class/thermal/*.
|
The temperature path to use, e.g. */sys/class/hwmon/hwmon2/temp1_input* instead of one in */sys/class/thermal/*.
|
||||||
|
This can also be an array of strings. In this case, waybar will check each item in the array and use the first valid one.
|
||||||
|
This is suitable if you want to share the same configuration file among different machines with different hardware configurations.
|
||||||
|
|
||||||
*hwmon-path-abs*: ++
|
*hwmon-path-abs*: ++
|
||||||
typeof: string ++
|
typeof: string ++
|
||||||
|
@ -117,7 +119,7 @@ Addressed by *temperature*
|
||||||
```
|
```
|
||||||
"temperature": {
|
"temperature": {
|
||||||
// "thermal-zone": 2,
|
// "thermal-zone": 2,
|
||||||
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
// "hwmon-path": ["/sys/class/hwmon/hwmon2/temp1_input", "/sys/class/thermal/thermal_zone0/temp"],
|
||||||
// "critical-threshold": 80,
|
// "critical-threshold": 80,
|
||||||
// "format-critical": "{temperatureC}°C ",
|
// "format-critical": "{temperatureC}°C ",
|
||||||
"format": "{temperatureC}°C "
|
"format": "{temperatureC}°C "
|
||||||
|
|
|
@ -11,8 +11,18 @@ waybar::modules::Temperature::Temperature(const std::string& id, const Json::Val
|
||||||
#if defined(__FreeBSD__)
|
#if defined(__FreeBSD__)
|
||||||
// try to read sysctl?
|
// try to read sysctl?
|
||||||
#else
|
#else
|
||||||
if (config_["hwmon-path"].isString()) {
|
auto& hwmon_path = config_["hwmon-path"];
|
||||||
file_path_ = config_["hwmon-path"].asString();
|
if (hwmon_path.isString()) {
|
||||||
|
file_path_ = hwmon_path.asString();
|
||||||
|
} else if (hwmon_path.isArray()) {
|
||||||
|
// if hwmon_path is an array, loop to find first valid item
|
||||||
|
for (auto& item : hwmon_path) {
|
||||||
|
auto path = item.asString();
|
||||||
|
if (std::filesystem::exists(path)) {
|
||||||
|
file_path_ = path;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (config_["hwmon-path-abs"].isString() && config_["input-filename"].isString()) {
|
} else if (config_["hwmon-path-abs"].isString() && config_["input-filename"].isString()) {
|
||||||
file_path_ = (*std::filesystem::directory_iterator(config_["hwmon-path-abs"].asString()))
|
file_path_ = (*std::filesystem::directory_iterator(config_["hwmon-path-abs"].asString()))
|
||||||
.path()
|
.path()
|
||||||
|
|
Loading…
Reference in New Issue