بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
الجزء الثاني وثائق Arfedoracontrolcenter .
رابط الجزء الاول https://arfedora.blogspot.com/2017/11/arfedoracontrolcenter.html .
رابط الجزء الثالث https://arfedora.blogspot.com/2017/11/arfedoracontrolcenter_61.html .
كتابة أو نوع من الإضافات Launcher .
النوع الاول من الإضافات هو الأبسط وسأبدأ به وهو شيء مثل Launcher ليس له عمل إلا وضع زر لتشغيل شيء الأمر بهذه البساطة سأضع صورة لإضافة لوضع زر لتشغيل مركز تحكم جنوم ثم تحتها الشرح .
2-button_label هذا الإسم الذي يظهر تحت الصورة في الزر Button .
3-button_image هذا إسم الأيقونة التي ستظهر في الزر مع الملاحظة كما ذكرت سابقا يجب وضع الأيقونة في مجلد icons سبق وتكلمت عنه في الجزء الأول .
4-category هذه إذا صح التعبير المجموعة التي سينتمي إليها الزر في واجهة البرنامج الرئيسية .إذا لم تكن هذه المجموعة موجودة سيتم إضافتها لواجهة البرنامج بشكل تلقائي من دون تدخل منا على العموم الأفضل أن لا يكون هناك الكثير من المجموعات .
5-title تجاهلو هذه الان لم أضع لها إستفادة بعد كنت أفكر بشيء وتراجعت عنه وهي ليست مهمة ممكن ان تضعو أي نص لاكن من المهم أن تكون موجودة وإلا سيتجاهل البرنامج الإضافة كنت أريد ان أزيلها لاكن قلت لربما إستفدت منها في المستقبل بشيء.
6-arch وهي قائمة بالمعماريات المدعومة مثل x86_64 وغيرها أو بكل بساطة all اي كل شيء إذا لم تكن all أو معمارية الجهاز الذي يشغل البرنامج مذكورة في هذه القائمة سيتم تجاهل الإضافة .
7-distro_name وهي قائمة بأسماء التوزيعات المدعومة ذات المبدأ في arch مع العلم البرنامج سيجلب إسم التوزيعة من ملف etc/os-release/ بالتحديد امام =ID .
8-distro_version وهي قائمة بأرقام إصدارات توزيعة ما المدعومة ذات المبدأ في arch و distro_name مع العلم البرنامج سيجلب رقم إصدار التوزيعة من ملف etc/os-release/ بالتحديد امام =VERSION_ID .
9-mainbuttontooltip هذه المعلومة التي تظهر للزر ما يسمى tooltips (ملاحظة متغير blockclose في أسفلها ليس له عمل في الإضافة من نوع Launcher لاكن يجب ان يكون موجود في حال عدم وجوده سيتم تجاله الإضافة ) .
10-if_true_skip إذا كان True سيتم تجاهل الإضافة ممكن الإستفادة منه مثلا لنفترض أريد من الإضافة أن لا تعمل على واجهة جنوم,أقوم بعمل مقارنة من خلال دالة او أي شيء إذا كانت الواجهة جنوم ترجع True غير ذلك ترجع False ثم أعطي هذه النتيجة ل if_true_skip .
11-if_false_skip هي عكس if_true_skip نلاحظ بدل كتابة دالة تعمل مقارنة إستخدت خاصية موجودة في بايثون بشكل بسيط ستكون if_false_skip بقيمة True إذا كانت كلمة GNOME في متغير desktop (سبق وتكلمنا عنه) غير ذلك ستكون بقيمة False .
12-if_one_true_skip ذات المبدا إذا كان أحد عناصر هذه القائمة True سيتم تجاهل الإضافة .
13-if_all_true_skip أيضا ذات المبدأ لاكن إذا كان كل عناصر هذه القائمة True سيتم تجاهل الإضافة .
14-priority على الرغم أن الإسم لا يدل على مضمونها لأني كنت أستخدمها لشيء أخر ثم عدلت عنه على العموم هذه نوع الإضافة هناك ثلان انواع أو النوع برقم 0 ونوع وبرقم 1 ونوع برقم أعلى من واحد أي 3 أو 4 أو ...إلخ أي أي شيء أعلى من رقم واحد وهو النوع Launcher الذي نشرح عنه الان النوعين الباقين ساشرح عنهم في الجزء الاخر .
15-عندما يكون النوع Launcher سيقوم الزر Button بشتغيل دالة إسمها Run في حال الضغط عليه لهذا كل شيء تريد تشغيله من خلال الزر قم بوضعه في دالة Run مع الملاحظة أنها تأخذ وسيط أيا كان إسمه لاكن الأفضل أن يسمى بالمضمون الذي هو button من المهم وجود هذا الوسيط أو ال Parameter .
الأن بعض الملاحظات اولا في كل الشرح يجب ان نعرف ان لغة البرمجة بايثون حساسة لحالة الأحرف أي Run ليست مثل run .
ثانيا نلاحظ في دالة Run إستخدمت subprocess.Popen وهي بشكل بسيط لتشغيل أمر خارجي نشغله عادتا من الترمينال وإذا صح التعبير Popen بهذه الصيغة تشغل ما نطلبه منها وتنصرف من دون أن تعمل Block لحلقة تكرار البرنامج مما سيأدي لتوقف البرنامج حتى نغلق ما شغلته لهذا إستخدامها بهذه الصيغة أمر مهم وأظن ممكن إستخدام os.system بالمناسبة لا ننسى أن نستدعي المكتبات التي نستعملها .
ملاحظة في الإصدار الجديد من البرنامج أصبح يدعم الترجمة لهذا يجب وضع النص المراد ترجمته بين ()_ وإلزامي على الاقل أن نستخدمهم في button_label و category و title وmainbuttontooltip كما في الصورة في الأسفل.