diff options
author | Leandro Pereira <leandro@hardinfo.org> | 2017-08-27 08:32:27 -0700 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2017-08-27 08:34:29 -0700 |
commit | 7ede287478d9f76166b6c5a9fa21bbd6199334c2 (patch) | |
tree | 924356a59ee1682f52d25efe9c6ed7b05f5b059f /modules/network/net.c | |
parent | b955821b18f7f5a9ee4a5d417fab8b2757f8a2fa (diff) |
Fix 802.11 signal to bar conversion
Just steal the code from GNOME shell:
https://github.com/GNOME/gnome-shell/blob/9cc143aaee8aa7c33d7815f744f8dc9e958bddf8/js/ui/status/network.js#L89-L98
Diffstat (limited to 'modules/network/net.c')
-rw-r--r-- | modules/network/net.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/modules/network/net.c b/modules/network/net.c index 99a5e616..a75cf8b6 100644 --- a/modules/network/net.c +++ b/modules/network/net.c @@ -306,24 +306,19 @@ remove_net_devices(gpointer key, gpointer value, gpointer data) #ifdef HAS_LINUX_WE const char *wifi_bars(int signal, int noise) { - float quality; + signal = -signal; - if (signal <= -100) - quality = 0.0; - else if (signal >= -50) - quality = 1.0; - else - quality = (2.0 * (signal + 100.0)) / 100.0; - - if (quality < 0.20) - return "▰▱▱▱▱"; - if (quality < 0.40) - return "▰▰▱▱▱"; - if (quality < 0.60) - return "▰▰▰▱▱"; - if (quality < 0.80) + if (signal > 80) + return "▰▰▰▰▰"; + if (signal > 55) return "▰▰▰▰▱"; - return "▰▰▰▰▰"; + if (signal > 30) + return "▰▰▰▱▱"; + if (signal > 15) + return "▰▰▱▱▱"; + if (signal > 5) + return "▰▱▱▱▱"; + return "▱▱▱▱▱"; } #endif |