Skip to content

aashish-thapa/wlctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

wlctl

TUI for managing WiFi using NetworkManager

A fork of impala that uses NetworkManager instead of iwd

CI Crates.io Downloads License

Purpose

I personally love impala but it has limitation due to use of iwd. So, this repo preserves the beauty but changes the underlying logic to use NetworkManager.

πŸ“Έ Demo

✨ Features

  • WPA Enterprise (802.1X) Support
  • Station & Access Point Modes
  • QR Code Network Sharing
  • Uses NetworkManager - works alongside your existing network setup

πŸ’‘ Prerequisites

Note

This fork uses NetworkManager instead of iwd, so it works with your existing network configuration without conflicts.

πŸš€ Installation

πŸ“¦ crates.io

You can install wlctl from crates.io

cargo install wlctl

Arch Linux (AUR)

wlctl-bin is available on the Arch User Repository.

yay -S wlctl-bin

βš’οΈ Build from source

Run the following command:

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

This will produce an executable file at target/release/wlctl that you can copy to a directory in your $PATH.

πŸͺ„ Usage

Global

Tab or Shift + Tab: Switch between different sections.

j or Down : Scroll down.

k or Up: Scroll up.

ctrl+r: Switch adapter mode.

?: Show help.

esc: Dismiss the different pop-ups.

q or ctrl+c: Quit the app. (Note: <Esc> can also quit if esc_quit = true is set in config)

Device

i: Show device information.

o: Toggle device power.

Station

s: Start scanning.

Space or Enter: Connect/Disconnect the network.

Known Networks

t: Enable/Disable auto-connect.

d: Remove the network from the known networks list.

a: Show all the known networks.

p: Share via QR Code.

Shift + s: Speed test

Note

speedtest-cli is used. Install it with pip install speedtest-cli

Access Point

n: Start a new access point.

x: Stop the running access point.

Custom keybindings

Keybindings can be customized in the config file $HOME/.config/wlctl/config.toml

switch = "r"
mode = "station"
esc_quit = false  # Set to true to enable Esc key to quit the app

[device]
infos = "i"
toggle_power = "o"

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

[station]
toggle_scanning = "s"

[station.known_network]
toggle_autoconnect = "t"
remove = "d"
show_all = "a"
share = "p"

Differences from upstream impala

Feature impala (upstream) wlctl (this fork)
Backend iwd NetworkManager
Config location /var/lib/iwd/ /etc/NetworkManager/system-connections/
Conflicts Conflicts with NetworkManager Works alongside existing setup

Credits

This is a fork of pythops/impala. All credit for the original UI and architecture goes to the original author.

βš–οΈ License

GPLv3

About

πŸ›œ TUI for managing wifi on Linux with Network Manager

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 12

Languages