الطرفية
صُمِّمت طرفية Mobile SSH للتشغيل على الهاتف والجهاز اللوحي. تجمع بين مساحة الطرفية، وصف المفاتيح الإضافية، وأجزاء الجلسات المتعددة، ومعالجة التمرير، وسلوك إعادة الاتصال.
أساسيات الطرفية
- تستخدم الطرفية سلوكًا بنمط xterm مع دعم الألوان ومعالجة مفاتيح المؤشّر.
- يحتفظ سجل التمرير بـ 5000 سطر افتراضيًا، ويمكن ضبطه على 1000 أو 10000 أو 50000 من الإعدادات.
- اضغط على جزء لتحديده قبل الكتابة.
- اقرص جزء الطرفية لتغيير حجم النص. يعيد 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 وغيرها من تطبيقات اللصق المُقوَّس) بعلامات اللصق المُقوَّس، بحيث يُدرَج محتوى الحافظة متعدد الأسطر كنص بدلًا من تنفيذه تلقائيًا سطرًا سطرًا. تُغلَّف عمليات اللصق الحقيقية فقط؛ أما النص المكتوب والمُملى فيبقى دون تغيير.
التحديد والنسخ والمشاركة
اضغط مطولًا داخل الطرفية لتحديد الكلمة، ثم اسحب المقابض لتعديل التحديد. يشمل شريط التحديد:
- Copy — يضع النص المحدد في حافظة النظام. يبقى التحديد مظللًا بعد ذلك، فيمكنك مشاركته أو إعادة نسخه أو توسيعه.
- Share — يمرّر النص المحدد إلى ورقة مشاركة النظام (البريد، الملاحظات، المراسلة، إلخ).
- Select all — يوسّع التحديد ليشمل كامل مخزّن الطرفية المرئي، ثم انسخ أو شارك.
- لصق — إدخال نص الحافظة في الطرفية.
البحث في الطرفية
ابحث في كامل مخزّن الطرفية — سجل التمرير والشاشة المرئية — وتنقّل بين النتائج. افتح البحث من عناصر تحكم الطرفية، واكتب استعلامًا، وتنقّل بين المطابقات. يعمل هذا على كلٍّ من Android وiOS.
الألوان والخط المائل والحافظة البعيدة
- تعرض الطرفية ألوانًا حقيقية 24-bit وخطًا مائلًا، بحيث تظهر الموجّهات المُنسَّقة وتلوين الصياغة وواجهات TUI كما تظهر على سطح المكتب.
- حافظة OSC 52: تستطيع البرامج البعيدة نسخ النص إلى حافظة الهاتف. قراءة حافظة الهاتف عن بُعد تتطلب إذنًا منفصلًا في الإعدادات، وهي معطلة افتراضيًا.
- على Android وiOS معًا، تُقاس محارف CJK العريضة والإيموجي والمحارف المركّبة (عناقيد المحارف وروابط انعدام العرض) وتُرسَم بشكل صحيح، ويرسم خط Nerd Font المضمّن محارف powerline وstarship وdevicon وأيقونات Material Design التي قد يعرضها خط النظام كمربّعات فارغة.
تكامل الصدفة والصور المضمّنة
- تكامل الصدفة (OSC 133): عندما تُصدر صدفتك علامات المحثّات OSC 133، يمكن لـ Mobile SSH التنقّل بين المحثّات وتنبيهك عند انتهاء أمر طويل التنفيذ. يعمل على Android وiOS. ولا يحقن أيّ من التطبيقين هذه العلامات — على صدفتك أن تُصدرها (خُطّاف
PROMPT_COMMAND/precmd، أو starship). على Android، يبقى التنقّل بين المحثّات معطّلًا حتى تفعّله من Settings ← Shell integration؛ وعلى iOS تظهر القائمة من تلقاء نفسها بمجرّد وصول العلامات. - تحديد المُخرَجات: المس أيّ موضع داخل مُخرَجات أمر لتحدّد تلك الكتلة بأكملها — خطأ البناء الواقع قبل 300 سطر، لا الأمر الأخير فحسب — ثم انسخها أو شاركها أو وسّعها.
- صور مضمّنة: يعرض Android وiOS صور بروتوكول Kitty graphics مباشرة في الطرفية. تُقاس بالخلايا وتتبع سطرها، فتظل بعد التكبير وإعادة التفاف الأسطر دون فراغات. تظهر أيضًا داخل تطبيقات ملء الشاشة مع فصل مواضعها عن سجل التمرير العادي.
- رموز الفسيفساء: يرسم التطبيق الكتل وبرايل والأشكال السداسية والثمانية بنفسه، فتملأ رسوم
chafaوtimgوANSI الشبكة بدقة دون فجوات أو مربعات فارغة مهما كان الخط. - دقة الصور: يمكن لإعداد الصور إبلاغ برامج الطرفية بدقة كاملة أو نصفها أو ثلثها، لتقليل البكسلات المرسلة عبر اتصال الهاتف.
- دليل العمل الحقيقي (Android): يعرض رأس الجزء المكان الذي يوجد فيه الجزء فعلًا، مأخوذًا من tmux أو مُبلَّغًا من الصدفة عبر OSC 7، بدلًا مما طبعه آخر محثّ صدفةً.
المظهر والمفاتيح
على كلٍّ من Android وiOS، تتيح لك Settings تخصيص الطرفية:
- الخط: اختر خط النظام أحادي المسافة أو JetBrains Mono أو Source Code Pro.
- نظام الألوان: Default أو Solarized Dark أو Light أو Gruvbox أو Dracula أو Nord — يُطبَّق مباشرةً على الأجزاء المفتوحة.
- صفّ المفاتيح الإضافي: أضِف المفاتيح وأزِلها وأعِد ترتيبها وأخفِها، وعرّف مفاتيح تسلسل هروب خاصة بك، وأعِد الضبط إلى الإعدادات الافتراضية، مع معاينة مباشرة تُظهر توزيع الصفّ الذي ستحصل عليه بالضبط. يضع Android هذا في تبويب Keys؛ وiOS تحت Extra keys ← Customize keys.
- الإضافة من الجاهز: لوحة تضمّ نحو 45 مفتاحًا في ست مجموعات —
F1–F12، وتوليفات Ctrl مثل^Cو^Dو^Zو^Rو^L، ورموز مثل|و~و/و_و:، والمعدِّلات. تُرسَلF1–F12كتسلسلات هروب عادية، فلا تحتاج إلى توليفةFN. ويقدّم Android أيضًا مفتاح 📎 إرفاق ملف يفتح منتقي الملفات ويرفع إلى الجلسة الحيّة؛ بينما يقدّم iOS مفاتيحINSوDELومفتاحFNيكشف صفّ أرقام. - حجم سجل التمرير: 1000 أو 5000 أو 10000 أو 50000 سطر (5000 افتراضيًا). ينطبق على الأجزاء الجديدة.
- حجم النص: شريط تمرير، إلى جانب التكبير بالقَرص.
- السِّمة: النظام أو الفاتح أو الداكن للتطبيق بأكمله.
تُعيد إعادة الضبط الإعداداتِ الافتراضية المشحونة مع النسخة بدل تجميد قائمة اليوم، فتصلك تحسينات الإصدارات اللاحقة أيضًا. وتُطبَّق التعديلات مباشرةً على الأجزاء المفتوحة أصلًا.
التمرير
يوجّه Mobile SSH إيماءات التمرير حسب حالة الطرفية:
- في خرج الصدفة العادي، يمرّر السحب سجل التمرير المحلي.
- في تطبيقات الطرفية ذات وضع الفأرة، يرسل التمرير تسلسلات هروب عجلة الفأرة.
- في تطبيقات الشاشة البديلة بدون وضع الفأرة، مثل كثير من جلسات tmux، يدخل التمرير وضع نسخ tmux ويرسل أوامر تمرير بالأسطر.
على النظامين، يرسل النقر داخل برنامج يتتبع الفأرة نقرة يسرى عادةً. في iOS، يبدل النقر يضع المؤشر هذا السلوك بتحريك المؤشر، وينفذ Shift مع النقر الإجراء الآخر. السحب بعد الضغط المطول اختياري ومعطل افتراضيًا؛ السحب العادي يمرر المحتوى.
إذا كتبت أثناء التمرير للخلف، يعود Mobile SSH إلى عرض الطرفية المباشر.
سلوك tmux
يراقب Mobile SSH أوامر tmux الصادرة للإرفاق وإنشاء جلسة جديدة، مثل:
tmux attach -t work
tmux a -t work
tmux new -A -s work
عند انقطاع الاتصال يتذكر التطبيق جلسة tmux والمقبس المتصلين، ليعود إليهما بعد الاتصال مجددًا. تحتفظ اللوحات على المضيف نفسه بأهدافها المستقلة. إذا اختفت الجلسة، تظل الصدفة متاحة.
يقرأ iOS بادئة tmux الحالية عند تبديل المقابس ولا يفترض Ctrl+B. البادئة غير المدعومة أو فشل الاستعلام يوقف العملية برسالة. الكتابة أو إغلاق اللوحة أو قطع الاتصال يلغي خطوات الإرفاق المعلقة؛ ولا تُرسل أوامر الإرفاق إلى برنامج ملء شاشة مجهول.
مدير tmux
يتيح مدير tmux في Mobile SSH التصفح والتحكم دون كتابة مفاتيح البادئة. افتحه من زر معدد الجلسات في اتصال نشط؛ واضغط مطولًا لاختيار tmux عند توفر عدة مديرين. يتكون من ثلاثة أقسام:
- الجلسات — كل جلسات tmux على الخادم.
- النوافذ — نوافذ الجلسة المحدّدة.
- الأجزاء — أجزاء النافذة المحدّدة.
من المدير يمكنك:
- إرفاق جلسة بالطرفية الحالية.
- إنشاء جلسة أو نافذة جديدة، وإعادة تسميتها.
- قسمة جزء أفقيًا أو رأسيًا، وتكبير جزء، وإنهاء الجلسات أو النوافذ أو الأجزاء.
- فرز الجلسات حسب الأحدث استخدامًا (الافتراضي)، أو الاسم، أو تاريخ الإنشاء.
يشير 🔔 إلى أيّ جلسة ينتظر وكيلها مدخلات، فترى بلمحة تشغيلًا متوقفًا لـ Claude Code أو Codex وترفق به. وهذا يكمّل تلميحات إعادة الإرفاق أعلاه: فمنطق إعادة الإرفاق يستعيد آخر جلسة لك تلقائيًا عند إعادة الاتصال، بينما يمنحك المدير تحكّمًا يدويًا كاملًا.
يدعم النظامان إدارة عدة خوادم tmux (مقابس) على المضيف نفسه. تشير علامة الإرفاق إلى الطرفية التي تستخدمها، لا إلى عميل آخر على الخادم.
Herdr وZellij
يدير Android وiOS أيضًا Herdr وZellij. يفتح زر واحد في الشريط المعدد الأساسي المكتشف؛ والضغط المطول يختار غيره. تظهر فقط البرامج الموجودة على الخادم. داخل المدير، يبدّل عنوان الخادم الخوادم، ويبدّل محدد المعدد المديرين.
- Herdr يعرض الجلسات ومساحات العمل والألسنة واللوحات وحالة الوكلاء. عاين الوكيل المنتظر أو أجبه من القائمة. تظل الإجابة مرتبطة باللوحة والجلسة المسماة المختارتين؛ إرسال يرسل النص مع تأكيده وEnter فقط يرسل تأكيدًا فارغًا. يتاح التركيز على لوحة بعينها حيث يُدعم، وإلا استخدم تركيز اللسان الأب. يوفر Herdr حالة الوكلاء دون خطاف إضافي.
- Zellij يسرد الجلسات والتبويبات والأجزاء مع الإرفاق وإعادة التسمية والإنهاء والقسمة. وتبقى الجلسات المُنهاة مدرجة فيُحييها الإرفاق، بينما يُنسيها الحذف نهائيًا. ويحتاج تفصيل التبويبات والأجزاء إلى Zellij 0.44 أو أحدث؛ وعلى إصدار أقدم تعرض الصفحة أسماء التبويبات وتوضّح السبب. وتحتاج القسمة إلى عميل مُرفَق بالجلسة، وتشرح الصفحة ذلك بدل عرض زرّ سيفشل.
وإذا كان herdr أو Zellij مثبَّتًا لكنه ليس على PATH لصدفة تسجيل الدخول، تعرض الصفحة إضافته.
لكل خادم محفوظ خيار الإرفاق عند الاتصال: تلقائي أو لا شيء أو tmux أو herdr أو Zellij. يستخدم التلقائي نتائج الكشف والتاريخ، ويفضل المعدد المستخدم سابقًا، ثم الذي لديه جلسات نشطة، ثم المثبت. دون كشف مخزن يفتح صدفة عادية. يؤثر الكشف اللاحق في الاتصالات المستقبلية فقط ولا يشغل برنامجًا فوق إدخالك الحالي.
تنبيهات الوكيل
يخبرك Mobile SSH حين يتوقّف وكيل برمجة ذكي بعيد — Claude Code أو Codex أو Gemini — بانتظارك. وهو لا يخمّن ذلك بقراءة مخرجات طرفيتك. وهناك مساران يعملان بمستويَي تفصيل مختلفين.
الجرس
قد يطلق جرس الطرفية تنبيه وكيل. تُتجاهل الأجراس بعد الكتابة مباشرة افتراضيًا. لإشعارات البرامج البعيدة (OSC 9 وOSC 777) وتنبيهات اكتمال الأوامر OSC 133 إعدادات مستقلة؛ كلاهما معطل افتراضيًا في iOS حتى تفعله.
لا يحتاج هذا إلى أيّ إعداد، لكن التطبيق لا يعرف إلا أنّ شيئًا ما رنّ.
خُطّاف الوكيل
ولكي يعرف التطبيق أيّ وكيل ينتظر وماذا يفعل، ثبّت خُطّاف الوكيل على الخادم:
- iOS: Settings ← Agent alerts ← Install Agent Hook. وإذا كان أكثر من خادم متصلًا، يسألك عن أيّها.
- Android: اضغط مطوّلًا على رأس جزء الجلسة واختر Install agent hooks.
يكتب هذا سكربت صدفة صغيرًا في ~/.mobile-ssh/agent-hook.sh على ذلك الخادم. وهو محايد تجاه الوكلاء — يأخذ وسائط سطر أوامر بدل تحليل صيغة مزوّد بعينه — فيستطيع أيّ شيء يمكنه تشغيل أمر أن يُبلِغ عبره. وحذف الملف إلغاء تثبيت نظيف.
وبمجرد أن يُبلِغ وكيل عبر الخُطّاف:
- يقرأ رأس الجزء
claude · needs you، أو يذكر الأداة التي يشغّلها. - يحصل الجزء الذي توقّف وكيله على إطار كهرماني. أمّا الجزء الذي تنظر إليه أصلًا فيُترك وشأنه — فالسؤال أمامك مباشرة.
- تَعُدّ شارة في شريط الأدوات الوكلاءَ المنتظرين عبر كل الاتصالات، بحدّ أقصى
9+. - تسرد شاشة Agents كل وكيل على كل اتصال، مع ما يفعله ومدة انتظاره.
الردّ دون كتابة
عندما يطرح وكيل سؤالًا بمجموعة إجابات محدّدة، يعرض التطبيق زرًّا لكل خيار — حتى ستة — في قائمة Agents. وعلى Android يمكنك أيضًا النقر على شارة الوكيل في رأس الجزء.
ولا تُكتب إجابتك داخل الجلسة. بل تُكتب في ملف عبر قناة منفصلة ويلتقطها الخُطّاف، فلا يمكن للردّ أن يُفسد ما على الشاشة. ويرفض التطبيق إرسال خيار لم يعرضه السؤال فعلًا، ويخبرك بوضوح إن كان الاتصال قد انقطع بدل أن يفشل بصمت.
الإعدادات
تنبيهات الوكلاء مفعلة افتراضيًا على النظامين، مع مفاتيح منفصلة للإشعارات والصوت والاهتزاز واللوحة النشطة. في 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 في إعدادات شاشاته إن لم يدعم التغيير الحي.