يعد Tmux الخيار الأكثر شهرة بين أدوات إدارة الجلسات في الطرفية، لكنه قد يكون معقدًا وغير مناسب للمستخدمين الجدد الذين يرغبون في استخدام جلسات متعددة بسهولة وسرعة دون الحاجة لحفظ الكثير من الأوامر. لحسن الحظ، هناك بدائل أبسط تقدم نفس الفكرة بأسلوب أسهل بكثير يتيح للمبتدئين التحكم في جلساتهم الطرفية بفعالية وبدون عناء. في هذا المقال نستعرض أداة طرفية متعددة الإرسال صديقة للمبتدئين وتمنحك ميزات قوية بطريقة سهلة التعلم.
قد تكون إدارة العديد من نوافذ الطرفية مهمة شاقة، وغالبًا ما تكون مُضاعِفات الطرفية الحل الأمثل. ومع ذلك، ربما وجدتَ صعوبة في تهيئة tmux، خاصةً للمبتدئين. هناك بديل أسهل: Zellij، الذي يعمل فورًا دون أي تهيئة.
Terminal Multiplexers تُشبه Window Managers for the Terminal
لمن لا يعرف، Terminal Multiplexers هو برنامج يُحوّل نافذة طرفية واحدة إلى محطات افتراضية متعددة، ويُوفر ميزات إدارة الجلسات. في الأصل، كانت تُشغّل جلسات تسجيل الدخول عن بُعد لتسهيل سير العمل المُعقّد عن بُعد؛ أما اليوم، فيستخدمها الناس أيضًا لإدارة سير عمل الطرفية المحلية.
قد يتضمن سير العمل المُعقّد تشغيل عدة مهام في وقت واحد، مثل: تجميع البرامج، والبحث عن الملفات، وما إلى ذلك. عند تشغيل هذه المهام بدون مُضاعِف طرفية، لا يُمكنك فصل الطرفية دون إيقاف العمليات. ماذا لو استغرقت مهمتك ساعات لإكمالها، وقاطعها اتصال مُتقطّع في منتصفها؟ كانت هذه مشكلة شائعة في عصر أجهزة مودم الاتصال الهاتفي، ولا تزال تحدث.
باختصار، تتيح لك أجهزة مضاعفة المحطات الطرفية استخدام نوافذ محطات طرفية افتراضية متعددة عبر تسجيل دخول واحد أو جلسة محطة طرفية واحدة. كما توفر إدارة للجلسات، ما يتيح لك فصل الجلسة الحالية وإعادة الاتصال بها. يمكنك الاطلاع على دليل أكثر تفصيلاً في “شرح أجهزة مضاعفة المحطات الطرفية”.
يستعيد Zellij جلسات المحطة الطرفية السابقة دون أي جهد.
أحد الأسباب الرئيسية التي تدفعني لاستخدام مُضاعِف طرفية هو مواصلة العمل السابق من حيث توقفت. عند العمل على عدة مشاريع نشطة، تُصبح استعادتها يدويًا عدة مرات يوميًا مهمة شاقة.
بالنسبة لي، الجلسات ضرورية، لكنني لا أرغب في بذل جهد كبير لتحقيقها؛ إنها مجرد راحة بسيطة. أُفضّل المرونة في البرامج المعقدة، ولكن ليس في مُضاعِف الطرفية.
الجلسات في Zellij تعمل ببساطة لأنها تأتي مع مدير جلسات مُدمج. في كل مرة أفتح فيها Zellij، يُنشئ جلسة جديدة باسم عشوائي. يُمكنني ببساطة إدارة تلك الجلسة عن طريق إعادة تسميتها. أُغلق طرفية، وأُعيد فتحها، وأختار الجلسة بالاسم. يُعيد Zellij جميع البرامج كما كانت تمامًا.
من ناحية أخرى، يتطلب Tmux تهيئة يدوية. كمبتدئ، سأحتاج أولًا إلى فهم فكرة إدارة الجلسات، والافتراض الشائع بأن الجلسات تنجو من إعادة التشغيل، واكتشاف أنها لا تنجو، ثم البحث عن إضافة فعّالة والبحث عنها. هناك مديران شائعان للجلسات، وقد واجهتُ مشاكل مع كليهما، خاصةً فيما يتعلق بضعف استمرارية الجلسات أثناء عمليات إعادة التشغيل والصيانة. لا وقت لديّ لأصبح خبيرًا مُدرّبًا على Tmux. يكفيني بعض التسهيلات البسيطة.
في Zellij، تعمل الجلسات بسلاسة تامة. أُثبّته، وأُشغّله، وأبدأ باستخدام الجلسات بالفعل.
خرائط المفاتيح الافتراضية المعقولة تعني إعدادات أقل
لأنني أعيش داخل الطرفية، فأنا بحاجة إلى خرائط مفاتيح مريحة. يجب أن تتطلب الإجراءات التي أستخدمها غالبًا ضغطة مفتاح واحدة فقط. أستخدم مفاتيح التنقل بكثرة، للتنقل بين علامات التبويب والأجزاء.
للتنقل، يستخدم Zellij مفاتيح Vim: Alt وH وJ وK وL للتحرك يسارًا وأسفل وأعلى ويمينًا، ولكن يمكنك أيضًا استخدام مفاتيح الأسهم. عند الضغط على Alt، يمكنني التنقل بسرعة بين علامات التبويب والأجزاء دون انقطاع أو تحرير Alt. لتنفيذ نفس الإجراء في tmux، يجب أن أضغط أولًا على Ctrl+B، ثم أحرره، ثم أتبعه بمفتاح سهم. قد لا يبدو هذا كثيرًا، لكن التنقل عبر أجزاء متعددة يتطلب إجراءين منفصلين: Ctrl+B، ثم أحرره، ثم مفتاح سهم، مرارًا وتكرارًا. هذه الإجراءات المعقدة تُبطئ التنقل بشكل كبير وتُعيق تدفق العمل.
من الممكن إعادة تعيين مفتاح في tmux إلى شيء أكثر ملاءمة، ولكن بعد ذلك يصبح الأمر مشكلة في التكوين. أحتاج إلى تهيئة خرائط المفاتيح واختبارها، ثم التعامل مع أي مشكلة قد تظهر، مثل عدم عمل المفاتيح في بعض الحالات. على Zellij، تعمل بشكل جيد؛ اختبرها شخص آخر، وأحصل على هذه الميزة مجانًا.
خرائط مفاتيح سهلة للمبتدئين من خلال واجهة مستخدم بديهية
من المشاكل الشائعة في أدوات لينكس المتقدمة صعوبة تذكر جميع خرائط المفاتيح. ولمعالجة هذه المشكلة، أنشأ مستخدمو Emacs وNeovim حزمًا تعرض خرائط المفاتيح أثناء استخدامها. عند تفعيل خريطة مفاتيح، تظهر قائمة سياقية تعرض جميع خرائط المفاتيح ذات الصلة بالسياق الحالي. يوفر Zellij (على عكس tmux) ميزة مشابهة افتراضيًا. تظهر قائمة السياق هذه أسفل الشاشة فور بدء التشغيل، وتتغير عند الضغط على المفاتيح. لا أحتاج لتعلم أيٍّ من خرائط المفاتيح على الإطلاق. هذه الميزة تُسهّل عملية التهيئة للمبتدئين.
في المقابل، يتطلب tmux حفظ المفاتيح، مما يدفعني إلى التنقل باستمرار بين السياقات للبحث عن خرائط المفاتيح. مع مرور الوقت، يصبح الأمر صعبًا، لكن هناك حاجة إلى عمل مسبق.
محطة طرفية عائمة سهلة الاستخدام تُنظّف سطح مكتبي.
هل سبق لك أن فتحت نافذة طرفية لتنفيذ أمر واحد فقط، ثم أغلقتها؟ يبدو فتح وإغلاق المحطات الطرفية بهذه الطريقة أمرًا مزعجًا. أحيانًا أجد نفسي أفتح ست نوافذ طرفية لمجرد أنني نسيت إغلاقها. يقدم Zellij ميزة صغيرة وجذابة تحل هذه المشكلة: محطة طرفية عائمة. يمكنك تنفيذ مهام سريعة لمرة واحدة داخلها. لم أعد بحاجة لفتح علامات تبويب أو نوافذ؛ كل ما أفعله هو تفعيل هذه المحطة الطرفية العائمة الجاهزة دائمًا.
يدعم Tmux المحطة الطرفية العائمة:
tmux popup bash
هذا مفيد، لكن يجب عليّ أيضًا ربطه بمفتاح. كمبتدئ، عليّ أولًا أن أتعلم كيفية القيام بذلك. عليّ أيضًا التعامل مع أي تعارضات قد تنشأ. لكن هذا ليس كل شيء؛ فاللوحة تفقد محتوياتها عند إغلاقها، لذا عليّ معالجة ذلك أيضًا. من المرجح أن أقضي ساعتين أو ثلاثًا في القيام بذلك، وأعيش مع حل غير مكتمل مليء بالأخطاء يزعجني بعد أكثر من عامين. لا أهتم بالإصلاحات المنزلية لمجرّد القيام بها. لو أردتُ امتلاك سيارة، لما بدأتُ بصهر الخام؛ بل سأبدأ بشراء واحدة فعّالة – مجرّبة ومختبرة.
مع Zellij، الأمر سهل؛ أضغط Alt+F وأُنهي يومي.
يُسهّل الأمور ولا يُعقّدها.
لعلّكم لاحظتم موضوعًا مُستمرًا: الراحة. لا أرغب في تهيئة مُضاعِف طرفي أكثر من رغبتي في تهيئة محمصة خبز. لو اضطررتُ لإنشاء خرائط مفاتيح خاصة لتحميص الخبز فقط، لرميتُ المحمصة في سلة المهملات. ليس كل شيء بحاجة إلى أن يكون قابلًا للتخصيص إلى هذا الحد، وفي كل مرة أرى فيها ساعة أو أي ميزة أخرى عديمة الفائدة في خط النموذج (الشريط في الأسفل)، يُذكرني ذلك بأن الناس استنفدوا أفكارهم لتخصيص هذه الأشياء منذ زمن طويل.
تُؤدي مُضاعِفات الطرفية وظيفة واحدة، وطالما كانت الإعدادات الافتراضية معقولة، فهي جيدة بما فيه الكفاية. أهم شيء هو تجربة المستخدم – أي مدى سهولة البدء واستخدامه. عندما بدأتُ باستخدام Zellij لأول مرة، كنتُ أعرف كيفية استخدامه بالفعل، ولم ألتفتُ للوراء أبدًا.
بالنسبة لي، مُضاعِفات الإرسال الطرفية غير ضرورية للتكوين. لو كانت هناك أفكار جديدة ومبتكرة في هذا المجال، لكانت قابلية التوسعة ميزةً مميزة، لكنها غير موجودة، وقابلية التوسعة ليست سوى وسيلةٍ للأخطاء وإضاعة الوقت. يعمل Zellij تلقائيًا، ولهذا السبب أحبه. لستُ مُضطرًا لتخصيصه بنفسي، فقد اتخذ المطورون قراراتٍ حكيمة. تأتي هذه الإعدادات الافتراضية مع خبرةٍ كبيرة، وميزةٌ مفيدةٌ للانطلاق (مثل واجهة المستخدم لخريطة المفاتيح السياقية) تجعل Zellij خيارًا رائعًا للمبتدئين.
إذا كنت مهتمًا بـ Zellij، فعليك الاطلاع على وثائقه والتوجه إلى صفحة تثبيت Zellij، التي تُفصّل كيفية تثبيته عبر Cargo. يتوفر Zellij أيضًا على بعض توزيعات Windows (مثل Fedora وDebian وUbuntu)، ولكن قد تحتاج أولًا إلى تعلم كيفية تثبيت البرامج عبر الطرفية أو عبر Snap (وهذا ينطبق على كلٍّ من Debian وUbuntu).
إذا كنت تُصرّ على اتخاذ الطريق الصعب وترغب في إعادة اختراع العجلة، فلا يزال tmux خيارًا جيدًا، ويمكنك اتباع دليلنا لتثبيت tmux واستخدامه للبدء. مع ذلك، انتبه إلى أنك ملتزم بتكوينه.
اختيار الأداة المناسبة يسهّل كثيرًا على المبتدئين الاستفادة من قوة الطرفية دون الشعور بالإحباط أو الخوف من التعقيد. جرّب البديل الذي شرحناه في هذا المقال وشاركنا تجربتك في التعليقات: هل وجدته أسهل من Tmux؟ أم لديك أداة أخرى تفضّلها لإدارة الجلسات الطرفية؟