From 6399b72aed286892a4c8f661600767fde5d311eb Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Tue, 21 Sep 2021 18:37:09 +0200 Subject: [PATCH] upstream patch for increasing precision of network speed from: https://github.com/polybar/polybar/pull/2054 --- polybar-net-speedrate-precison.patch | 42 ++++++++++++++++++++++++++++ polybar.spec | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 polybar-net-speedrate-precison.patch diff --git a/polybar-net-speedrate-precison.patch b/polybar-net-speedrate-precison.patch new file mode 100644 index 0000000..0cf2172 --- /dev/null +++ b/polybar-net-speedrate-precison.patch @@ -0,0 +1,42 @@ +From 6208c9e2454e00f61a0980ca3fdae630e52a9548 Mon Sep 17 00:00:00 2001 +From: Jan Palus +Date: Thu, 9 Apr 2020 01:39:27 +0200 +Subject: [PATCH] net: increase speedrate precision + +more granular units need lower precision, while less granular need +higher precision. assume sane default of: + +unit | precision +KB | 0 +MB | 1 +GB | 2 +--- + src/adapters/net.cpp | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/src/adapters/net.cpp b/src/adapters/net.cpp +index 40c8b89fd7..4860309577 100644 +--- a/src/adapters/net.cpp ++++ b/src/adapters/net.cpp +@@ -229,15 +229,17 @@ namespace net { + float time_diff = duration.count(); + float speedrate = bytes_diff / time_diff; + +- vector suffixes{"GB", "MB"}; ++ vector> units{make_pair("GB",2), make_pair("MB",1)}; + string suffix{"KB"}; ++ int precision = 0; + + while ((speedrate /= 1000) > 999) { +- suffix = suffixes.back(); +- suffixes.pop_back(); ++ suffix = units.back().first; ++ precision = units.back().second; ++ units.pop_back(); + } + +- return sstream() << std::setw(minwidth) << std::setfill(' ') << std::setprecision(0) << std::fixed << speedrate ++ return sstream() << std::setw(minwidth) << std::setfill(' ') << std::setprecision(precision) << std::fixed << speedrate + << " " << suffix << "/s"; + } + diff --git a/polybar.spec b/polybar.spec index 8eba7a2..6f4c163 100644 --- a/polybar.spec +++ b/polybar.spec @@ -7,6 +7,7 @@ Group: X11/Window Managers Source0: https://github.com/polybar/polybar/releases/download/%{version}/%{name}-%{version}.tar.gz # Source0-md5: 3a9b19709d49ac9e86d875ed2570ff91 Patch0: %{name}-mpd-overhead.patch +Patch1: %{name}-net-speedrate-precison.patch URL: https://polybar.github.io/ BuildRequires: alsa-lib-devel BuildRequires: cairo-devel @@ -66,6 +67,7 @@ zsh-completion for polybar. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build install -d build -- 2.43.0