
Почему
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 когда что-то сломалось и нужно узнать, на каком уровне проблема.
Глобальные
Известные сети
Когда включены и Wi-Fi, и Ethernet, ссылка, через которую NetworkManager фактически маршрутизирует интернет, подсвечивается зелёным, а нижний колонтитул блока показывает это ( Internet: WiFi · <ssid>). Нажмите u на строке Ethernet или подключённого Wi-Fi, чтобы переключить маршрут по умолчанию на него (другая ссылка остаётся активной).
Нижний колонтитул блока устройства показывает LAN IP активного адаптера (например, wlan0 · 192.168.1.20), чтобы вы могли подключиться по SSH без выполнения ip addr.
Новые сети
| Действие | Клавиша |
|---|
| Подключить / отключить | Space или |
Нажмите /, чтобы фильтровать список сканирования по SSID по мере ввода; Enter сохраняет фильтр, Esc очищает его.
VPN-подключения (открыть с помощью v)
Назначенный 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
Благодарности
Форк от pythops/impala. Пользовательский интерфейс и архитектура принадлежат им.
Лицензия
GPLv3