Skip to content

Commit

Permalink
Merge pull request #2241 from yangyingchao/master
Browse files Browse the repository at this point in the history
support multiple items in hwmon-path of temperature module
  • Loading branch information
Alexays committed Jun 20, 2023
2 parents 7cda2df + e403c3b commit b0f89f2
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
4 changes: 3 additions & 1 deletion man/waybar-temperature.5.scd
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ Addressed by *temperature*
*hwmon-path*: ++
typeof: string ++
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*: ++
typeof: string ++
Expand Down Expand Up @@ -117,7 +119,7 @@ Addressed by *temperature*
```
"temperature": {
// "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,
// "format-critical": "{temperatureC}°C ",
"format": "{temperatureC}°C "
Expand Down
14 changes: 12 additions & 2 deletions src/modules/temperature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,18 @@ waybar::modules::Temperature::Temperature(const std::string& id, const Json::Val
#if defined(__FreeBSD__)
// try to read sysctl?
#else
if (config_["hwmon-path"].isString()) {
file_path_ = config_["hwmon-path"].asString();
auto& hwmon_path = config_["hwmon-path"];
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()) {
file_path_ = (*std::filesystem::directory_iterator(config_["hwmon-path-abs"].asString()))
.path()
Expand Down

0 comments on commit b0f89f2

Please sign in to comment.