Skip to content

Commit

Permalink
Merge pull request Alexays#3674 from PassiHD2004/master
Browse files Browse the repository at this point in the history
Add warning threshold to temperature module
  • Loading branch information
Alexays authored Oct 25, 2024
2 parents 9d89dda + bb40e16 commit 5f26051
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
1 change: 1 addition & 0 deletions include/modules/temperature.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class Temperature : public ALabel {
private:
float getTemperature();
bool isCritical(uint16_t);
bool isWarning(uint16_t);

std::string file_path_;
util::SleeperThread thread_;
Expand Down
8 changes: 8 additions & 0 deletions man/waybar-temperature.5.scd
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ Addressed by *temperature*
typeof: string ++
The temperature filename of your *hwmon-path-abs*, e.g. *temp1_input*

*warning-threshold*: ++
typeof: integer ++
The threshold before it is considered warning (Celsius).

*critical-threshold*: ++
typeof: integer ++
The threshold before it is considered critical (Celsius).
Expand All @@ -40,6 +44,10 @@ Addressed by *temperature*
default: 10 ++
The interval in which the information gets polled.

*format-warning*: ++
typeof: string ++
The format to use when temperature is considered warning

*format-critical*: ++
typeof: string ++
The format to use when temperature is considered critical
Expand Down
14 changes: 12 additions & 2 deletions src/modules/temperature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,17 @@ auto waybar::modules::Temperature::update() -> void {
uint16_t temperature_f = std::round(temperature * 1.8 + 32);
uint16_t temperature_k = std::round(temperature + 273.15);
auto critical = isCritical(temperature_c);
auto warning = isWarning(temperature_c);
auto format = format_;
if (critical) {
format = config_["format-critical"].isString() ? config_["format-critical"].asString() : format;
label_.get_style_context()->add_class("critical");
} else {
} else if (warning) {
format = config_["format-warning"].isString() ? config_["format-warning"].asString() : format;
label_.get_style_context()->add_class("warning");
} else {
label_.get_style_context()->remove_class("critical");
label_.get_style_context()->remove_class("warning");
}

if (format.empty()) {
Expand Down Expand Up @@ -135,7 +140,12 @@ float waybar::modules::Temperature::getTemperature() {
#endif
}

bool waybar::modules::Temperature::isWarning(uint16_t temperature_c) {
return config_["warning-threshold"].isInt() &&
temperature_c >= config_["warning-threshold"].asInt();
}

bool waybar::modules::Temperature::isCritical(uint16_t temperature_c) {
return config_["critical-threshold"].isInt() &&
temperature_c >= config_["critical-threshold"].asInt();
}
}

0 comments on commit 5f26051

Please sign in to comment.