i3pystatus/i3pystatus/wireless.py
2013-10-01 15:22:09 +02:00

41 lines
1.1 KiB
Python

import basiciw
from i3pystatus.network import Network
class Wireless(Network):
"""
Display network information about a interface.
Requires the PyPI packages `netifaces-py3` and `basiciw`.
This is based on the network module, so all options and formatters are
the same, except for these additional formatters:
* `{essid}` — ESSID of currently connected wifi
* `{freq}` — Current frequency
* `{quality}` — Link quality in percent
"""
interface = "wlan0"
def collect(self):
color, format, fdict, up = super().collect()
if up:
iwi = basiciw.iwinfo(self.interface)
fdict["essid"] = iwi["essid"]
fdict["freq"] = iwi["freq"]
quality = iwi["quality"]
if quality["quality_max"] > 0:
fdict["quality"] = quality["quality"] / quality["quality_max"]
else:
fdict["quality"] = quality["quality"]
fdict["quality"] *= 100
else:
fdict["essid"] = ""
fdict["freq"] = fdict["quality"] = 0.0
return (color, format, fdict, up)