سنقوم بإنشاء تطبيق صغير بسيط لـ قرفة. للبدء ، يجب أن نعرف ذلك قرفة يقدم أنواعًا مختلفة من التطبيقات الصغيرة:
- نص صغير (عرض ملصق على اللوحة)
- IconApplet (يظهر أيقونة على اللوحة)
- TextIconApplet (يشير إلى رمز وتسمية على اللوحة)
- الصغير (للمطورين المتشددين ، الذين يعرضون مربعًا فارغًا يمكنك ملؤه بنفسك)
في هذا البرنامج التعليمي ، نريد ببساطة عرض رمز على اللوحة ، لذلك سنستخدم "IconApplet". من أجل برمجة التطبيق الصغير لدينا قرفة أو جنوم نحتاج إلى معرفة ومعرفة شيء ما عن برمجة جافا سكريبت
موقع رمزنا.
أولاً ، دعنا نرى موقع ملفنا. يتم إعطاء موقع التطبيق الصغير الخاص بنا على العناوين التالية:
/.local/share/cinnamon/applets
س و /usr/share/cinnamon/applets
الملفات التي يتكون منها التطبيق الصغير الخاص بنا.
ننتقل إلى تعريف applet.js
الآن دعنا ننتقل إلى رؤية رمز التطبيق الصغير.js وشرح كل جملة من جملها:
يبدأ كود applet.js
دعونا نرى كل جملة من الجمل في الكود السابق
const لانج = imports.lang ؛ / * نحن نستدعي مكتبات Gtk و Lang ، فهي جزء أساسي من أي تطبيق GNOME ، فهي تسمح لنا بإنشاء نوافذ وعناصر واجهة مستخدم وربطها. * / Const Applet = imports.ui.applet؛ / * نستدعي مكتبة التطبيقات الصغيرة التي تسمح لنا بإنشاء تطبيق صغير لـ Cinnamon و Gnome وفي نفس الوقت تعطينا خصائصها ووظائفها. * / Const GLib = imports.gi.GLib؛ / * GLib هي مكتبة مساعدة ، فهي تتيح لنا القيام بأشياء في جنوم ، على سبيل المثال تحديد مكان وجود ملف hellognome.html ، إنها المكتبة المسؤولة عن الإشارات. * / Const Gettext = imports.gettext.domain ('قرفة' -Applets ') ؛ const _ = Gettext.gettext ؛ // مكتبة Gettext التي تسمح لنا باستيراد خصائصنا الخاصة لسطح مكتب Cinnamon. const PopupMenu = imports.ui.popupMenu ؛ / * PopupMenu هي مكتبة لاستخدام مدير القائمة ، فهي تسمح لنا باستدعاء عنصر واجهة القائمة المنبثقة المستخدم عادة في التطبيقات. * / Function MyApplet (الاتجاه) {this._init (الاتجاه) ؛ }
بعد ذلك نحدد منشئ التطبيق الصغير الخاص بنا ، دعنا نلقي نظرة على الفصل أو الفصل لدينا:
نواصل تعريف كل جملة
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype، // نحدد Class أو Class _init: function (direction) {Applet.IconApplet.prototype._init.call (this، orientation)؛ / * نحدد الاتجاه من خلال القرفة. قمنا بتعيين ما إذا كانت لوحة التطبيق الصغير في الجزء العلوي أو السفلي (هذا له تأثير على اتجاه قوائم التطبيق الصغير). * / جرِّب {// افعل شيئًا} Catch (e) {// ماذا يحدث إذا حدث خطأ } / * نستخدم المحاولة / الالتقاط للقبض على أي أخطاء قد تحدث في التطبيق الصغير الخاص بنا وللتأكد من كتابتها في سجل الأخطاء العام. بهذه الطريقة ، إذا حدث خطأ ما ، يمكنك رؤية الخطأ في Looking Glass: اضغط على Alt F2 ، واكتب "lg" وانقر فوق علامة التبويب "أخطاء". * / This.menuManager = new PopupMenu.PopupMenuManager (this) ؛ // أنشئ القائمة المنبثقة وقم بتعيين مدير القائمة this.menu = new Applet.AppletPopupMenu (هذا ، الاتجاه) ؛ // نقوم بإنشاء قائمة. this.menuManager.addMenu (this.menu) ؛ // نضيف القائمة إلى القائمة المنبثقة. this.makeMenu () ، // menuitem makeMenu ، نصنع قائمة تسمى makeMenu. this.buildContextMenu () ، // buildContextMenu ، نقوم بإنشاء قائمة تسمى buildContextMenu. this.set_applet_icon_name ("المجلد") ؛ / * نقوم بإنشاء التطبيق الصغير ، هذه الحالة فريدة من نوعها ، الرمز المختار هو المجلد أو المجلد ، يمكننا أيضًا إنشاء برنامج نصي صغير إذا أردنا. * /
كمثال ، قم بتغيير اسم "folder" إلى "terminal" ، "docky" لإنشاء أسماء جديدة ، انظر اسم أيقونات Gnome أو Cinnamon أو أي سمة رمز أخرى ، انتقل إلى العنوان.
/usr/share/icons
this.set_applet_tooltip (_ ("انقر هنا لقتل نافذة")) ؛ // التقط لالتقاط أي أخطاء قد تحدث في التطبيق الصغير الخاص بنا. catch (e) {global.logError (هـ) ؛ } makeMenu: function () {this.menu.addMenuItem (new PopupMenu.PopupMenuItem ("Test Message"، {رد فعل: صحيح}))؛ }، / * نحدد اسم قائمة makeMenu وخصائصها. في هذه الحالة ، تكون التسمية عبارة عن رسالة اختبار ". سنحدد {رد فعل: صحيح} نثبت أن خلفية القائمة ستتغير عندما يمر المؤشر فوق القائمة من خلال" صواب "إذا كانت خاطئة يحدث العكس. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show"، {reactive: true}))؛}، // نحدد اسم قائمة makeMenu وخصائصها. في هذه الحالة تكون التسمية "عرض ". on_applet_clicked: function (event) {this.menu.toggle ()؛} // Signal المنبعثة من التطبيق الصغير ، لاستدعاء وظيفة القائمة المنبثقة الرئيسية (البيانات الوصفية ، الاتجاه) {let myApplet = new MyApplet (الاتجاه) ؛ العودة myApplet؛} / * أخيرًا ، علينا فقط إضافة وظيفة "main" ، والتي من المحتمل أن تكون هي نفسها في كل تطبيق صغير ، يتم إنشاء مثيل من التطبيق الصغير وإعادته إلى Cinnamon. * / // نقوم بإغلاق إرجاع الحلقة myApplet ؛
ننتقل إلى تحديد metadata.json
"آخر تحرير": "1331990905" ، // الإصدار الأخير. "الوصف": "انقر على التطبيق الصغير لإظهار قائمة gtk المعرفة بشكل شخصي" ، // وصف التطبيق الصغير. "icon": "docky" ، // الرموز المستخدمة لوصف التطبيق الصغير. كمثال ، قم بتغيير اسم "docky" إلى "terminal" ، "folder". "uuid": "أسود" // مجلد يتم فيه تضمين ملف metadata.json الخاص بنا "الاسم": "قائمة gtk المخصصة" // اسم التطبيق الصغير.
ملاحظة: لتعيين أسماء جديدة ، راجع اسم أيقونات Gnome أو Cinnamon أو أي سمة رمز أخرى ، انتقل إلى عنوان أنظمة الملفات.
/usr/share/icons
صورة التطبيق الصغير الذي تم إنشاؤه
تستخدم Qt و Gtk و Vala ولغات أخرى لإنشاء تطبيق صغير لـ Cinnamon أو Gnome
دعونا نرى موقع تطبيقنا الصغير للقرفة
يتم إعطاء موقع التطبيق الصغير الخاص بنا على العناوين التالية:
/.local/share/cinnamon/applets
س و
/usr/share/cinnamon/applets
تكوين لدينا الصغير
ننتقل إلى تعريف applet.js
بدء تشغيل كود applet.js
نهاية applet.js
الآن دعنا ننتقل لرؤية كود applet.js وشرح عباراته.
الكود المكتوب عمليا هو نفس المثال السابق المكتوب بجافا سكريبت.
تم تغيير الإشارة فقط ، والتي ستستدعي الملف القابل للتنفيذ التلقائي.
on_applet_clicked: الوظيفة (الحدث) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu') ؛ }
يمكن كتابة الملف القابل للتنفيذ التلقائي باستخدام Qt و Gtk و Gtkmm و wxWidget و Vala وما إلى ذلك. اللغات التي يمكن من خلالها إنشاء ملفات ذاتية التنفيذ. يُطلق على الملف القابل للتنفيذ التلقائي اسم القائمة وهو موجود في مجلد Qtmenu.
يمكننا أيضًا استخدام لغات البرمجة الأخرى التي تحتوي على روابط لـ Gtk مثل حالة PyGTK و Ruby Gtk و Perl Gtk وما إلى ذلك. والتي يمكن استخدامها باستخدام برنامج نصي لتنفيذ التعليمات البرمجية المكتوبة بهذه اللغات. المبدأ هو نفسه دائمًا لاستدعاء البرامج ، وإنشاء قائمة منبثقة ونافذة منبثقة وفقًا لاحتياجاتنا.
دعنا نرى رمز الملف القابل للتنفيذ التلقائي مكتوبًا باستخدام Qt
ننتقل إلى تحديد metadata.json
تمت كتابة الكود بنفس طريقة المثال السابق
صورة صغيرة تم إنشاؤها باستخدام Qt
صورة التطبيق الصغير الذي تم إنشاؤه باستخدام Gtk 3.10
فيما يلي مثال صغير لبرنامج صغير يستخدم ملفًا تنفيذيًا مكتوبًا بلغة Gtk ، وفي هذه الحالة نأخذ قائمة myGtkMenu المستخدمة في OpenBox.
إنها قائمة ذاتية التنفيذ.
قم بتنزيل البرنامج التعليمي والأمثلة
مقال مثير للاهتمام ...
شكرا . أنا أتعلم القليل كل يوم.
جيد جدًا ، أحب ذلك ، أردت دائمًا معرفة كيفية صنع هذه الأنواع من التطبيقات الصغيرة
تصحيح بسيط. Gettext ليس خاصًا بـ Cinnamon كما هو مذكور في المقالة ، إنها مكتبة تجعل الترجمات التلقائية ممكنة ومن القوالب.
برنامج تعليمي جيد جدًا وكل ذلك ولكن الشيء المهم الذي لم تضعه: رابط إلى ورق الحائط؟
قم بتنزيل خلفيات Linux Mint 16 Petra.
الحزمة تسمى mint-Background-petra: http://packages.linuxmint.com/list.php?release=Petra
مقال مشوق جدا. الحقيقة هي أنني كنت أتساءل دائمًا كيف تم إنشاء هذه التطبيقات الصغيرة. ربما يتم تشجيعي على إنشاء برنامج صغير للاعب صغير لـ MPD أو شيء مشابه.
شكرا لتقاسم!
ممتاز ، أنا فقط أكتشف كيفية تعديل تطبيق nm-applet الخاص بالقرفة (مدير الشبكة) ، بحيث يتغير لونه عندما لا يكون لدي اتصال بالإنترنت ، (لدي بطاقة wifi) ، وهذا يساعدني على توجيه نفسي قليلا
حسنًا ، يا ماريان ، لم أكن أعرف أنك تنشر هنا. مع تحياتي.
وأنت تمشي ، ماتوتي ... .. أتجول دائمًا حول هذه الأجزاء. في صحتك
مادة جيدة.
تم إلغاء تنشيط الملف غير موجود لانتهاك حقوق النشر.
ما أعنيه هو أنه إذا كان لديك هناك ، هل يمكنك تحميله مرة أخرى ؟؟؟. من فضلك.
شكرا لكم.