impala is a TUI for managing WiFi on Linux using iwd as the backend. Much nicer than iwctl for day-to-day WiFi management.

Installation

Arch Linux:

sudo pacman -S impala

Cargo:

cargo install impala

Prerequisites

  • iwd must be running (not wpa_supplicant)
  • NetworkManager should use iwd backend (see Network)
  • Nerd Fonts (optional) for icons

Usage

impala

Key Bindings

KeyAction
j/kNavigate up/down
EnterConnect to network
dDisconnect
rRefresh networks
sScan for networks
aToggle Access Point mode
qQuit

Connecting to Networks

  1. Launch impala
  2. Navigate to network with j/k
  3. Press Enter to connect
  4. Enter password if prompted

Hidden Networks

Press / to search/enter a hidden network SSID.

WPA Enterprise (802.1X)

impala supports enterprise authentication. Select the network and follow prompts for username/password or certificate.

QR Code Sharing

Press Q on a connected network to display a QR code for sharing credentials.

Configuration

Config file: ~/.config/impala/config.toml

[keybindings]
quit = "q"
scan = "s"
connect = "Enter"
disconnect = "d"
 
[appearance]
# Uses terminal colors by default

Integration

Ashell

In ashell config, use impala for WiFi management:

[settings]
wifi_more_cmd = 'kitty -e bash -c "impala"'

Hyprland keybind

bind = $mainMod, W, exec, kitty -e impala

Troubleshooting

”iwd not running”

sudo systemctl enable --now iwd

Conflicts with NetworkManager

NetworkManager must use iwd as backend, not wpa_supplicant. See NetworkManager + iwd.

Resources