
wlctl v0.1.10
🛜 TUI pour gérer wifi/ethernet/vpn sur Linux avec Network Manager

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
| Action | Touche |
|---|---|
| Basculer de panneau | Tab / Shift+Tab |
| Déplacer | j k / flèches |
| Changer le mode de l'adaptateur (Station ↔ PA) | Ctrl+R |
| Connexions VPN | v |
| Quitter | q / Ctrl+C |
| Fermer la popup | Esc |
Réseaux connus
| Action | Touche |
|---|---|
| Connecter/Déconnecter | Space ou Enter |
| Activer/Désactiver la reconnexion automatique | t |
| Oublier le réseau | d |
| Définir comme chemin Internet | u |
| Tout afficher | a |
| Partager par QR | p |
Test de vitesse (nécessite speedtest-cli) | Shift+S |
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 Enter |
| Connecter à un réseau caché | h |
| Filtrer par nom | / |
| Tout afficher | a |
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)
| Action | Touche |
|---|---|
| Activer/Désactiver | Space ou Enter |
| Activer/Désactiver la reconnexion automatique | a |
Supprimer le profil (confirmer y/n) | d |
| Importer une configuration WireGuard | i |
| Fermer | Esc |
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
| Action | Touche |
|---|---|
| Balayer | s |
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
| impala | wlctl | |
|---|---|---|
| Backend | iwd | NetworkManager |
| Coexiste avec la pile réseau par défaut du bureau | non | oui |
| Sélecteur multi-adaptateur | — | oui |
| Activation/désactivation des connexions VPN | — | oui |
Sous-commande doctor | — | oui |
Crédits
Issu de pythops/impala. L'interface utilisateur et l'architecture leur appartiennent.
Licence
GPLv3