mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-31 07:52:42 +01:00 
			
		
		
		
	Merge pull request #2241 from yangyingchao/master
support multiple items in hwmon-path of temperature module
This commit is contained in:
		| @@ -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 ++ | ||||
| @@ -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 " | ||||
|   | ||||
| @@ -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() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Alexis Rouillard
					Alexis Rouillard