بحثت مطولاً منذ انتقالي إلى لينكس قبل سنة ونصف عن ويدجت تضاف لسطح المكتب لعرض أوقات الصلاة، وقد شاركني أحد الأصدقاء رابط أداة مفتوحة المصدر تقوم بهذا تحديدا - بالإضافة إلى إمكانية استخدامها للاستماع وقراءة القرآن الكريم، وسعدت جداً بأنّ أحداً يعمل على هذا.
جرّبت الويدجت وواجهت مشكلة في تشغيل الصوت: عند تشغيل صوت القرآن من الويدجت، الصوت يخرج من مخرج صوتي محدد في الجهاز، ولا يمكن تبديله.
فتحت في المستودع Issue للتواصل مع المطور وطرح المشكلة وسردت له ما واجهته. لكن مع الأسف، كونه لم يمتلك مخارج صوتية لتكرار المشكلة، لذا قررت المساهمة بنفسي لحلّها.
التعامل مع ويدجات لينكس KDE Plasma بسيط، فهي تعمل بمزيج من Javascript و QML
وعلى الرغم من خبرتي المتواضعة في الأمرين، إلا أنّه يكفي فهم المفاهيم العامّة عادةً في مشاريع مشابهة لفهم المشكلة وحلّها + بالإضافة أيضاً لسؤال الذكاء الاصطناعيّ حول المشروع والاستعانة به لفهم الترابط بين أجزائه.
وبالفعل، قمت بعمل fork للمشروع، ثم سحبت ملفاته لجهازي، واستعنت بمحرر Google Antigravity لتصفّح الملفات فيه.
لاحظت أن المشروع يستخدم API القرآن كلاود، وهي API تعاملت معها في مشاريع كثيرة سابقاً، وهذا كان مطمئناً نوعاً ما، وشجعني على الاستمرار في النظر في تفاصيل المشروع.
عند تغيير القارئ، كان الكود يقوم بتحديث القيم يدوياً (manual assignment)، وهذا التصرف في لغة QML يؤدي لكسر "الربط التلقائي" (Property Bindings). النتيجة هي أن واجهة المستخدم أصبحت "غير متزامنة" (Desync)، فما يظهر للمستخدم على الشاشة لا يطابق الإعدادات الفعلية في الخلفية.
بالطبع، لم أكن لأعلم سبب المشكلة -بسبب جهلي بأساسيات لغة QML- لولا مساعدة الذكاء الاصطناعيّ، وبالفعل، عندما قمت بإلغاء التعيين اليدوي (Manual Assignment) للمتغيرات داخل دالة valueChanged. هذا الإجراء أعاد تفعيل ميزة "الربط التلقائي" في QML. وبدأ تحويل مصدر الصوت يعمل.
وبما أنني بدأت في العمل على المشروع، قررت إضافة تحسينين للإضافة لتحسين تجربة الاستخدام أيضاً: أولهما السماح بتضخيم حجم النص للوقت المتبقي للصلاة مع تكبير حجم الويدجت، والثاني إزالة خلفية الويدجت - كلاهما أمران اختياريان يمكن تفعيلهما من إدارة الويدجت.
أرسلت طلب PR وشرحت فيه التفاصيل حول المشكلة والحل، والإضافات التي قمت بها، وقد قام المطوّر مشكوراً بقبولها في المشروع الأساسيّ مع بعض التعديلات.
ما أردت الحديث عنه في هذه المشاركة حقاً عدا عن النصيحة باستخدام هذه الأداة، وهو تشجيع المطوّرين على المشاركة في المشاريع مفتوحة المصدر، يقدّر أصحاب هذه المشاريع التقارير والتنبيهات حول مشاكل عمل الأداة بالتأكيد، لكنّهم سيقدّرون المساهمة وإصلاح المشاكل أكثر، وستكون تجربة مفيدة لك كمطوّر وكمستخدم في نفس الوقت.

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