
الإلهام
أحب العبث مع Linux والسكريبتات. معظم الوقت، أنا فقط أجرب وأحاول أفكار عشوائية للمتعة. حتى لو كنت جالساً ومللاناً، أجد نفسي بطريقة ما أبني أدوات صغيرة غريبة.
واحد من الأشياء التي ألهمتني حقاً كان مشاهدة Chris Titus Tech وبثوثه المباشرة. إنه يعمل على مشروع رائع يسمى linutil
، وهذا نوعاً ما أعطاني الدفعة لصنع نسختي الخاصة من شيء مثله، ولكن بطريقتي الفوضوية.
في البداية، كان المشروع... حسناً، قبيحاً. استخدمت whiptail
للقائمة. لقد عمل، لكنه بدا قديماً جداً وشعر بالثقل نوعاً ما. بصراحة، كان مجرد سكريبت shell أساسي مع مجموعة من القوائم مجمعة معاً.
📅 محدث: 2025-03-21
لاحقاً، بدأت استخدام gum
، والذي وجدته من خلال ml4w. جعل الأشياء تبدو أجمل بكثير. لكن بعدها جربت fzf
، وهذا ببساطة انطبق. كان أسرع بكثير وأنظف لما أردت فعله. لذا تخليت عن gum
(ما زلت أحبه رغم ذلك 💖) وذهبت بالكامل مع fzf
.
📅 محدث: 2025-05-01
🦀 والآن... خطوة كبيرة: لقد أضفت واجهة مستخدم نصية كاملة مبنية على Rust باستخدام ratatui
. لا مزيد من القوائم القبيحة. الواجهة الجديدة تبدو أفضل بكثير، تعمل بسلاسة أكبر، ويمكنني أخيراً إضافة ميزات لم تكن ممكنة في Bash وحده.
لكن ليكن واضحاً أن سكريبتات Carch الفعلية (مثل سكريبتات الإعداد والأدوات وغيرها) ما زالت مكتوبة في Bash. لن أعيد كتابة كل ذلك في Rust (هذا سيكون جنوناً). واجهة Rust TUI هي بشكل أساسي لنظام القائمة للتعامل مع التنقل والفئات والمعاينة. عندما تحدد شيئاً، ما زال يشغل سكريبتات Bash تحتها، ونعم، fzf
ما زال يقوم بالعمل هناك أيضاً!
إذن نعم، إنه خليط: Rust للواجهة، Bash للمنطق، و fzf
في المنتصف يربط كل شيء معاً. إنه غريب لكنه يعمل!
Carch حقاً قطع شوطاً طويلاً من شيء أساسي جداً ونوعاً ما قبيح، إلى شيء أفتخر به. ما زال هناك الكثير للقيام به، لكنه يصبح أروع كل يوم.