الترمنال
ترمنال Mobile SSH متعمول علشان الشغل على الموبايل والتابلت. بيجمع بين مساحة الترمنال، وصف الأزرار الإضافي، وبانلات الجلسات المتعددة، ومعالجة التمرير، وسلوك إعادة الاتصال.
أساسيات الترمنال
- الترمنال بيستخدم سلوك بنمط xterm مع دعم الألوان ومعالجة مفاتيح المؤشّر.
- الـ scrollback بيحتفظ بـ 5000 سطر افتراضيًا، وتقدر تخليه 1,000 أو 10,000 أو 50,000 من الإعدادات.
- اضغط على بانل علشان تختاره قبل ما تكتب.
- اقرص بانل الترمنال علشان تغيّر حجم النص. Mobile SSH بيعيد تحجيم الـ PTY البعيد بعد ما الإيماءة تستقر.
- اضغط مرتين على بانل (أو استخدم زر التوسيع بتاعه) علشان تدخل وضع ملء الشاشة. استخدم زر الرجوع على Android، أو زر الطي على iOS، علشان ترجع للشبكة.
شبكة الجلسات المتعددة
Mobile SSH يقدر يشغّل لحد تمن جلسات SSH في نفس الوقت. كل جلسة بتظهر كبانل في شبكة الترمنالات. اضغط على بانل علشان تختاره، أو استخدم + Add Session علشان تبدأ اتصال تاني.
رأس البانل بيقولك إنت فين. على Android بيعرض مجلد الشغل الحقيقي بتاع البانل، مسحوب من tmux أو مبلَّغ من الشِل عبر OSC 7 وبيتحدّث طول ما التطبيق مفتوح؛ وعلى iOS بيعرض العنوان اللي الطرف البعيد بيحطه، وبيرجع لـ user@host:port لو مافيش.
لما تقفل لوحة بتقطع اتصال SSH بتاعها. لو رجعت للرئيسية، تقدر تفتح الاتصالات من الجلسات الشغالة. العنوان بين لو الاتصال وقف يرد؛ ومن الإعدادات تقدر تعرض سرعة النقل وتختار تعتيم أو اهتزاز لما الرد يقف.
Eternal Terminal (ET)
على النظامين، لما تضيف سيرفر أو تعدله هتلاقي وسائل النقل دي في اختيار النقل:
- SSH — اتصال SSH عادي (الافتراضي).
- Eternal Terminal — جلسة ET بتفضل شغّالة بعد قطع الشبكة، ونوم الجهاز، وتغيير عنوان الـ IP من غير ما تعيد تشغيل الشِل بتاعك.
ET بيخلّي الجلسة شغّالة على السيرفر، فلما موبايلك يغيّر الشبكة أو يصحى من النوم، Mobile SSH بيربط تاني بنفس الشِل الشغّال بدل ما يفتح واحد جديد. ده بيخلّيه مناسب لبيانات الموبايل، والتنقل بين Wi-Fi والشبكة الخلوية، والأوامر اللي بتاخد وقت طويل.
ET محتاج etserver شغال على المضيف. لو مش موجود، Mobile SSH يقدر يعرض عليك تثبيته وتشغيله عن طريق SSH. راجع أوامر الإعداد ووافق عليها وبعدين اختار Eternal Terminal. مسار السيرفرات الوسيطة لازم يستخدم SSH.
صف الأزرار الإضافي
المنصتين الاتنين بيحطوا صف من تلتاشر زرار ترمنال في متناول إيدك — المفاتيح اللي صعبة أو مش موجودة على كيبورد اللمس. على Android هو شريط تحت في الجلسة (وبيخفي نفسه لما كيبورد هاردوير يتوصّل)؛ وعلى iOS بيركب فوق كيبورد الشاشة.
المجموعتين الافتراضيتين نفس الحجم بس مش متطابقتين:
| Android | iOS | |
|---|---|---|
| الافتراضي | 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 وهو هيكرّر.
سلوك الكيبورد
Android بيبعت الكتابة العادية مباشرة إلى الصدفة البعيدة، مع تعطيل التصحيح والتوقعات بشكل افتراضي. بيفضل الإملاء الصوتي قادرًا على إدخال النص عبر الكيبورد.
على iOS، الإعدادات ← الطرفية ← الإملاء والاقتراحات شغال تلقائيًا؛ بيساعدك تملي كلام وتشوف توقعات وتصحيحات للسطر اللي بتكتبه. لو عايز تبعت ضغطات خام، اقفله وخلي اقتراحات الكيبورد مقفولة، وبعد كده افتح لوحة جديدة.
إظهار الكيبورد باللمس بيحدد هل اللمسة تفتح كيبورد الشاشة. على Android مقفول تلقائيًا وعلى iOS شغال. زر الكيبورد في الشريط لسه موجود.
كيبوردات الهاردوير
الكيبوردات الخارجية وBluetooth بتشغّل الترمنال مباشرة على Android وiOS الاتنين. غير الحروف العادية، Mobile SSH بيربط مفاتيح الأسهم، وHome/End، وPgUp/PgDn، وInsert، وDelete، وEsc، ومفاتيح الوظائف F1–F12، وتوليفات Ctrl+مفتاح وAlt/Option-كـ-Meta، وShift+Tab. مفاتيح التعديل بتتجمّع مع المعدِّلات اللاصقة بتاعة صف الأزرار الإضافي.
اللصق
اللصق في برنامج بيطلبه (bash وVim وباقي التطبيقات اللي بتدعم bracketed paste) بيتغلّف بعلامات اللصق المُقوّس، علشان محتوى الحافظة اللي فيه أكتر من سطر يتحط كنص بدل ما يتنفّذ أوتوماتيكيًا سطر ورا سطر. بس اللصق الحقيقي هو اللي بيتغلّف؛ النص المكتوب أو المُملى مابيتغيّرش.
التحديد والنسخ والمشاركة
اضغط ضغطة طويلة جوه الطرفية عشان تحدد الكلمة، واسحب المقابض لتعديل الاختيار. شريط التحديد فيه:
- نسخ — بيحط النص المحدد في حافظة النظام. التحديد بيفضل مميّز بعد كده، فتقدر تشاركه أو تنسخه تاني أو توسّعه.
- مشاركة — بيمرّر النص المحدد لورقة مشاركة النظام (البريد، الملاحظات، المراسلة، إلخ).
- تحديد الكل — بيوسّع التحديد لكامل بافر الترمنال الظاهر، وبعدين انسخ أو شارك.
- لصق — إدخال نص الحافظة في الطرفية.
البحث في الترمنال
دوّر في بافر الترمنال كله — الـ scrollback والشاشة الظاهرة — وانتقل بين النتايج. افتح البحث من عناصر تحكم الترمنال، اكتب استعلام، واتنقل بين النتايج. ده بيشتغل على Android وiOS الاتنين.
الألوان والخط المائل والحافظة البعيدة
- الترمنال بيعرض ألوان 24-bit حقيقية وخط مائل، علشان الموجّهات المزخرفة، وتلوين الصياغة، وتطبيقات TUI تبان زي ما هي على الديسكتوب.
- حافظة OSC 52: البرامج البعيدة تقدر تنسخ نص لحافظة الموبايل. عشان تقرا الحافظة من السيرفر لازم تسمح بده في إعداد منفصل، وهو مقفول تلقائيًا.
- على Android وiOS الاتنين، حروف CJK العريضة والإيموجي والحروف المركّبة (عناقيد الحروف grapheme clusters وروابط العرض الصفري zero-width joiners) بتتقاس وتترسم صح، وخط Nerd Font مدمج بيرسم رموز powerline وstarship وdevicon وأيقونات Material Design اللي خط النظام كان هيعرضها مربعات فاضية.
تكامل الشِل والصور المضمّنة
- تكامل الشِل (OSC 133): لما الشِل بتاعك يبعت علامات موجّه OSC 133، Mobile SSH يقدر يتنقّل بين الموجّهات وينبّهك لما أمر طويل يخلّص. بيشتغل على Android وiOS. ومافيش تطبيق فيهم بيحقن العلامات دي — الشِل بتاعك هو اللي لازم يبعتها (hook في
PROMPT_COMMAND/precmd، أو starship). على Android التنقّل بين الموجّهات مقفول لحد ما تفعّله من الإعدادات ← تكامل الشِل؛ وعلى iOS القايمة بتظهر لوحدها أول ما العلامات تبدأ توصل. - تحديد الخرج: المس أي مكان جوّه خرج أمر وحدد الكتلة كلها — خطأ البناء اللي فات من 300 سطر، مش آخر أمر بس — وبعدين انسخها أو شاركها أو وسّعها.
- صور جوه الطرفية: Android وiOS بيرسموا صور Kitty graphics مباشرة. مقاسها بالخلايا وبتتحرك مع سطرها، فبتفضل بعد الزوم وإعادة لف السطور من غير فراغ. بتظهر كمان في برامج الشاشة الكاملة، ومواضعها منفصلة عن سجل التمرير العادي.
- رموز الفسيفساء: التطبيق بيرسم الكتل وبرايل والأشكال السداسية والثمانية بنفسه، عشان
chafaوtimgوفن ANSI يملوا الشبكة صح، من غير فجوات أو مربعات فاضية مهما كان الخط. - دقة الصور: إعداد الصور يقدر يبلغ برامج الطرفية بدقة كاملة أو نصها أو تلتها، عشان تقلل البكسلات اللي بتتبعت على شبكة الموبايل.
- مجلد الشغل الحقيقي (Android): رأس البانل بيعرض البانل فين فعلًا، مسحوب من tmux أو مبلَّغ من الشِل عبر OSC 7، مش أي حاجة آخر موجّه صادف وطبعها.
المظهر والمفاتيح
على Android وiOS الاتنين، الإعدادات بتخليك تظبّط الترمنال على مزاجك:
- الخط: اختار خط النظام أحادي المسافة، أو JetBrains Mono، أو Source Code Pro.
- نظام الألوان: الافتراضي، أو Solarized غامق أو فاتح، أو Gruvbox، أو Dracula، أو Nord — بيتطبّق مباشرة على البانلات المفتوحة.
- صف الأزرار الإضافي: ضيف وامسح وأعد ترتيب وأخفِ المفاتيح، وعرّف مفاتيحك الخاصة بسلاسل الهروب (escape-sequence)، وارجع للإعدادات الافتراضية، مع معاينة مباشرة بتوريك تقسيمة الصف اللي هتطلعلك بالظبط. Android حاطط ده في تاب Keys؛ وiOS تحت Extra keys ← Customize keys.
- الإضافة من الجاهز: لوحة فيها حوالي 45 مفتاح في ستة مجموعات —
F1–F12، وتوليفات Ctrl زي^Cو^Dو^Zو^Rو^L، ورموز زي|و~و/و_و:، ومعدِّلات. مفاتيحF1–F12بتتبعت كسلاسل هروب عادية، فمش محتاجة توليفةFN. وAndroid كمان بيوفّر مفتاح 📎 Attach a file بيفتح منتقي الملفات ويرفع في الجلسة الشغّالة؛ وiOS بيوفّرINSوDELومفتاحFNبيطلّع صف أرقام. - حجم الـ scrollback: 1,000 أو 5,000 أو 10,000 أو 50,000 سطر (5,000 افتراضيًا). بيسري على البانلات الجديدة.
- حجم النص: شريط تمرير، جنب التكبير بالقرص.
- الثيم: النظام أو فاتح أو غامق للتطبيق كله.
الرجوع للافتراضي بيرجّع الإعدادات اللي التطبيق نازل بيها مش بيجمّد قايمة النهاردة، فتحسينات أي إصدار جاي تفضل توصلك. والتعديلات بتسري مباشرة على البانلات المفتوحة أصلًا.
التمرير
Mobile SSH بيوجّه إيماءات التمرير حسب حالة الترمنال:
- في خرج الشِل العادي، السحب بيمرّر الـ scrollback المحلي.
- في تطبيقات الترمنال بوضع الماوس، التمرير بيبعت سلاسل هروب عجلة الماوس.
- في تطبيقات الشاشة البديلة من غير وضع ماوس، زي كتير من جلسات tmux، التمرير بيدخل وضع نسخ tmux وبيبعت أوامر تمرير بالأسطر.
على النظامين اللمسة جوه برنامج بيتابع الماوس بتبعت نقرة شمال عادةً. على iOS، اللمس بيحط المؤشر بيبدل ده بتحريك المؤشر؛ Shift مع اللمس بيعمل الاختيار التاني. السحب بعد ضغطة طويلة اختياري ومقفول تلقائيًا، فالسحب العادي بيمرر المحتوى.
لو كتبت وإنت ماسك التمرير لفوق، Mobile SSH بيرجع لعرض الترمنال المباشر.
سلوك tmux
Mobile SSH بيراقب أوامر tmux الصادرة للربط وإنشاء جلسة جديدة، زي:
tmux attach -t work
tmux a -t work
tmux new -A -s work
لما الاتصال يتقطع، التطبيق بيفتكر جلسة tmux والـ socket اللي متصل بيهم عشان يرجع لنفس المكان. اللوحات اللي على نفس المضيف بتحتفظ كل واحدة بهدفها. لو الجلسة اختفت، الشيل لسه متاح.
iOS بيقرا بادئة tmux الحالية لما تبدل socket، مش بيفترض إنها Ctrl+B. لو البادئة مش مدعومة أو الاستعلام فشل، بيقف ويعرض رسالة. الكتابة أو قفل اللوحة أو قطع الاتصال بيلغي خطوات الإرفاق المستنية؛ ومفيش أوامر بتتبعت لبرنامج شاشة كاملة مش معروف.
مدير tmux
يتيح مدير tmux في Mobile SSH التصفح والتحكم من غير كتابة مفاتيح البادئة. افتحه من زر معدد الجلسات في اتصال نشط؛ واضغط مطولًا لاختيار tmux عند توفر عدة مديرين. يتكون من ثلاثة أقسام:
- الجلسات — كل جلسات tmux على السيرفر.
- النوافذ — النوافذ اللي في الجلسة المختارة.
- البانلات — البانلات اللي في النافذة المختارة.
من المدير تقدر:
- تربط جلسة بالترمنال الحالي.
- تعمل جلسة أو نافذة جديدة، وتغيّر اسمها.
- تقسّم بانل أفقيًا أو رأسيًا، وتكبّر بانل، وتقتل جلسات أو نوافذ أو بانلات.
- فرز الجلسات حسب الأجدد استخدامًا (الافتراضي)، أو الاسم، أو تاريخ الإنشاء.
🔔 بيعلّم أي جلسة الوكيل بتاعها مستني مدخلات، فتقدر تلاحظ تشغيل Claude Code أو Codex متوقف بنظرة واحدة وتربط بيه. ده بيكمّل تلميحات إعادة الربط اللي فوق: منطق إعادة الربط بيرجّع آخر جلسة ليك تلقائيًا عند إعادة الاتصال، بينما المدير بيديك تحكم يدوي كامل.
النظامين بيدعموا إدارة عدة خوادم tmux (مقابس) على المضيف نفسه. تشير علامة الإرفاق إلى الطرفية اللي بتستخدمها، لا إلى عميل آخر على الخادم.
Herdr وZellij
Android وiOS كمان بيديروا Herdr وZellij. زر واحد في الشريط بيفتح المعدد الأساسي اللي اتلاقى، والضغط الطويل بيختار غيره. المعروض بس البرامج الموجودة على السيرفر. جوه المدير، عنوان السيرفر بيغير السيرفر، واختيار المعدد بيغير المدير.
- Herdr بيعرض الجلسات ومساحات العمل والألسنة واللوحات وحالة الوكلاء. عاين أو رد على الوكيل اللي مستني من القائمة. الرد بيفضل للوحة والجلسة المسماة اللي اخترتهم؛ إرسال بيقدم النص وEnter بس بيبعت تأكيد فاضي. التركيز على لوحة بعينها موجود لما يكون مدعوم، وإلا استخدم تركيز اللسان الأب. Herdr بيدي الحالة من غير hook زيادة.
- Zellij بيعرض الجلسات والتابات والبانلات مع الربط وتغيير الاسم والقتل والتقسيم. الجلسات المقتولة بتفضل في القايمة فالربط بيرجّعها للحياة، بينما الحذف بينساها خلاص. وتفاصيل التابات والبانلات محتاجة Zellij 0.44 أو أحدث؛ وعلى إصدار أقدم الصفحة بتعرض أسامي التابات وبتقولك السبب. والتقسيم محتاج عميل مربوط بالجلسة، والصفحة بتشرح كده بدل ما تديك زرار هيفشل.
لو herdr أو Zellij متركّب بس مش على PATH بتاع شِل الدخول، الصفحة بتعرض عليك تضيفه.
كل سيرفر محفوظ عنده الإرفاق وقت الاتصال: تلقائي، ولا حاجة، tmux، herdr أو Zellij. التلقائي بيستخدم الكشف والتاريخ، ويفضل المستخدم قبل كده، ثم اللي فيه جلسات شغالة، ثم المثبت. لو مفيش كشف مخزن بيفتح شيل عادي. الكشف اللي بعد كده بيأثر على الاتصال الجاي بس، مش بيشغل حاجة فوق إدخالك الحالي.
تنبيهات الوكيل
Mobile SSH بيقولك لما وكيل برمجة بالـ AI بعيد — Claude Code أو Codex أو Gemini — يبقى واقف مستنيك. وهو مابيخمّنش بقراية خرج الترمنال بتاعك. فيه طريقتين، وبيشتغلوا بمستويات تفصيل مختلفة.
الجرس
جرس الطرفية ممكن يطلع تنبيه وكيل. الجرس بعد الكتابة على طول بيتجاهله تلقائيًا. إشعارات البرامج البعيدة (OSC 9 وOSC 777) وتنبيه انتهاء الأمر OSC 133 ليهم إعدادات منفصلة؛ الاتنين على iOS مقفولين لحد ما تشغلهم.
ده مش محتاج أي تجهيز، بس التطبيق بيعرف بس إن حاجة رنّت.
hook الوكيل
علشان التطبيق يعرف أنهي وكيل مستني وبيعمل إيه، ركّب hook الوكيل على السيرفر:
- iOS: الإعدادات ← Agent alerts ← Install Agent Hook. ولو فيه أكتر من سيرفر متصل، بيسألك أنهي واحد.
- Android: اضغط مطوّل على رأس بانل الجلسة واختار Install agent hooks.
ده بيكتب سكربت shell صغير في ~/.mobile-ssh/agent-hook.sh على السيرفر ده. وهو مش مربوط بوكيل معيّن — بياخد وسائط من سطر الأوامر بدل ما يفكّك صيغة مورّد بعينه — فأي حاجة تقدر تشغّل أمر تقدر تبلّغ من خلاله. ومسح الملف بيبقى إزالة نضيفة.
أول ما وكيل يبلّغ من خلال الـ hook:
- رأس البانل بيكتب
claude · needs you، أو بيسمّي الأداة اللي بيشغّلها. - البانل اللي وكيله واقف مستني بياخد إطار كهرماني. أما البانل اللي إنت باصص عليه أصلًا فبيتساب في حاله — الموجّه قدامك أهو.
- شارة في شريط الأدوات بتعدّ الوكلاء المستنيين على كل الاتصالات، بحد أقصى
9+. - شاشة Agents بتعرض كل وكيل على كل اتصال، ومعاه بيعمل إيه وقاعد مستني بقاله قد إيه.
الرد من غير كتابة
لما وكيل يسأل سؤال إجاباته محددة، التطبيق بيعرض زرار لكل خيار — لحد ستة — في قايمة Agents. وعلى Android تقدر كمان تضغط على شارة الوكيل في رأس البانل.
وإجابتك مابتتكتبش في الجلسة. بتتكتب في ملف على قناة منفصلة والـ hook بياخدها منه، فالرد مايقدرش يبوّظ اللي على الشاشة. والتطبيق بيرفض يبعت خيار الموجّه ماعرضهوش فعلًا، وبيقولك بوضوح لو الاتصال قطع في الوقت ده بدل ما يفشل في صمت.
الإعدادات
تنبيهات الوكلاء مفتوحة تلقائيًا على النظامين، مع مفتاح للإشعارات والصوت والاهتزاز واللوحة النشطة. iOS بينبه للوحة النشطة تلقائيًا كمان، وفيه اختيار الخلفية بس. التنبيه بيوصل لما iOS يسمح للتطبيق يشتغل؛ التعليق الطويل في الخلفية بيقطع تنبيهات SSH المباشرة.
وفيه إعداد افتراضي يستاهل تعرفه: الصوت مقصور على السماعات. لو مافيش سماعة متوصّلة أو متقرنة، التنبيه بيشعر ويهتز بس مش بيطلّع صوت. اقفل الإعداد ده لو عايز التنبيه مسموع من سماعة الموبايل.
مافيش إعداد حساسية ولا منتقي صوت — التحكمات تشغيل/إيقاف بس.
برامج الترمنال بملء الشاشة
لبرامج زي Vim وless وhtop وأدوات ncurses وبانلات tmux:
- للإدخال الخام على iOS، عطّل الإملاء والاقتراحات واقتراحات الكيبورد، ثم افتح لوحة جديدة.
- استخدم صف الأزرار الإضافي لـ
ESCوالأسهم وPGUPوPGDN. - استخدم التكبير بالقرص لو النص صغير قوي، وبعدين استنى شوية لحد ما حجم الترمنال البعيد يستقر.
سطح المكتب البعيد
النظامين بيفتحوا سطح مكتب بعيد عن طريق VNC جوه SSH. استخدم شاشة مشتركة موجودة، زي مشاركة شاشة macOS، أو وافق على إعداد سطح Linux مدعوم. السيرفر لازم يوفر سطح المكتب؛ إذن SSH لوحده مش بيعمل جلسة رسومية. عكس شاشة Linux محتاج X11 مش Wayland؛ macOS بيستخدم الشاشة المشتركة الموجودة من غير ما يعمل سطح مستقل.
استخدم اللمس للنقر والسحب والتكبير، والكيبورد اللي على الشاشة أو الخارجية للكتابة. تتيح الحافظة لصق نص الموبايل في سطح المكتب ونسخ النص منه إلى الموبايل.
حجم الشاشة فيه مقاسات جاهزة ومخصصة بتتحفظ لكل سيرفر. على iOS كل ضلع لازم يكون بين 320 و5120 بكسل. لو السيرفر بيدعم تغيير مباشر، البرامج بتفضل مفتوحة. إعادة التشغيل كبديل محتاجة تأكيد، وموجودة بس لسطح مستقل التطبيق عمله. الأسطح الموجودة والشاشات المشتركة مش بتتعمل لها إعادة تشغيل عشان الحجم. لو Mac مش بيدعم تغيير مباشر، غير الدقة في إعدادات شاشاته.