Skip to content

Latest commit

 

History

History
144 lines (105 loc) · 3.23 KB

File metadata and controls

144 lines (105 loc) · 3.23 KB

wlctl

WiFi TUI for NetworkManager.

CI Crates.io Downloads License

demo

Why

impala is a great wifi TUI but it talks to iwd. If your distro already runs NetworkManager (most do — GNOME, KDE, Ubuntu, Fedora, Pop, …), you can't drop impala in without ripping the stack out. wlctl keeps the impala UX and points it at NetworkManager, so it just works alongside what your DE is already doing.

Features

  • Station and Access Point modes
  • WPA Enterprise (802.1X)
  • Multiple adapters — pick which one to drive, switch on the fly
  • wlctl doctor — walks rfkill, driver, association, IP, DHCP, gateway, DNS, internet
  • QR code sharing, hidden networks, speed test
  • Vim keys, every binding configurable

Install

# crates.io
cargo install wlctl

# Arch (AUR)
yay -S wlctl-bin

# from source
git clone https://github.com/aashish-thapa/wlctl && cd wlctl
cargo build --release

Needs NetworkManager running. Nerd Fonts optional, for icons.

Usage

wlctl to launch the TUI. wlctl doctor when something's broken and you want to know which layer.

Global

Action Key
Switch panel Tab / Shift+Tab
Move j k / arrows
Switch adapter mode (Station ↔ AP) Ctrl+R
Quit q / Ctrl+C
Dismiss popup Esc

Known networks

Action Key
Connect / disconnect Space or Enter
Toggle auto-connect t
Forget network d
Show all a
QR share p
Speed test (needs speedtest-cli) Shift+S

New networks

Action Key
Connect / disconnect Space or Enter
Connect to hidden h
Show all a

Device panel

Action Key
Adapter info i
Toggle power o
Doctor ?

Station mode

Action Key
Scan s

Access Point mode

Action Key
Start AP n
Stop AP x

Config

~/.config/wlctl/config.toml. All keys rebindable.

switch = "r"
mode = "station"
esc_quit = false

[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"

[station.new_network]
show_all = "a"
connect_hidden = "h"

[access_point]
start = "n"
stop = "x"

vs. impala

impala wlctl
Backend iwd NetworkManager
Coexists with default desktop network stack no yes
Multi-adapter selector yes
doctor subcommand yes

Credits

Forked from pythops/impala. UI and architecture are theirs.

License

GPLv3