From badc47619ac1b3d9fc686bfa073ac4cfd9cbbcda Mon Sep 17 00:00:00 2001 From: alfrix Date: Sat, 25 Nov 2023 23:41:54 -0300 Subject: [PATCH] wifi: networkmanager signal strength is not dbm --- panels/network.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/panels/network.py b/panels/network.py index 476ecaec..399548c2 100644 --- a/panels/network.py +++ b/panels/network.py @@ -399,22 +399,32 @@ class Panel(ScreenPanel): if "channel" in netinfo: chan = _("Channel") + f' {netinfo["channel"]}' if "signal_level_dBm" in netinfo: - lvl = f'{netinfo["signal_level_dBm"]} ' + _("dBm") + lvl = f'{netinfo["signal_level_dBm"]} ' + if self.use_network_manager: + lvl += '%' + else: + lvl += _("dBm") + icon = self.signal_strength(int(netinfo["signal_level_dBm"])) if 'icon' not in self.labels['networks'][ssid]: - icon = self.signal_strength(int(netinfo["signal_level_dBm"])) self.labels['networks'][ssid]['row'].add(icon) self.labels['networks'][ssid]['row'].reorder_child(icon, 0) self.labels['networks'][ssid]['icon'] = icon + self.labels['networks'][ssid]['icon'] = icon self.labels['networks'][ssid]['info'].set_markup(f"{info} {encr} {freq} {chan} {lvl}") self.labels['networks'][ssid]['row'].show_all() def signal_strength(self, signal_level): - if signal_level > 50: + # networkmanager uses percentage not dbm + # the bars of nmcli are aligned near this breakpoints + exc = 77 if self.use_network_manager else -50 + good = 60 if self.use_network_manager else -60 + fair = 35 if self.use_network_manager else -70 + if signal_level > exc: return self._gtk.Image('wifi_excellent') - elif signal_level > 60: + elif signal_level > good: return self._gtk.Image('wifi_good') - elif signal_level > 70: + elif signal_level > fair: return self._gtk.Image('wifi_fair') else: return self._gtk.Image('wifi_weak')