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

لماذا
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 |
| اتصالات VPN | v |
| خروج | q / Ctrl+C |
| إغلاق النافذة المنبثقة | Esc |
الشبكات المعروفة
| الإجراء | المفتاح |
|---|---|
| اتصال / فصل | Space أو Enter |
| تبديل الاتصال التلقائي | t |
| نسيان الشبكة | d |
| جعل هذا المسار الإنترنتي | u |
| إظهار الكل | a |
| مشاركة QR | p |
اختبار السرعة (يحتاج 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 |
| استيراد إعدادات WireGuard | i |
| إغلاق | 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
| impala | wlctl | |
|---|---|---|
| النهاية الخلفية | iwd | NetworkManager |
| يعمل بجانب مكدس الشبكة الافتراضي لسطح المكتب | لا | نعم |
| محدد محولات متعددة | — | نعم |
| تبديل اتصال VPN | — | نعم |
أمر فرعي doctor | — | نعم |
الإسناد
مشتق من pythops/impala. واجهة المستخدم والهيكلة لهم.
الترخيص
GPLv3