diff --git a/src/modules/memory.cpp b/src/modules/memory.cpp index c71a58fc..17df1507 100644 --- a/src/modules/memory.cpp +++ b/src/modules/memory.cpp @@ -16,11 +16,11 @@ auto waybar::modules::Memory::update() -> void { struct sysinfo info; if (!sysinfo(&info)) { - int available = ((double)info.freeram / (double)info.totalram) * 100; + int used_ram_percentage = 100 * (info.totalram - info.freeram) / info.totalram; auto format = _config["format"] ? _config["format"].asString() : "{}%"; - _label.set_text(fmt::format(format, available)); - auto used = (info.totalram - (info.totalram - info.freeram)) / std::pow(1024, 3); - _label.set_tooltip_text(fmt::format("{:.{}f}Gb used", used, 1)); + _label.set_text(fmt::format(format, used_ram_percentage)); + auto used_ram_gigabytes = (info.totalram - info.freeram) / std::pow(1024, 3); + _label.set_tooltip_text(fmt::format("{:.{}f}Gb used", used_ram_gigabytes, 1)); } }