Gio.Subprocess.communicate_utf8_async requires explicit promisification
via Gio._promisify() to be used with await. Without it, the call fails
with "At least 3 arguments required, but only 2 passed", causing silent
fallback to unknown WiFi generation on every refresh.
GLib.spawn_command_line_sync freezes the shell process while waiting
for the command to complete. Use Gio.Subprocess with
communicate_utf8_async instead, as required by EGO review guidelines.
Si disable() est appelé pendant l'initialisation async de
NetworkManager, le callback .then() pouvait créer l'indicateur
sur une extension déjà nettoyée. Le guard vérifie que wifiService
est encore présent avant de continuer.
tsconfig.build.json étend tsconfig.json en excluant les *.test.ts,
utilisé par le script build pour que dist/ ne contienne que le code
nécessaire à l'extension.
- Remplace les PopupMenuItem textuels par des PopupBaseMenuItem avec
labels à gauche (dimmed) et valeurs alignées à droite
- Ajoute des headers de section (Performance, Signal) via PopupSeparatorMenuItem
- Ajoute des jauges horizontales pour Speed et Width avec layout vertical
(label+valeur au-dessus, barre pleine largeur en dessous)
- Ajoute un graphique d'historique du signal (St.DrawingArea + Cairo)
coloré selon la qualité (60 points, 5 min d'historique)
- Rafraîchit les données à l'ouverture du popup pour un affichage immédiat
- Max speed basé sur le théorique WiFi 7 4×4 MIMO 320 MHz (5760 Mbit/s)
- Max width basé sur le WiFi 7 (320 MHz)
- Ajout des générations WiFi 1 (802.11b), 2 (802.11a) et 3 (802.11g) dans les types et la détection legacy (fréquence + débit)
- Remplacement des icônes SVG WiFi 4-7 par les PNG officiels Wi-Fi Alliance (reverse signature, blanc sur transparent)
- Conservation des icônes SVG custom pour WiFi 1-3 (non fournies par la Wi-Fi Alliance)
- Remplacement de St.Label par St.Icon dans le panel avec la classe system-status-icon pour un dimensionnement adaptatif
- Fallback sur St.Label texte quand aucune icône n'est disponible (génération inconnue)
- Mise à jour du build pour copier les icônes dans dist/