feat(temperature): %temperature-k% token for Kelvin (#2784)
* added kelvin option for module/temperature * changelog for the changes i made * fixed typos * fixed the temperature conversion to be more precise * Update CHANGELOG.md Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com> * changed the calculation of the different temperatures it now uses float as a initial value and makes m_temp temp_k and temp_f by converting and rounding with std::round * std::lround makes more sense to use than std::round Co-authored-by: Patrick Ziegler <p.ziegler96@gmail.com>
This commit is contained in:
parent
b5764c8a93
commit
708bd9c891
@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- `custom/text`: The `content` setting and all its properties are deprecated in favor of `format` with the same functionality. ([`#2676`](https://github.com/polybar/polybar/pull/2676))
|
||||
|
||||
### Added
|
||||
- `internal/temperature`: `%temperature-k%` token displays the temperature in kelvin ([`#2774`](https://github.com/polybar/polybar/discussions/2774), [`#2784`](https://github.com/polybar/polybar/pull/2784))
|
||||
- `internal/pulseaudio`: `reverse-scroll` option ([`#2664`](https://github.com/polybar/polybar/pull/2664))
|
||||
- `custom/script`: Repeat interval for script failure (`interval-fail`) and `exec-if` (`interval-if`) ([`#943`](https://github.com/polybar/polybar/issues/943), [`#2606`](https://github.com/polybar/polybar/issues/2606), [`#2630`](https://github.com/polybar/polybar/pull/2630))
|
||||
- `custom/text`: Loads the `format` setting, which supports the `<label>` tag, if the deprecated `content` is not defined ([`#1331`](https://github.com/polybar/polybar/issues/1331), [`#2673`](https://github.com/polybar/polybar/pull/2673), [`#2676`](https://github.com/polybar/polybar/pull/2676))
|
||||
|
@ -51,22 +51,27 @@ namespace modules {
|
||||
}
|
||||
|
||||
bool temperature_module::update() {
|
||||
m_temp = std::strtol(file_util::contents(m_path).c_str(), nullptr, 10) / 1000.0f + 0.5f;
|
||||
int temp_f = floor(((1.8 * m_temp) + 32) + 0.5);
|
||||
float temp = float(std::strtol(file_util::contents(m_path).c_str(), nullptr, 10)) / 1000.0;
|
||||
m_temp = std::lround( temp );
|
||||
int temp_f = std::lround( (temp * 1.8) + 32.0 );
|
||||
int temp_k = std::lround( temp + 273.15 );
|
||||
|
||||
string temp_c_string = to_string(m_temp);
|
||||
string temp_f_string = to_string(temp_f);
|
||||
string temp_k_string = to_string(temp_k);
|
||||
|
||||
// Add units if `units = true` in config
|
||||
if(m_units) {
|
||||
temp_c_string += "°C";
|
||||
temp_f_string += "°F";
|
||||
temp_k_string += "K";
|
||||
}
|
||||
|
||||
const auto replace_tokens = [&](label_t& label) {
|
||||
label->reset_tokens();
|
||||
label->replace_token("%temperature-f%", temp_f_string);
|
||||
label->replace_token("%temperature-c%", temp_c_string);
|
||||
label->replace_token("%temperature-k%", temp_k_string);
|
||||
|
||||
// DEPRECATED: Will be removed in later release
|
||||
label->replace_token("%temperature%", temp_c_string);
|
||||
|
Loading…
Reference in New Issue
Block a user