كانت شاشتي الطرفية فوضى: كيف أنقذني Zsh مع Powerlevel10k من جحيم الأوامر المنسية؟

خليني أحكيلكم قصة صارت معي قبل كم سنة، قصة يمكن كثير منكم يا جماعة المبرمجين عاشها أو بعيشها كل يوم. كانت الساعة حوالي 2 بعد نص الليل، وأنا شغال على مشروع مهم لعميل، والموعد النهائي للتسليم “أمس مش بكرة”. كنت غرقان في الكود، بنتقل بين فروع Git المختلفة زي المجنون، بحاول أصلح bug خطير ظهر فجأة.

في وسط هاي العجقة، كنت محتاج أرجع لأمر طويل ومعقد كتبته قبل أسبوع، أمر فيه بايبات (pipes) وفلاتر وكمالة حكي… ضغطت Ctrl+R وبديت أبحث في تاريخ الأوامر (history)، بس الشاشة السودا والكلام الأبيض ما كانوا مساعديني أبدًا. كل شي كان شكله زي بعضه. بعد ما ضيعت 10 دقائق وأنا بدور، قلت لحالي “خلص، بكتبه من أول وجديد”.

والضربة القاضية إجت لما عملت git push وأنا مفكر حالي على فرع التطوير (develop branch)، لأكتشف بعد فوات الأوان إني كنت على الفرع الرئيسي (main) ودمرت الشغل! ليش؟ لأنه الطرفية المملة تاعتي ما كانت تفرجيني اسم الفرع اللي أنا فيه بشكل واضح. وقتها، مسكت راسي وقلت “يا زلمة شو هالحالة؟ لازم ألاقي حل. هاي مش طريقة للشغل!”.

تلك الليلة كانت نقطة التحول. من يومها، بدأت رحلتي في تحويل شاشتي الطرفية من فوضى عارمة إلى لوحة تحكم ذكية، جميلة، ومنظمة. واليوم، جاي أشاركم هاي الرحلة، وكيف إنقذني Zsh مع Powerlevel10k.

لماذا قررت التغيير؟ الألم هو أفضل دافع

بصراحة، المشكلة ما كانت بس في الأوامر المنسية. كانت حالة من عدم الرضا العام عن بيئة العمل الأساسية لكل مطور: الطرفية (Terminal). المشاكل اللي واجهتني مع طرفية Bash الافتراضية كانت كثيرة:

  • واجهة مملة وغير مفيدة: مجرد اسم مستخدم واسم جهاز ومسار. لا معلومات عن فرع Git، لا إشارة لبيئة العمل الافتراضية (Virtual Environment) تبعة بايثون، ولا أي شي ثاني.
  • الإكمال التلقائي (Auto-completion) محدود: صحيح Bash عنده إكمال تلقائي، بس كان بدائي جدًا. ما بفهم السياق ولا بساعدني أتذكر الخيارات المتاحة للأوامر.
  • البحث في تاريخ الأوامر صعب: أداة البحث الافتراضية كانت مقبولة، لكنها مش ذكية كفاية للمهام المعقدة.
  • غياب الجماليات: ممكن البعض يشوفها رفاهية، بس أنا بآمن إن بيئة العمل المريحة للعين بتزيد الإنتاجية وبتقلل التوتر.

كان لازم ألاقي بديل يعالج هاي المشاكل، بديل يشتغل معي مش ضدي. وهنا بدأت رحلتي مع Zsh.

مرحباً بعالم Zsh: الترقية التي تستحقها طرفيتك

Zsh، أو Z Shell، هو ببساطة “Shell” أو مفسر أوامر مثل Bash، ولكنه أحدث وأقوى ومليء بالميزات الخارقة التي تجعل حياتك أسهل بكثير.

ما هو Zsh؟ ولماذا هو أفضل من Bash (في معظم الحالات)؟

فكر في Zsh على أنه النسخة المطورة من Bash. هو مبني على نفس المبادئ، لكنه يضيف طبقات من الذكاء والمرونة:

  • إكمال تلقائي خرافي: اضغط Tab وهو سيكمل لك ليس فقط أسماء الملفات، بل الأوامر، الخيارات (flags)، وحتى أسماء فروع Git. ولو كان في عدة خيارات، بيعرضهم لك بطريقة تفاعلية تختار منها.
  • نظام إضافات (Plugins) قوي: هاي هي الميزة القاتلة. يمكنك تركيب إضافات تعمل كل شيء تقريبًا، من تسهيل التعامل مع Git إلى تلوين الأوامر وتمييزها.
  • تخصيص شامل: يمكنك تغيير كل شيء في شكل ومظهر الطرفية، من طريقة عرض المسار إلى الألوان والأيقونات.
  • تاريخ أوامر مشترك وذكي: كل نوافذ الطرفية المفتوحة تشارك نفس تاريخ الأوامر، مما يجعل العودة لأمر كتبته في نافذة أخرى سهلاً جدًا.

كيف تبدأ رحلتك مع Zsh؟ (تثبيت وتفعيل)

تثبيت Zsh سهل جدًا على معظم الأنظمة. افتح طرفيتك الحالية (Bash) ونفذ الأمر المناسب لنظامك:

# على أنظمة Debian/Ubuntu
sudo apt update && sudo apt install zsh -y

# على أنظمة macOS (باستخدام Homebrew)
brew install zsh

بعد التثبيت، تحتاج إلى جعل Zsh هو المفسر الافتراضي لديك. هذا يعني أنه في كل مرة تفتح فيها الطرفية، سيعمل Zsh تلقائيًا.

chsh -s $(which zsh)

بعد تنفيذ هذا الأمر، أغلق الطرفية وافتحها من جديد. إذا سألك Zsh بعض الأسئلة الإعدادية لأول مرة، يمكنك تجاهلها الآن بالضغط على ‘q’ لأننا سنقوم بإعداد كل شيء بطريقة أفضل.

نصيحة من أبو عمر: لا تخف من تغيير الـ Shell الافتراضي. العملية آمنة تمامًا ويمكنك دائمًا العودة إلى Bash بنفس الطريقة (chsh -s $(which bash)) إذا لم يعجبك Zsh (وهو ما أشك فيه!).

Oh My Zsh: مدير أعمالك الشخصي في الطرفية

Zsh لوحده قوي، لكن إعداده وتخصيصه من الصفر يمكن أن يكون معقدًا. هنا يأتي دور “Oh My Zsh”، وهو إطار عمل (Framework) مجتمعي يجعل إدارة إعدادات Zsh والإضافات والثيمات سهلة وممتعة.

لتثبيته، كل ما عليك هو نسخ ولصق هذا الأمر في طرفية Zsh الجديدة:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

هذا الأمر سيقوم بتنزيل Oh My Zsh وتهيئة ملف الإعدادات الرئيسي لك، وهو ~/.zshrc. هذا الملف هو مركز التحكم الجديد لطرفيتك.

الإضافات (Plugins): أسلحتك السرية لزيادة الإنتاجية

الآن يبدأ المرح الحقيقي. Oh My Zsh يأتي مع نظام إضافات جبار. سأشارككم أهم ثلاث إضافات لا أستطيع العيش بدونها:

  1. zsh-autosuggestions: هل تذكرون مشكلة نسيان الأوامر؟ هذه الإضافة تحلها. تبدأ في اقتراح باقي الأمر الذي تكتبه بلون رمادي خافت بناءً على تاريخ أوامرك. كل ما عليك هو الضغط على السهم الأيمن (→) لقبول الاقتراح. إنها مثل قراءة الأفكار!
  2. zsh-syntax-highlighting: هذه الإضافة تلون الأوامر التي تكتبها في الوقت الفعلي. إذا كان الأمر صحيحًا وموجودًا، يظهر باللون الأخضر. إذا كان خطأ، يظل باللون الأحمر. هذا يوفر عليك الكثير من الوقت ويمنع الأخطاء المطبعية قبل الضغط على Enter.
  3. git: هذه الإضافة تأتي مثبتة مع Oh My Zsh بشكل افتراضي، وهي كنز حقيقي. توفر لك عشرات الاختصارات لأوامر Git. مثلاً، بدلاً من كتابة git status، يمكنك كتابة gst. وبدلاً من git commit -m "message"، يمكنك كتابة gc -m "message".

لتثبيت الإضافتين الأولى والثانية (git مثبتة مسبقًا)، سنقوم بنسخ مستودعاتهم إلى مجلد إضافات Oh My Zsh:

# تثبيت zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# تثبيت zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

بعدها، افتح ملف ~/.zshrc بأي محرر نصوص، وابحث عن السطر الذي يبدأ بـ plugins=، وقم بتعديله ليبدو هكذا:

plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

احفظ الملف، وأغلق الطرفية وافتحها من جديد لتفعيل الإضافات.

Powerlevel10k: عندما تجتمع القوة مع الجمال

الآن طرفيتنا أصبحت ذكية، لكنها لا تزال تبدو عادية. حان الوقت لإعطائها المظهر الذي تستحقه. Powerlevel10k ليس مجرد “ثيم”، بل هو تجربة بصرية متكاملة للطرفية.

ما هو Powerlevel10k ولماذا هو ساحر؟

Powerlevel10k هو ثيم لـ Zsh يتميز بالآتي:

  • سرعة فائقة: على الرغم من كل المعلومات التي يعرضها، فهو مصمم ليكون سريعًا جدًا ولا يؤخر ظهور الـ prompt.
  • معلومات فورية: يعرض لك معلومات مهمة جدًا في لمحة بصر: فرع Git الحالي وحالته (هل هناك ملفات جديدة؟ معدلة؟)، إصدار اللغة أو البيئة التي تعمل بها (Python, Node.js, Go)، سياق Kubernetes، والكثير غيرها.
  • إعداد سهل وتفاعلي: يأتي مع معالج إعدادات (wizard) يسألك أسئلة بسيطة بالصور لتختار الشكل الذي يعجبك خطوة بخطوة.
  • أيقونات ورموز: يستخدم الأيقونات والرموز لتوصيل المعلومات بسرعة، مما يجعل الطرفية أسهل للقراءة وأجمل شكلاً.

التثبيت والإعداد: رحلة الخمس دقائق نحو طرفية الأحلام

أولاً، سنقوم بتثبيت الثيم بنفس طريقة الإضافات:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

ثم، افتح ملف ~/.zshrc مرة أخرى، وابحث عن ZSH_THEME وغير قيمته إلى:

ZSH_THEME="powerlevel10k/powerlevel10k"

خطوة مهمة جدًا: لكي يعمل Powerlevel10k بشكل صحيح ويعرض جميع الأيقونات والرموز، يجب أن تستخدم خطًا (Font) يدعمها. هذه الخطوط تسمى “Nerd Fonts”. أنا شخصيًا أستخدم وأوصي بـ “MesloLGS NF”. يمكنك تنزيله وتثبيته بسهولة باتباع التعليمات في مستودع Powerlevel10k الرسمي. بعد تثبيت الخط، لا تنسَ تعيينه كخط افتراضي في إعدادات برنامج الطرفية الذي تستخدمه.

الآن، احفظ الملف وأغلق الطرفية وافتحها من جديد. عند فتحها، سيبدأ معالج إعدادات Powerlevel10k السحري تلقائيًا! سيطرح عليك أسئلة مثل: “هل ترى هذا الرمز؟ (♦)”، “أي شكل تفضل للفاصل؟”، “هل تريد عرض الوقت؟”. استمتع بالرحلة واختر ما يناسب ذوقك. لا تقلق، يمكنك دائمًا إعادة تشغيل الإعدادات بكتابة الأمر p10k configure.

النتيجة النهائية: طرفية تعمل من أجلك، وليس العكس

بعد كل هذه الخطوات، انظر إلى الفرق:

قبل: واجهة بسيطة ومملة لا تعطيك أي معلومة مفيدة.

user@hostname:~/my-project$ 

بعد: لوحة تحكم غنية بالمعلومات والألوان.

~/my-project on  main [?] is 📦 v1.2.3 via 🐍 v3.9.7 
❯ 

هذا المثال يوضح (بشكل تقريبي) كيف يمكن أن يبدو الـ prompt الجديد. تراه يخبرك أنك في مجلد my-project، على فرع Git المسمى main، وهناك ملفات غير متتبعة ([?])، وإصدار الحزمة هو v1.2.3، وأنك تستخدم بيئة بايثون v3.9.7. كل هذا قبل أن تكتب حرفًا واحدًا!

لم أعد بحاجة لتنفيذ git status كل ثانيتين. لم أعد أتساءل ما هو إصدار Node.js الذي أستخدمه. لم أعد أدفع الكود إلى الفرع الخاطئ. طرفيتي أصبحت شريكًا ذكيًا في عملي.

خلاصة أبو عمر ونصيحة أخيرة 💡

الاستثمار في أدواتك هو أفضل استثمار في إنتاجيتك وراحتك النفسية. قد تبدو الطرفية مجرد شاشة سوداء، لكنها في الحقيقة ورشة عملك الأساسية كمطور. تحويلها من أداة بسيطة إلى مساعد ذكي باستخدام Zsh و Powerlevel10k كان من أفضل القرارات التي اتخذتها في مسيرتي المهنية.

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

ويلا يا جماعة، روحوا رتبوا طرفياتكم، فالحياة أقصر من أن نضيعها مع طرفية مملة!

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

خوارزميات

كانت قاعدة بياناتنا تستنزفها الأشباح: كيف أنقذنا ‘مرشح بلوم’ (Bloom Filter) من جحيم الاستعلامات؟

أشارككم قصة حقيقية من قلب المعركة التقنية، كيف كانت استعلامات عن بيانات غير موجودة "كالأشباح" تخنق قاعدة بياناتنا، وكيف كانت خوارزمية احتمالية بسيطة تدعى "مرشح...

20 مايو، 2026 قراءة المزيد
تجربة المستخدم والابداع البصري

كان تطبيقنا جداراً منيعاً: كيف أنقذتنا ‘إمكانية الوصول’ من جحيم استبعاد المستخدمين؟

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

20 مايو، 2026 قراءة المزيد
برمجة وقواعد بيانات

كانت تطبيقاتنا تمطر قاعدة البيانات بالاستعلامات: كيف أنقذنا ‘التحميل الجشع’ (Eager Loading) من جحيم مشكلة N+1؟

في هذه المقالة، أشارككم قصة حقيقية عن كيفية تسبب مشكلة N+1 بكارثة أداء في أحد مشاريعنا، وكيف كان "التحميل الجشع" (Eager Loading) هو طوق النجاة....

19 مايو، 2026 قراءة المزيد
البودكاست