diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 97aef19..e766dd9 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -5,6 +5,7 @@ Alex Timmermann Andrés Martano Argish42 Armin Fisslthaler +Armin F. Gnosa Arvedui Baptiste Grenier bparmentier diff --git a/i3pystatus/network.py b/i3pystatus/network.py index a5209a5..a2c261f 100644 --- a/i3pystatus/network.py +++ b/i3pystatus/network.py @@ -64,7 +64,7 @@ class NetworkInfo: Retrieve network information. """ - def __init__(self, interface, ignore_interfaces, detached_down, unknown_up, get_wifi_info=False): + def __init__(self, interface, ignore_interfaces, detached_down, unknown_up, freq_divisor, get_wifi_info=False): if interface not in netifaces.interfaces() and not detached_down: raise RuntimeError( "Unknown interface {iface}!".format(iface=interface)) @@ -74,6 +74,11 @@ class NetworkInfo: self.unknown_up = unknown_up self.get_wifi_info = get_wifi_info + if freq_divisor == 0: + raise RuntimeError("Frequency divider cannot be 0!") + else: + self.freq_divisor = freq_divisor + def get_info(self, interface): format_dict = dict(v4="", v4mask="", v4cidr="", v6="", v6mask="", v6cidr="") iface_up = sysfs_interface_up(interface, self.unknown_up) @@ -141,7 +146,7 @@ class NetworkInfo: return info info["essid"] = iwi["essid"] - info["freq"] = iwi["freq"] + info["freq"] = iwi["freq"] / self.freq_divisor quality = iwi["quality"] if quality["quality_max"] > 0: info["quality"] = quality["quality"] / quality["quality_max"] @@ -247,6 +252,7 @@ class Network(IntervalModule, ColorRangeModule): * `{essid}` — ESSID of currently connected wifi * `{freq}` — Current frequency + * `{freq_divisor}` — Frequency divisor * `{quality}` — Link quality in percent * `{quality_bar}` —Bar graphically representing link quality @@ -281,6 +287,7 @@ class Network(IntervalModule, ColorRangeModule): ("graph_type", "Whether to draw the network traffic graph for input or output. " "Allowed values 'input' or 'output'"), ("divisor", "divide all byte values by this value"), + ("freq_divisor", "divide Wifi frequency by this value"), ("ignore_interfaces", "Array of interfaces to ignore when cycling through " "on click, eg, ['lo']"), ("round_size", "defines number of digits in round"), @@ -313,6 +320,7 @@ class Network(IntervalModule, ColorRangeModule): detached_down = True unknown_up = False ignore_interfaces = ["lo"] + freq_divisor = 1 on_leftclick = "nm-connection-editor" on_rightclick = "cycle_interface" @@ -328,7 +336,7 @@ class Network(IntervalModule, ColorRangeModule): get_wifi_info = False self.network_info = NetworkInfo(self.interface, self.ignore_interfaces, self.detached_down, self.unknown_up, - get_wifi_info) + self.freq_divisor, get_wifi_info) # Don't require importing psutil unless using the functionality it offers. if any(s in self.format_up or s in self.format_down for s in