
왜
impala는 훌륭한 WiFi TUI이지만 iwd와 통신합니다. 당신의 배포판이 이미 NetworkManager를 실행 중이라면 (대부분이 그렇습니다 — GNOME, KDE, Ubuntu, Fedora, Pop, …), 스택을 뜯어내지 않고는 impala를 바로 사용할 수 없습니다. wlctl은 impala의 UX를 유지하면서 NetworkManager를 대상으로 하므로, DE가 이미 하고 있는 작업과 함께 그냥 작동합니다.
기능
- 스테이션 및 액세스 포인트 모드
- 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 (실행하지 않고 사용)
nix run github:aashish-thapa/wlctl
# 소스에서
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는 선택 사항이며 아이콘에 사용됩니다.
사용법
TUI를 실행하려면 wlctl. 문제가 생겼을 때 어떤 계층에 문제가 있는지 확인하려면 wlctl doctor.
전역
알려진 네트워크
WiFi와 이더넷이 모두 활성화되어 있을 때, NetworkManager가 실제로 인터넷을 라우팅하는 링크가 녹색으로 강조 표시되고 상자 하단에 표시됩니다 ( Internet: WiFi · <ssid>). 이더넷 행 또는 연결된 WiFi에서 u를 누르면 기본 경로가 해당 링크로 전환됩니다 (다른 링크는 계속 활성 상태).
장치 상자 하단에는 활성 어댑터의 LAN IP가 표시됩니다 (예: wlan0 · 192.168.1.20). 따라서 ip addr을 실행하지 않고도 SSH로 접속할 수 있습니다.
새 네트워크
| 동작 | 키 |
|---|
| 연결 / 해제 | Space 또는 Enter |
| 숨겨진 네트워크 연결 |
/를 누르면 입력하는대로 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 플러그인이 필요합니다).
장치 패널
스테이션 모드
액세스 포인트 모드
설정
~/.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"
vs. impala
크레딧
pythops/impala에서 포크되었습니다. UI와 아키텍처는 그들의 것입니다.
라이선스
GPLv3