الجزء الثاني وثائق Arfedoracontrolcenter

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته



الجزء الثاني وثائق Arfedoracontrolcenter .




رابط الجزء الاول https://arfedora.blogspot.com/2017/11/arfedoracontrolcenter.html   .

رابط الجزء الثالث https://arfedora.blogspot.com/2017/11/arfedoracontrolcenter_61.html .

 

كتابة أو نوع من الإضافات Launcher .


النوع الاول من الإضافات هو الأبسط وسأبدأ به وهو شيء مثل Launcher ليس له عمل إلا وضع زر لتشغيل شيء الأمر بهذه البساطة سأضع صورة لإضافة لوضع زر لتشغيل مركز تحكم جنوم ثم تحتها الشرح .


1- هذا لا دخل له بعمل الإضافة نفسها فقط إحتجت ان أجلب إسم الواجهة التي أعمل منها  فقرأت متغير بيئة في نظام لينكس إسمه XDG_CURRENT_DESKTOP فقط إكتبو في الطرفية هذا الامر لتعرفو ماذا أقصد echo $XDG_CURRENT_DESKTOP أنا أعلم ان جنوم تضع إسم GNOME بأحرف كبيرة فيه لهذا إستفدت من الأمر لأعرف إذا ما كان النظام الذي يشغل البرنامج يعمل بواجهة جنوم أم لا .

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 كما في الصورة في الأسفل. 

 

 أخيرا فيديو عن هذه الإضافة كيف تعمل .

 https://www.youtube.com/watch?v=zgIbDLjytRk&feature=youtu.be

 

 






شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (4) أشياء تفعلها (5) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (14) برامج (47) برامج إسلامية (2) برنامج (18) برودباند (1) بعد (4) بعد التثبيت (5) بلوتوث (1) بناء (1) بيئة عمل (1) تثبيت (25) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (4) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) ريدهات (2) سكربت (2) شرح (10) صورة متحركة (1) فايرفوكس (1) فصل (1) فلاشة (3) فيدورا (26) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (3) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) وايرلس (1) وهمي (2) ويندوز (2) active (2) add (1) after (4) alias (1) andoid studio (1) android (1) android studio (1) Apache (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bluetooth (1) book (2) books (2) bootloader fix (1) broadband (1) broadcom (1) broadwayd (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (1) chsh (1) cisco (1) clion (1) clone (1) code.org (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) curlew (1) custom (2) dbus (1) dconf (1) dd (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) disks (1) dnf (12) do (4) docker (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (8) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) enable (2) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (38) fedora 25 alpha (1) fedora cloude (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) firefox (2) fix (8) flash mem (1) flash memory (2) flashplayer (1) flatpak (2) fpaste (1) free (1) freebsd (1) function (1) game (3) games (1) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (9) gnome disk (1) gnome shell (12) gnome terminal (1) gnome-disks (1) gnu (1) goldendict (1) google web designer (1) gradio (1) group (1) grub (5) grub2 (1) gtk (3) gtk+ (1) hack (2) hash (3) hdmi (3) hibernate (1) home (2) hosspot (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (28) installf (9) installing (4) intellij idea (1) iso (1) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kernel (1) kernel parameters (1) key (1) kickstarts (2) korora (1) krita (1) kvm (1) kvm switches (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) life is trange (1) linux (7) lv (1) lvm (2) mac (4) macros (1) mageia (1) MariaDB and PHP Lamp Server (1) mate terminal (1) mbr (1) md5sum (1) mirro (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (7) objdesktop (1) ojuba (2) oop (1) opensuse (1) opera (1) optirun (2) oracle (1) os.path (1) package (1) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) phpstorm (1) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) primary display (1) primus (1) primusrun (1) programs (3) put (1) pv (1) pycharm (2) pygobject (1) pygtk (1) python (31) qdbus (1) qemu (2) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (2) remix (1) remix os (1) repo (4) repofrompath (1) resize2fs (1) rhel (1) rpm (6) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) script (2) seconday display (1) self (1) send (1) settings (1) sha1256sym (1) share desktop (1) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) soundcloud (1) source code (1) spec (2) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) su (1) sudo (2) sudoers (1) swap (2) switch (1) Switchable Graphics (1) synergy (1) teamviewer (1) terminal (2) theme (4) things (4) to (5) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) vg (1) vgaوتبديل (1) vi (1) vim (1) vino (1) virtual (1) virtual box (1) virtualbox (2) vmware (3) vnc server (1) vokoscreen (1) webstorm (1) wifi (1) windows (3) windows-1256 (1) X Error: BadAccess (1) X Error: BadDrawable (1) yum (2) zeal (1) zealdocs (1)