العودة إلى التحديثات
New releaseAug 21, 2026

wlctl v0.1.10

🛜 واجهة مستخدم نصية لإدارة الشبكات اللاسلكية/السلكية/الشبكات الخاصة الافتراضية على لينكس باستخدام مدير الشبكة

مشاركة

wlctl

واجهة مستخدم نصية لشبكات WiFi لإدارة NetworkManager.

CI Crates.io Downloads License

demo

لماذا

impala هي واجهة TUI رائعة للواي فاي لكنها تتحدث مع iwd. إذا كان توزيعك يستخدم بالفعل NetworkManager (معظمها يفعل — GNOME, KDE, Ubuntu, Fedora, Pop, …)، فلا يمكنك إسقاط impala دون خلع المكدس. يحتفظ wlctl بتجربة مستخدم impala ويوجهها إلى NetworkManager، لذلك تعمل بجانب ما يفعله سطح المكتب الخاص بك بالفعل.

الميزات

  • وضعي المحطة (Station) ونقطة الوصول (Access Point)
  • مؤسسات WPA (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 اختياري، للأيقونات.

الاستخدام

wlctl لتشغيل واجهة TUI. wlctl doctor عندما يكون هناك خطأ وتريد معرفة أي طبقة.

عام

الإجراءالمفتاح
تبديل اللوحةTab / Shift+Tab
تحريكj k / الأسهم
تبديل وضع المحول (Station ↔ AP)Ctrl+R
اتصالات VPNv
خروجq / Ctrl+C
إغلاق النافذة المنبثقةEsc

الشبكات المعروفة

الإجراءالمفتاح
اتصال / فصلSpace أو Enter
تبديل الاتصال التلقائيt
نسيان الشبكةd
جعل هذا المسار الإنترنتيu
إظهار الكلa
مشاركة QRp
اختبار السرعة (يحتاج speedtest-cli)Shift+S

عندما يكون كل من WiFi و Ethernet قيد التشغيل، يكون الرابط الذي يوجّه NetworkManager حركة الإنترنت فعلاً باللون الأخضر، ويوضح تذييل المربع ذلك (󰖟 الإنترنت: WiFi · <ssid>). اضغط u على صف Ethernet أو WiFi المتصل لتبديل المسار الافتراضي إليه (يبقى الرابط الآخر قيد التشغيل).

يظهر تذييل مربع الجهاز عنوان LAN للمحول النشط (مثال: 󰩟 wlan0 · 192.168.1.20) حتى تتمكن من الدخول عبر SSH دون تشغيل ip addr.

الشبكات الجديدة

الإجراءالمفتاح
اتصال / فصلSpace أو Enter
اتصال بشبكة مخفيةh
تصفية بالاسم/
إظهار الكلa

اضغط / لتصفية قائمة المسح حسب SSID أثناء الكتابة؛ Enter يحتفظ بالفلتر، Esc يمسحه.

اتصالات VPN (فتح بـ v)

الإجراءالمفتاح
تشغيل / إيقافSpace أو Enter
تبديل الاتصال التلقائيa
حذف الملف الشخصي (تأكيد بـ y/n)d
استيراد إعدادات WireGuardi
إغلاقEsc

يظهر IP النفق المحدد ووقت التشغيل أسفل القائمة أثناء تشغيله.

استيراد إعدادات WireGuard: اضغط i، ثم إما ألصق الإعدادات كاملة (معظم المزودين — Proton, Mullvad — يعطونك النص مباشرة) أو اكتب مسار ملف .conf، واضغط Enter. يقوم wlctl بتحليلها وإنشاء ملف تعريف NetworkManager — لا حاجة لـ nmcli. يتم تسمية الإعدادات الملصقة بعد اسم خادم النقطة الطرفية؛ استيراد الملفات بعد اسم الملف. يتم توسيع ~ في المسارات. يُضاف الملف التعريفي دون اتصال تلقائي؛ قم بتشغيله بـ Enter. ملفات OpenVPN .ovpn غير مدعومة هنا — استوردها باستخدام nmcli connection import type openvpn file <path> (يحتاج إضافة NetworkManager-openvpn).

لوحة الجهاز

الإجراءالمفتاح
معلومات المحولi
تبديل الطاقةo
Doctor?

وضع المحطة (Station)

الإجراءالمفتاح
مسحs

وضع نقطة الوصول (Access Point)

الإجراءالمفتاح
بدء نقطة الوصول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

impalawlctl
النهاية الخلفيةiwdNetworkManager
يعمل بجانب مكدس الشبكة الافتراضي لسطح المكتبلانعم
محدد محولات متعددةنعم
تبديل اتصال VPNنعم
أمر فرعي doctorنعم

الإسناد

مشتق من pythops/impala. واجهة المستخدم والهيكلة لهم.

الترخيص

GPLv3

الفئات