
Pourquoi
impala est une excellente interface TUI WiFi, mais elle s'adresse à iwd. Si votre distribution utilise déjà NetworkManager (c'est le cas de la plupart — GNOME, KDE, Ubuntu, Fedora, Pop, …), vous ne pouvez pas intégrer impala sans remplacer toute la pile. wlctl conserve l'expérience utilisateur d'impala et la dirige vers NetworkManager, fonctionnant ainsi en parallèle de ce que votre environnement de bureau gère déjà.
Fonctionnalités
- Modes Station et Point d'accès
- WPA Enterprise (802.1X)
- Plusieurs adaptateurs — choisissez lequel utiliser, changez à la volée
- Connexions VPN — activer/désactiver, gérer la reconnexion automatique et supprimer les profils VPN/WireGuard enregistrés, comme dans nmtui ; un tunnel actif s'affiche sous forme de badge en haut à droite
wlctl doctor — parcourt rfkill, pilote, association, IP, DHCP, passerelle, DNS, internet
- Partage par QR code, réseaux cachés, test de vitesse
- Touches Vim, chaque raccourci configurable
Installation
# crates.io
cargo install wlctl
# Arch (AUR)
yay -S wlctl-bin
# Nix (run without installing)
nix run github:aashish-thapa/wlctl
# from source
git clone https://github.com/aashish-thapa/wlctl && cd wlctl
cargo build --release
Sur NixOS, ajoutez le flake en entrée et utilisez wlctl.packages.${system}.default, ou intégrez-le dans un shell avec nix shell github:aashish-thapa/wlctl.
Nécessite que NetworkManager soit en cours d'exécution. Nerd Fonts facultatif, pour les icônes.
Utilisation
wlctl pour lancer l'interface TUI. wlctl doctor quand quelque chose ne va pas et que vous voulez savoir quelle couche est concernée.
Global
Réseaux connus
Lorsque le WiFi et l'Ethernet sont tous deux actifs, le lien que NetworkManager utilise réellement pour acheminer Internet est surligné en vert, et le pied de la boîte l'indique ( Internet: WiFi · <ssid>). Appuyez sur u sur la ligne Ethernet ou sur le WiFi connecté pour basculer la route par défaut vers celui-ci (l'autre lien reste actif).
Le pied de la boîte Périphérique affiche l'IP LAN de l'adaptateur actif (par ex. wlan0 · 192.168.1.20) afin que vous puissiez vous connecter en SSH sans exécuter ip addr.
Nouveaux réseaux
| Action | Touche |
|---|
| Connecter/Déconnecter | Space ou |
Appuyez sur / pour filtrer la liste de balayage par SSID au fur et à mesure que vous tapez ; Entrée conserve le filtre, Échap l'efface.
Connexions VPN (ouvrir avec v)
L'IP attribuée et la durée de fonctionnement du tunnel sélectionné s'affichent sous la liste lorsqu'il est actif.
Importation de configurations WireGuard : appuyez sur i, puis collez la configuration complète (la plupart des fournisseurs — Proton, Mullvad — vous donnent simplement le texte) ou tapez le chemin d'un fichier .conf, puis appuyez sur Entrée. wlctl l'analyse et crée un profil NetworkManager — pas besoin de nmcli. Les configurations collées sont nommées d'après le point de terminaison du serveur ; les importations de fichiers d'après le nom du fichier. ~ est développé dans les chemins. Le profil est ajouté sans reconnexion automatique ; activez-le avec Entrée. Les fichiers .ovpn d'OpenVPN ne sont pas pris en charge ici — importez-les avec nmcli connection import type openvpn file <chemin> (nécessite le plugin NetworkManager-openvpn).
Panneau Périphérique
| Action | Touche |
|---|
| Informations sur l'adaptateur | i |
| Activer/Désactiver l'alimentation | o |
| Doctor | ? |
Mode Station
Mode Point d'accès
| Action | Touche |
|---|
| Démarrer le point d'accès | n |
| Arrêter le point d'accès | x |
Configuration
~/.config/wlctl/config.toml. Toutes les touches sont redéfinissables.
switch = "r"
mode = "station"
esc_quit = false
vpn = "v"
[device]
infos = "i"
toggle_power = "o"
doctor = "?"
[station]
toggle_scanning = "s"
[station.known_network]
toggle_autoconnect = "t"
remove = "d"
show_all = "a"
share = "p"
speed_test = "S"
prefer = "u"
[station.new_network]
show_all = "a"
connect_hidden = "h"
filter = "/"
[access_point]
start = "n"
stop = "x"
Comparaison avec impala
Crédits
Issu de pythops/impala. L'interface utilisateur et l'architecture leur appartiennent.
Licence
GPLv3