الطرفية

طرفية Mobile SSH متعملة علشان الشغل على الموبايل والتابلت. بتجمع بين مساحة الطرفية، وصف المفاتيح الإضافية، وأجزاء الجلسات المتعددة، ومعالجة التمرير، وسلوك إعادة الاتصال.

أساسيات الطرفية

شبكة الجلسات المتعددة

Mobile SSH يقدر يشغّل لحد ثماني جلسات SSH في نفس الوقت. كل جلسة بتظهر كجزء في شبكة الطرفيات. اضغط على جزء علشان تختاره، أو استخدم + Add Session علشان تبدأ اتصال تاني.

رأس الجزء بيقولك إنت فين. على Android بيعرض مجلد الشغل الحقيقي بتاع الجزء، مسحوب من tmux أو مبلَّغ من الشِل عبر OSC 7 وبيتحدّث طول ما التطبيق مفتوح؛ وعلى iOS بيعرض العنوان اللي الطرف البعيد بيحطه، وبيرجع لـ user@host:port لو مافيش.

قفل جزء بيقطع جلسة SSH دي. الرجوع للشاشة الرئيسية بيخلي الجلسات النشطة متاحة عبر Active Sessions.

Eternal Terminal (ET)

كل سيرفر محفوظ يقدر يستخدم واحد من ناقلين، بتختاره من منتقي النقل وإنت بتضيف سيرفر أو بتعدّله:

ET بيخلّي الجلسة شغّالة على السيرفر، فلما موبايلك يغيّر الشبكة أو يصحى من النوم، Mobile SSH بيعيد الإرفاق بنفس الصدفة الشغّالة بدل ما يفتح واحدة جديدة. ده بيخلّيه مناسب لبيانات الموبايل، والتنقل بين Wi-Fi والشبكة الخلوية، والأوامر اللي بتاخد وقت طويل.

ET محتاج عملية etserver على المضيف. لو السيرفر مافيهوش واحدة، Mobile SSH يقدر يركّبها ويشغّلها لك عن طريق اتصال SSH الموجود — من غير أي إعداد يدوي للسيرفر. أول ما ET يبقى متاح، اتصل وإنت مختار الناقل Eternal Terminal.

صف المفاتيح الإضافية

المنصتين الاتنين بيحطوا صف من تلتاشر مفتاح طرفية في متناول إيدك — المفاتيح اللي صعبة أو مش موجودة على لوحة اللمس. على Android هو شريط تحت في الجلسة (وبيخفي نفسه لما لوحة مفاتيح هاردوير تتوصّل)؛ وعلى iOS بيركب فوق لوحة المفاتيح البرمجية.

المجموعتين الافتراضيتين نفس الحجم بس مش متطابقتين:

AndroidiOS
الافتراضيESC TAB CTRL الأسهم HOME PGUP END PGDN ESC TAB CTRL الأسهم HOME END PGUP PGDN
الفرقفيه مفتاح مسح للخلف، من غير Shiftفيه Shift لاصق، من غير مفتاح مسح للخلف

الصف عمره ما بيتمرّر. أول ما المفاتيح تبطّل تدخل في العرض، بيقسّموا المساحة بالتساوي وبيلفّوا لصف تاني؛ وأي حاجة فاضلة بتتلم في قايمة إضافية . مافيش حاجة متخبّية ورا سحبة ولا مقصوصة عند حرف الشاشة، والمعدِّل اللي مسلّحه بيفضل ساري على أي مفتاح تختاره من القايمة الإضافية.

CTRL بيشتغل كمعدِّل لاصق: اضغط CTRL وبعدين اكتب C علشان تبعت Ctrl-C. وShift ألزق على iOS منه على Android — على iOS بيكبّر كمان أول حرف تكتبه على لوحة المفاتيح البرمجية، بينما على Android بيسري بس على مفاتيح الشريط نفسه (Shift+Tab، وShift+الأسهم).

امسك مفتاح زي سهم أو PGDN وهو هيكرّر.

سلوك لوحة المفاتيح

الطرفية بتستخدم اتصال مباشر (pass-through) مع لوحة المفاتيح اللي على الشاشة: كل حرف بيتبعت للصدفة البعيدة وإنت بتكتب، والتصحيح التلقائي والاقتراحات التنبؤية مقفولين علشان لوحة المفاتيح ماتعيدش كتابة الإدخال قبل ما يوصل للصدفة. ده بيخلّي Vim وtmux وhtop وless والصدفات اللي بتستخدم توليفات مفاتيح مش معتادة وموجّهات كلمات السر البعيدة متوقّعة — مافيش مخزّن اقتراحات محتاج تعطّله.

الإملاء الصوتي من لوحة المفاتيح اللي على الشاشة لسه شغّال: النص المُملى بيتبعت للصدفة على طول زي أي إدخال مكتوب تاني.

كيبوردات الهاردوير

لوحات المفاتيح الخارجية وBluetooth بتشغّل الطرفية مباشرة على Android وiOS الاتنين. غير الحروف العادية، Mobile SSH بيربط مفاتيح الأسهم، وHome/End، وPgUp/PgDn، وInsert، وDelete، وEsc، ومفاتيح الوظائف F1F12، وتوليفات Ctrl+مفتاح وAlt/Option-كـ-Meta، وShift+Tab. مفاتيح التعديل بتتجمّع مع المعدِّلات اللاصقة بتاعة صف المفاتيح الإضافية.

اللصق

اللصق في برنامج بيطلبه (bash وVim وباقي التطبيقات اللي بتدعم bracketed paste) بيتغلّف بعلامات اللصق المُقوّس، علشان محتوى الحافظة اللي فيه أكتر من سطر يتحط كنص بدل ما يتنفّذ أوتوماتيكيًا سطر ورا سطر. بس اللصق الحقيقي هو اللي بيتغلّف؛ النص المكتوب أو المُملى مابيتغيّرش.

التحديد والنسخ والمشاركة

اضغط مطوّل جوّه الطرفية علشان تحدد الكلمة اللي تحت صباعك، وبعدين اسحب المقابض علشان تظبّط. شريط التحديد بيوفّر ثلاثة إجراءات:

البحث في الطرفية

دوّر في مخزّن الطرفية كله — مخزّن التمرير والشاشة الظاهرة — وانتقل بين النتايج. افتح البحث من عناصر تحكم الطرفية، اكتب استعلام، واتنقل بين النتايج. ده بيشتغل على Android وiOS الاتنين.

الألوان والخط المائل والحافظة البعيدة

تكامل الشِل والصور المضمّنة

المظهر والمفاتيح

على Android وiOS الاتنين، الإعدادات بتخليك تظبّط الطرفية على مزاجك:

الرجوع للافتراضي بيرجّع الإعدادات اللي التطبيق نازل بيها مش بيجمّد قايمة النهاردة، فتحسينات أي إصدار جاي تفضل توصلك. والتعديلات بتسري مباشرة على الأجزاء المفتوحة أصلًا.

التمرير

Mobile SSH بيوجّه إيماءات التمرير حسب حالة الطرفية:

على Android، اللمسة جوّه برنامج بيتابع الفأرة بتتسلّم كضغطة زرار شمال على الخلية دي، فـ htop وvim والأجزاء اللي بتتركّز بالضغط بترد على اللمس. أما على iOS فاللمسة في نفس البرنامج بتطلّع لوحة المفاتيح بدل ما تعمل كليك؛ التمرير بالعجلة بس هو اللي بيتبلّغ.

لو كتبت وإنت ماسك التمرير لفوق، Mobile SSH بيرجع لعرض الطرفية المباشر.

سلوك tmux

Mobile SSH بيراقب أوامر tmux الصادرة للإرفاق وإنشاء جلسة جديدة، زي:

tmux attach -t work
tmux a -t work
tmux new -A -s work

لما الاتصال يقطع وإنت في tmux، التطبيق ممكن يفتكر اسم آخر جلسة tmux للسيرفر ده ويحاول يعيد الإرفاق بعد إعادة الاتصال. لو مافيش اسم جلسة صريح اتلاحظ بس التطبيق عارف إنك كنت في جلسة شبيهة بـ tmux بشاشة بديلة، ممكن يجرّب tmux attach عام.

السلوك ده بأفضل جهد. لو جلسة tmux البعيدة مابقتش موجودة، الصدفة البعيدة بتفضل متاحة.

مدير tmux

Mobile SSH فيه مدير tmux علشان تتصفّح وتتحكم في tmux من غير ما تكتب توليفات مفاتيح البادئة (prefix). افتحه بزر Tmux من جلسة متصلة. بيعرض في ثلاثة أقسام:

من المدير تقدر:

🔔 بيعلّم أي جلسة الوكيل بتاعها مستني مدخلات، فتقدر تلاحظ تشغيل Claude Code أو Codex متوقف بنظرة واحدة وتُرفِق بيه. ده بيكمّل تلميحات إعادة الإرفاق اللي فوق: منطق إعادة الإرفاق بيرجّع آخر جلسة ليك تلقائيًا عند إعادة الاتصال، بينما المدير بيديك تحكم يدوي كامل.

المنصتين الاتنين كمان بيقدروا يديروا أكتر من سيرفر tmux (‏socket) على نفس المضيف، ويرتّبوا الجلسات بالاسم أو بتاريخ الإنشاء.

Herdr وZellij (Android)

Android بينزّل نفس الفكرة لاتنين multiplexer تانيين. كل واحد ليه أيقونة في شريط الأدوات، والأيقونة مابتظهرش غير لما التطبيق يكون لقى البرنامج ده فعلًا على السيرفر — يعني شريط الأدوات بيقولك إيه المتركّب هناك من غير ما تشغّل which.

لو herdr أو Zellij متركّب بس مش على PATH بتاع شِل الدخول، الصفحة بتعرض عليك تضيفه.

كل سيرفر محفوظ عنده إعداد Attach on connect: Auto (detect) أو Nothing أو tmux أو herdr أو Zellij. و«Auto» بيختار اللي استخدمته آخر مرة على السيرفر ده، وبعدين اللي عنده جلسات شغالة، وبعدين اللي متركّب — وبيرفق بولا حاجة بدل ما يخمّن لو لسه ماستكشفش السيرفر.

تطبيق iOS دلوقتي بيدعم tmux بس.

تنبيهات الوكيل

Mobile SSH بيقولك لما وكيل برمجة بالـ AI بعيد — Claude Code أو Codex أو Gemini — يبقى واقف مستنيك. وهو مابيخمّنش بقراية خرج الطرفية بتاعك. فيه طريقتين، وبيشتغلوا بمستويات تفصيل مختلفة.

الجرس

من غير أي إعداد، جرس الطرفية الجاي من جلسة إنت مش باصص عليها بيرفع تنبيه، وكمان تسلسلات هروب إشعارات سطح المكتب (‏OSC 9 وOSC 777) اللي أدوات كتير بتبعتها أصلًا. والأجراس اللي بتوصل على طول بعد ما تكتب بتتجاهل، علشان دوشة إكمال الشِل العادية ماتنططش عليك.

ده مش محتاج أي تجهيز، بس التطبيق بيعرف بس إن حاجة رنّت.

hook الوكيل

علشان التطبيق يعرف أنهي وكيل مستني وبيعمل إيه، ركّب hook الوكيل على السيرفر:

ده بيكتب سكربت shell صغير في ~/.mobile-ssh/agent-hook.sh على السيرفر ده. وهو مش مربوط بوكيل معيّن — بياخد وسائط من سطر الأوامر بدل ما يفكّك صيغة مورّد بعينه — فأي حاجة تقدر تشغّل أمر تقدر تبلّغ من خلاله. ومسح الملف بيبقى إزالة نضيفة.

أول ما وكيل يبلّغ من خلال الـ hook:

الرد من غير كتابة

لما وكيل يسأل سؤال إجاباته محددة، التطبيق بيعرض زرار لكل خيار — لحد ستة — في قايمة Agents. وعلى Android تقدر كمان تضغط على شارة الوكيل في رأس الجزء.

وإجابتك مابتتكتبش في الجلسة. بتتكتب في ملف على قناة منفصلة والـ hook بياخدها منه، فالرد مايقدرش يبوّظ اللي على الشاشة. والتطبيق بيرفض يبعت خيار الموجّه ماعرضهوش فعلًا، وبيقولك بوضوح لو الاتصال قطع في الوقت ده بدل ما يفشل في صمت.

الإعدادات

التنبيهات شغّالة افتراضيًا على المنصتين، وفيه مفاتيح منفصلة للإشعار والصوت والاهتزاز، ولو الجلسة اللي إنت شايفها دلوقتي تنبّهك هي كمان ولا لأ.

وفيه إعداد افتراضي يستاهل تعرفه: الصوت مقصور على السماعات. لو مافيش سماعة متوصّلة أو متقرنة، التنبيه بيشعر ويهتز بس مش بيطلّع صوت. اقفل الإعداد ده لو عايز التنبيه مسموع من سماعة الموبايل.

مافيش إعداد حساسية ولا منتقي صوت — التحكمات تشغيل/إيقاف بس.

برامج الطرفية بملء الشاشة

لبرامج زي Vim وless وhtop وأدوات ncurses وأجزاء tmux: