الطرفية

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

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

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

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

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

إغلاق جزء يقطع جلسة SSH تلك. العودة إلى الشاشة الرئيسية يُبقي الجلسات النشطة متاحة عبر Active Sessions.

Eternal Terminal (ET)

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

يُبقي 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 فيتكرّر.

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

تستخدم الطرفية اتصالًا مباشرًا بالتمرير مع لوحة المفاتيح على الشاشة: يُرسَل كل حرف إلى الصدفة البعيدة أثناء كتابتك، مع إيقاف التصحيح التلقائي والاقتراحات التنبّؤية بحيث لا تعيد لوحة المفاتيح كتابة الإدخال قبل وصوله إلى الصدفة. يُبقي هذا 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 وغيرها من تطبيقات اللصق المُقوَّس) بعلامات اللصق المُقوَّس، بحيث يُدرَج محتوى الحافظة متعدد الأسطر كنص بدلًا من تنفيذه تلقائيًا سطرًا سطرًا. تُغلَّف عمليات اللصق الحقيقية فقط؛ أما النص المكتوب والمُملى فيبقى دون تغيير.

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

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

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

ابحث في كامل مخزّن الطرفية — سجل التمرير والشاشة المرئية — وتنقّل بين النتائج. افتح البحث من عناصر تحكم الطرفية، واكتب استعلامًا، وتنقّل بين المطابقات. يعمل هذا على كلٍّ من أندرويد وiOS.

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

تكامل الصدفة والصور المضمّنة

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

على كلٍّ من أندرويد وiOS، تتيح لك Settings تخصيص الطرفية:

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

التمرير

يوجّه 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 وتتحكّم به دون كتابة توليفات مفتاح البادئة. افتحه بزر Tmux من جلسة متصلة. وهو يسرد في ثلاثة أقسام:

من المدير يمكنك:

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

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

herdr وZellij (أندرويد)

يقدّم Android الفكرة نفسها لمُضاعِفَين آخرين. لكلٍّ منهما أيقونته في شريط الأدوات، ولا تظهر الأيقونة إلا بعد أن يعثر التطبيق فعلًا على ذلك البرنامج على الخادم — فيخبرك شريط الأدوات بما هو مثبَّت هناك دون أن تشغّل which.

وإذا كان herdr أو Zellij مثبَّتًا لكنه ليس على PATH لصدفة تسجيل الدخول، تعرض الصفحة إضافته.

لكل خادم محفوظ إعداد Attach on connect: تلقائي (كشف)، أو لا شيء، أو tmux، أو herdr، أو Zellij. ويختار الوضع التلقائي ما استخدمته آخر مرة على ذلك الخادم، ثم ما لديه جلسات حيّة، ثم ما هو مثبَّت — ولا يُرفِق شيئًا بدل التخمين حين لم يفحص الخادم بعد.

أمّا تطبيق iOS فيقتصر اليوم على tmux.

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

يخبرك Mobile SSH حين يتوقّف وكيل برمجة ذكي بعيد — Claude Code أو Codex أو Gemini — بانتظارك. وهو لا يخمّن ذلك بقراءة مخرجات طرفيتك. وهناك مساران يعملان بمستويَي تفصيل مختلفين.

الجرس

جاهزًا من الصندوق، يرفع جرسُ طرفية قادمٌ من جلسة لا تشاهدها تنبيهًا، وكذلك تسلسلات هروب إشعارات سطح المكتب (OSC 9 وOSC 777) التي تُصدرها أدوات كثيرة أصلًا. وتُتجاهَل الأجراس التي تصل مباشرة بعد كتابتك، فلا تزعجك ضوضاء الإكمال المعتادة في الصدفة.

لا يحتاج هذا إلى أيّ إعداد، لكن التطبيق لا يعرف إلا أنّ شيئًا ما رنّ.

خُطّاف الوكيل

ولكي يعرف التطبيق أيّ وكيل ينتظر وماذا يفعل، ثبّت خُطّاف الوكيل على الخادم:

يكتب هذا سكربت صدفة صغيرًا في ~/.mobile-ssh/agent-hook.sh على ذلك الخادم. وهو محايد تجاه الوكلاء — يأخذ وسائط سطر أوامر بدل تحليل صيغة مزوّد بعينه — فيستطيع أيّ شيء يمكنه تشغيل أمر أن يُبلِغ عبره. وحذف الملف إلغاء تثبيت نظيف.

وبمجرد أن يُبلِغ وكيل عبر الخُطّاف:

الردّ دون كتابة

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

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

الإعدادات

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

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

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

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

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