
wlctl v0.1.10
🛜 TUI для управления Wi-Fi/Ethernet/VPN в Linux с помощью Network Manager

Почему
impala — отличный TUI для Wi-Fi, но он работает с iwd. Если ваш дистрибутив уже использует NetworkManager (а так у большинства — GNOME, KDE, Ubuntu, Fedora, Pop, …), вы не можете просто взять impala, не вырвав стек. wlctl сохраняет UX impala и направляет его на NetworkManager, так что он просто работает вместе с тем, что уже делает ваше окружение рабочего стола.
Возможности
- Режимы станции и точки доступа
- WPA Enterprise (802.1X)
- Несколько адаптеров — выбирайте, каким управлять, переключайтесь на лету
- VPN-подключения — включайте/выключайте, управляйте автоподключением и удаляйте сохранённые профили VPN/WireGuard, как в nmtui; активный туннель отображается значком в правом верхнем углу
wlctl doctor— проверяет rfkill, драйвер, ассоциацию, IP, DHCP, шлюз, DNS, интернет- Обмен QR-кодами, скрытые сети, тест скорости
- Клавиши Vim, все привязки настраиваемы
Установка
# 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
В NixOS добавьте flake как вход и используйте wlctl.packages.${system}.default, или запустите в оболочке командой nix shell github:aashish-thapa/wlctl.
Требуется запущенный NetworkManager. Nerd Fonts необязательны, для иконок.
Использование
wlctl для запуска TUI. wlctl doctor когда что-то сломалось и нужно узнать, на каком уровне проблема.
Глобальные
| Действие | Клавиша |
|---|---|
| Переключение панели | Tab / Shift+Tab |
| Перемещение | j k / стрелки |
| Переключение режима адаптера (Станция ↔ ТД) | Ctrl+R |
| VPN-подключения | v |
| Выход | q / Ctrl+C |
| Закрыть всплывающее окно | Esc |
Известные сети
| Действие | Клавиша |
|---|---|
| Подключить / отключить | Space или Enter |
| Переключить автоподключение | t |
| Забыть сеть | d |
| Сделать это интернет-маршрутом | u |
| Показать все | a |
| Поделиться QR-кодом | p |
Тест скорости (требуется speedtest-cli) | Shift+S |
Когда включены и Wi-Fi, и Ethernet, ссылка, через которую NetworkManager фактически маршрутизирует интернет, подсвечивается зелёным, а нижний колонтитул блока показывает это ( Internet: WiFi · <ssid>). Нажмите u на строке Ethernet или подключённого Wi-Fi, чтобы переключить маршрут по умолчанию на него (другая ссылка остаётся активной).
Нижний колонтитул блока устройства показывает LAN IP активного адаптера (например, wlan0 · 192.168.1.20), чтобы вы могли подключиться по SSH без выполнения ip addr.
Новые сети
| Действие | Клавиша |
|---|---|
| Подключить / отключить | Space или Enter |
| Подключиться к скрытой | h |
| Фильтр по имени | / |
| Показать все | a |
Нажмите /, чтобы фильтровать список сканирования по SSID по мере ввода; Enter сохраняет фильтр, Esc очищает его.
VPN-подключения (открыть с помощью v)
| Действие | Клавиша |
|---|---|
| Включить / выключить | Space или Enter |
| Переключить автоподключение | a |
Удалить профиль (подтверждение y/n) | d |
| Импортировать конфигурацию WireGuard | i |
| Закрыть | Esc |
Назначенный IP и время работы выбранного туннеля отображаются под списком, пока он активен.
Импорт конфигураций WireGuard: нажмите i, затем либо вставьте всю конфигурацию (большинство провайдеров — Proton, Mullvad — просто дают текст), либо укажите путь к файлу .conf и нажмите Enter. wlctl разбирает её и создаёт профиль NetworkManager — без nmcli. Вставленные конфигурации называются по конечной точке сервера; импортированные из файла — по имени файла. ~ раскрывается в путях. Профиль добавляется без автоподключения; включите его с помощью Enter. Файлы OpenVPN .ovpn здесь не поддерживаются — импортируйте их командой nmcli connection import type openvpn file <path> (требуется плагин NetworkManager-openvpn).
Панель устройств
| Действие | Клавиша |
|---|---|
| Информация об адаптере | i |
| Включить/выключить питание | o |
| Диагностика | ? |
Режим станции
| Действие | Клавиша |
|---|---|
| Сканирование | s |
Режим точки доступа
| Действие | Клавиша |
|---|---|
| Запустить ТД | n |
| Остановить ТД | x |
Конфигурация
~/.config/wlctl/config.toml. Все клавиши переназначаемы.
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"
Сравнение с impala
| impala | wlctl | |
|---|---|---|
| Бэкенд | iwd | NetworkManager |
| Сосуществует со стандартным сетевым стеком рабочего стола | нет | да |
| Выбор нескольких адаптеров | — | да |
| Включение/выключение VPN | — | да |
Подкоманда doctor | — | да |
Благодарности
Форк от pythops/impala. Пользовательский интерфейс и архитектура принадлежат им.
Лицензия
GPLv3