
Warum
impala ist ein großartiges WiFi-TUI, aber es spricht mit iwd. Wenn deine Distribution bereits NetworkManager verwendet (die meisten tun das — GNOME, KDE, Ubuntu, Fedora, Pop, …), kannst du impala nicht einfach einsetzen, ohne den Stack auszutauschen. wlctl behält die Benutzeroberfläche von impala bei und richtet sie an NetworkManager, sodass es einfach neben dem funktioniert, was deine Desktop-Umgebung bereits tut.
Funktionen
- Station- und Access-Point-Modi
- WPA Enterprise (802.1X)
- Mehrere Adapter – wähle aus, welchen du steuern möchtest, wechsle spontan
- VPN-Verbindungen – ein-/ausschalten, Autoconnect verwalten und gespeicherte VPN-/WireGuard-Profile löschen, wie nmtui; ein aktiver Tunnel wird als Abzeichen oben rechts angezeigt
wlctl doctor – durchläuft rfkill, Treiber, Assoziation, IP, DHCP, Gateway, DNS, Internet
- QR-Code teilen, versteckte Netzwerke, Geschwindigkeitstest
- Vim-Tasten, jede Tastenkombination konfigurierbar
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
Unter NixOS füge den Flake als Input hinzu und verwende wlctl.packages.${system}.default, oder wirf ihn mit nix shell github:aashish-thapa/wlctl in eine Shell.
Benötigt laufenden NetworkManager. Nerd Fonts optional, für Symbole.
Nutzung
wlctl startet die TUI. wlctl doctor, wenn etwas kaputt ist und du wissen willst, auf welcher Ebene.
Global
Bekannte Netzwerke
Wenn sowohl WiFi als auch Ethernet aktiv sind, wird der Link, über den NetworkManager tatsächlich das Internet routet, grün hervorgehoben, und die Fußzeile der Box zeigt es an ( Internet: WiFi · <ssid>). Drücke u auf der Ethernet-Zeile oder dem verbundenen WiFi, um die Standardroute darauf zu ändern (der andere Link bleibt aktiv).
Die Fußzeile der Gerätebox zeigt die LAN-IP des aktiven Adapters an (z.B. wlan0 · 192.168.1.20), damit du dich per SSH verbinden kannst, ohne ip addr auszuführen.
Neue Netzwerke
| Aktion | Taste |
|---|
| Verbinden / Trennen | Leertaste oder |
Drücke /, um die Scanliste während der Eingabe nach SSID zu filtern; Eingabe behält den Filter, Esc löscht ihn.
VPN-Verbindungen (öffnen mit v)
Die zugewiesene IP und Betriebszeit des ausgewählten Tunnels werden unter der Liste angezeigt, solange er aktiv ist.
WireGuard-Konfigurationen importieren: Drücke i, dann füge die gesamte Konfiguration ein (die meisten Anbieter – Proton, Mullvad – geben dir einfach den Text) oder gib den Pfad zu einer .conf-Datei ein und drücke Eingabe. wlctl parst sie und erstellt ein NetworkManager-Profil – kein nmcli nötig. Eingefügte Konfigurationen werden nach dem Server-Endpunkt benannt; Dateiimporte nach dem Dateinamen. ~ wird in Pfaden expandiert. Das Profil wird ohne Autoconnect hinzugefügt; aktiviere es mit Eingabe. OpenVPN .ovpn-Dateien werden hier nicht unterstützt – importiere diese mit nmcli connection import type openvpn file <path> (erfordert das NetworkManager-openvpn-Plugin).
Gerätepanel
| Aktion | Taste |
|---|
| Adapterinfo | i |
| Stromversorgung umschalten | o |
| Diagnose | ? |
Station-Modus
Access-Point-Modus
| Aktion | Taste |
|---|
| AP starten | n |
| AP stoppen | x |
Konfiguration
~/.config/wlctl/config.toml. Alle Tasten sind neu belegbar.
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"
vs. impala
Danksagungen
Abgezweigt von pythops/impala. UI und Architektur stammen von ihnen.
Lizenz
GPLv3