From a63bc849184c99a74ab2b5aacf062999749e9b0a Mon Sep 17 00:00:00 2001 From: Benjamin Cheng Date: Wed, 4 Sep 2019 14:43:52 -0400 Subject: [PATCH] Add configurable time display for battery module Adds a `format-time` configuration for the battery module so that users can configure how they want their remaining time to be displayed. The default format remains the same as before, i.e. `{H} h {M} min`, but users can choose something like `{H}:{M:02d}` to give an output like `4:29` if wanted. --- src/modules/battery.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/battery.cpp b/src/modules/battery.cpp index e3d7c9b8..31190edb 100644 --- a/src/modules/battery.cpp +++ b/src/modules/battery.cpp @@ -141,7 +141,11 @@ const std::string waybar::modules::Battery::formatTimeRemaining(float hoursRemai hoursRemaining = std::fabs(hoursRemaining); uint16_t full_hours = static_cast(hoursRemaining); uint16_t minutes = static_cast(60 * (hoursRemaining - full_hours)); - return std::to_string(full_hours) + " h " + std::to_string(minutes) + " min"; + auto format = std::string("{H} h {M} min"); + if (config_["format-time"].isString()) { + format = config_["format-time"].asString(); + } + return fmt::format(format, fmt::arg("H", full_hours), fmt::arg("M", minutes)); } auto waybar::modules::Battery::update() -> void {