Unify configs so we can get rid of all those branches per machine. Also Wayland changes for Violet

This commit is contained in:
Kevin Alberts 2025-07-25 17:39:36 +02:00
parent 5a0041e7d5
commit 6dd362247e
10 changed files with 274 additions and 105 deletions

View file

@ -649,62 +649,70 @@ class NetworkInfoWidget(DualPaneTextboxBase):
def _update_values(self):
# Wifi
try:
essid, quality = get_status(self.wireless_interface)
status = iwlib.get_iwconfig(self.wireless_interface)
self.wireless_ips = netifaces.ifaddresses(self.wireless_interface)
disconnected = essid is None
percent = math.ceil(((quality or 0) / 70) * 100)
self.wireless_quality = quality
self.wireless_signal = percent
self.wireless_name = essid
self.wireless_connected = not disconnected
self.wireless_accesspoint = status.get('Access Point', b'Unknown').decode()
self.wireless_frequency = status.get('Frequency', b'Unknown').decode()
self.wireless_ipv4 = self.wireless_ips.get(netifaces.AF_INET, [{'addr': ""}])[0]['addr']
self.wireless_ipv6 = self.wireless_ips.get(netifaces.AF_INET6, [{'addr': ""}])[0]['addr']
self.wireless_mac = self.wireless_ips.get(netifaces.AF_LINK, [{'addr': ""}])[0]['addr']
except EnvironmentError:
pass
if self.wireless_interface:
try:
essid, quality = get_status(self.wireless_interface)
status = iwlib.get_iwconfig(self.wireless_interface)
self.wireless_ips = netifaces.ifaddresses(self.wireless_interface)
disconnected = essid is None
percent = math.ceil(((quality or 0) / 70) * 100)
self.wireless_quality = quality
self.wireless_signal = percent
self.wireless_name = essid
self.wireless_connected = not disconnected
self.wireless_accesspoint = status.get('Access Point', b'Unknown').decode()
self.wireless_frequency = status.get('Frequency', b'Unknown').decode()
self.wireless_ipv4 = self.wireless_ips.get(netifaces.AF_INET, [{'addr': ""}])[0]['addr']
self.wireless_ipv6 = self.wireless_ips.get(netifaces.AF_INET6, [{'addr': ""}])[0]['addr']
self.wireless_mac = self.wireless_ips.get(netifaces.AF_LINK, [{'addr': ""}])[0]['addr']
except EnvironmentError:
pass
# Wired
try:
self.wired_ips = netifaces.ifaddresses(self.wired_interface)
self.wired_ipv4 = self.wired_ips.get(netifaces.AF_INET, [{'addr': ""}])[0]['addr']
self.wired_ipv6 = self.wired_ips.get(netifaces.AF_INET6, [{'addr': ""}])[0]['addr']
self.wired_mac = self.wired_ips.get(netifaces.AF_LINK, [{'addr': ""}])[0]['addr']
command = ["ip", "link", "show", "{}".format(self.wired_interface)]
if self.wired_interface:
try:
eth_status = call_process(command)
except subprocess.CalledProcessError as e:
logger.error(f"Error while calling {command} - {e}")
return
m = self.wired_up_regex.search(eth_status)
if m:
self.wired_connected = "UP" in m.group(1)
else:
self.wired_connected = False
self.wired_ips = netifaces.ifaddresses(self.wired_interface)
self.wired_ipv4 = self.wired_ips.get(netifaces.AF_INET, [{'addr': ""}])[0]['addr']
self.wired_ipv6 = self.wired_ips.get(netifaces.AF_INET6, [{'addr': ""}])[0]['addr']
self.wired_mac = self.wired_ips.get(netifaces.AF_LINK, [{'addr': ""}])[0]['addr']
command = ["ip", "link", "show", "{}".format(self.wired_interface)]
try:
eth_status = call_process(command)
except subprocess.CalledProcessError as e:
logger.error(f"Error while calling {command} - {e}")
return
m = self.wired_up_regex.search(eth_status)
if m:
self.wired_connected = "UP" in m.group(1)
else:
self.wired_connected = False
except (EnvironmentError, ValueError):
pass
except (EnvironmentError, ValueError):
pass
def update(self):
self._update_values()
self.draw()
def draw(self):
if self.wireless_connected:
strength = ""
if self.wireless_signal < 66:
strength = ""
if self.wireless_signal < 33:
strength = ""
self.text_left = strength
if self.wireless_interface:
if self.wireless_connected:
strength = ""
if self.wireless_signal < 66:
strength = ""
if self.wireless_signal < 33:
strength = ""
self.text_left = strength
else:
self.text_left = ""
else:
self.text_left = ""
self.text_left = ""
if self.wired_connected:
self.text_right = ""
if self.wired_interface:
if self.wired_connected:
self.text_right = ""
else:
self.text_right = ""
else:
self.text_right = ""