diff --git a/panels/network.py b/panels/network.py
index 69f4a9a6..476ecaec 100644
--- a/panels/network.py
+++ b/panels/network.py
@@ -400,9 +400,24 @@ class Panel(ScreenPanel):
chan = _("Channel") + f' {netinfo["channel"]}'
if "signal_level_dBm" in netinfo:
lvl = f'{netinfo["signal_level_dBm"]} ' + _("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]['info'].set_markup(f"{info} {encr} {freq} {chan} {lvl}")
- self.labels['networks'][ssid]['info'].show_all()
+ self.labels['networks'][ssid]['row'].show_all()
+
+ def signal_strength(self, signal_level):
+ if signal_level > 50:
+ return self._gtk.Image('wifi_excellent')
+ elif signal_level > 60:
+ return self._gtk.Image('wifi_good')
+ elif signal_level > 70:
+ return self._gtk.Image('wifi_fair')
+ else:
+ return self._gtk.Image('wifi_weak')
def update_single_network_info(self):
diff --git a/styles/colorized/images/wifi_excellent.svg b/styles/colorized/images/wifi_excellent.svg
new file mode 100644
index 00000000..be83852c
--- /dev/null
+++ b/styles/colorized/images/wifi_excellent.svg
@@ -0,0 +1,83 @@
+
+
diff --git a/styles/colorized/images/wifi_fair.svg b/styles/colorized/images/wifi_fair.svg
new file mode 100644
index 00000000..5fbbb39a
--- /dev/null
+++ b/styles/colorized/images/wifi_fair.svg
@@ -0,0 +1,83 @@
+
+
diff --git a/styles/colorized/images/wifi_good.svg b/styles/colorized/images/wifi_good.svg
new file mode 100644
index 00000000..922cc2ed
--- /dev/null
+++ b/styles/colorized/images/wifi_good.svg
@@ -0,0 +1,83 @@
+
+
diff --git a/styles/colorized/images/wifi_weak.svg b/styles/colorized/images/wifi_weak.svg
new file mode 100644
index 00000000..f95eca63
--- /dev/null
+++ b/styles/colorized/images/wifi_weak.svg
@@ -0,0 +1,98 @@
+
+
diff --git a/styles/material-dark/images/wifi_excellent.svg b/styles/material-dark/images/wifi_excellent.svg
new file mode 100644
index 00000000..7967df93
--- /dev/null
+++ b/styles/material-dark/images/wifi_excellent.svg
@@ -0,0 +1,38 @@
+
+
diff --git a/styles/material-dark/images/wifi_fair.svg b/styles/material-dark/images/wifi_fair.svg
new file mode 100644
index 00000000..034f82fc
--- /dev/null
+++ b/styles/material-dark/images/wifi_fair.svg
@@ -0,0 +1,41 @@
+
+
diff --git a/styles/material-dark/images/wifi_good.svg b/styles/material-dark/images/wifi_good.svg
new file mode 100644
index 00000000..751a5380
--- /dev/null
+++ b/styles/material-dark/images/wifi_good.svg
@@ -0,0 +1,41 @@
+
+
diff --git a/styles/material-dark/images/wifi_weak.svg b/styles/material-dark/images/wifi_weak.svg
new file mode 100644
index 00000000..6a3893bd
--- /dev/null
+++ b/styles/material-dark/images/wifi_weak.svg
@@ -0,0 +1,40 @@
+
+
diff --git a/styles/material-darker/images/wifi_excellent.svg b/styles/material-darker/images/wifi_excellent.svg
new file mode 100644
index 00000000..3576920e
--- /dev/null
+++ b/styles/material-darker/images/wifi_excellent.svg
@@ -0,0 +1,40 @@
+
+
diff --git a/styles/material-darker/images/wifi_fair.svg b/styles/material-darker/images/wifi_fair.svg
new file mode 100644
index 00000000..0a7fd55c
--- /dev/null
+++ b/styles/material-darker/images/wifi_fair.svg
@@ -0,0 +1,41 @@
+
+
diff --git a/styles/material-darker/images/wifi_good.svg b/styles/material-darker/images/wifi_good.svg
new file mode 100644
index 00000000..2cefb8c4
--- /dev/null
+++ b/styles/material-darker/images/wifi_good.svg
@@ -0,0 +1,41 @@
+
+
diff --git a/styles/material-darker/images/wifi_weak.svg b/styles/material-darker/images/wifi_weak.svg
new file mode 100644
index 00000000..69ae46d6
--- /dev/null
+++ b/styles/material-darker/images/wifi_weak.svg
@@ -0,0 +1,47 @@
+
+
diff --git a/styles/material-light/images/wifi_excellent.svg b/styles/material-light/images/wifi_excellent.svg
new file mode 100644
index 00000000..6267da57
--- /dev/null
+++ b/styles/material-light/images/wifi_excellent.svg
@@ -0,0 +1,40 @@
+
+
diff --git a/styles/material-light/images/wifi_fair.svg b/styles/material-light/images/wifi_fair.svg
new file mode 100644
index 00000000..3b8e97a0
--- /dev/null
+++ b/styles/material-light/images/wifi_fair.svg
@@ -0,0 +1,41 @@
+
+
diff --git a/styles/material-light/images/wifi_good.svg b/styles/material-light/images/wifi_good.svg
new file mode 100644
index 00000000..3786a2b6
--- /dev/null
+++ b/styles/material-light/images/wifi_good.svg
@@ -0,0 +1,41 @@
+
+
diff --git a/styles/material-light/images/wifi_weak.svg b/styles/material-light/images/wifi_weak.svg
new file mode 100644
index 00000000..7829d616
--- /dev/null
+++ b/styles/material-light/images/wifi_weak.svg
@@ -0,0 +1,40 @@
+
+
diff --git a/styles/z-bolt/images/wifi_excellent.svg b/styles/z-bolt/images/wifi_excellent.svg
new file mode 100644
index 00000000..8779ba82
--- /dev/null
+++ b/styles/z-bolt/images/wifi_excellent.svg
@@ -0,0 +1,87 @@
+
+
diff --git a/styles/z-bolt/images/wifi_fair.svg b/styles/z-bolt/images/wifi_fair.svg
new file mode 100644
index 00000000..4eae144d
--- /dev/null
+++ b/styles/z-bolt/images/wifi_fair.svg
@@ -0,0 +1,75 @@
+
+
diff --git a/styles/z-bolt/images/wifi_good.svg b/styles/z-bolt/images/wifi_good.svg
new file mode 100644
index 00000000..03bfd534
--- /dev/null
+++ b/styles/z-bolt/images/wifi_good.svg
@@ -0,0 +1,81 @@
+
+
diff --git a/styles/z-bolt/images/wifi_weak.svg b/styles/z-bolt/images/wifi_weak.svg
new file mode 100644
index 00000000..9740bc9f
--- /dev/null
+++ b/styles/z-bolt/images/wifi_weak.svg
@@ -0,0 +1,84 @@
+
+