מיני הדרכה: יצירת יישומונים לקינמון

אנו הולכים ליצור יישומון פשוט עבור קינמון. ראשית עלינו לדעת זאת קינמון מציע סוגים שונים של יישומונים:

  • TextApplet (מראה תווית בלוח)
  • IconApplet (מראה סמל בחלונית)
  • TextIconApplet (מציין גם סמל וגם תווית בחלונית)
  • היישומון (למפתחי הארדקור, המציגים תיבה ריקה שתוכל למלא בעצמך)

במדריך זה, אנו רוצים להציג סמל בפאנל, ולכן נשתמש ב- "IconApplet". על מנת לתכנת את היישומון שלנו ל קינמון או גנום עלינו לדעת ולדעת משהו על תכנות Javascript

מיקום הקוד שלנו.

ראשית, בואו נראה את המיקום של הקובץ שלנו. מיקום היישומון שלנו ניתן בכתובות הבאות:

/.local/share/cinnamon/applets ב /usr/share/cinnamon/applets

קינמון_יישומון

קבצים המרכיבים את היישומון שלנו.

קינמון_יישומון 2

אנו ממשיכים להגדיר applet.js

Código

applet.js

 

עכשיו בואו נמשיך לראות את הקוד של applet.js והסבר כל אחד ממשפטיו:

התחל קוד applet.js

קוד יישומון

קוד javascript

בואו נראה כל אחד מהמשפטים בקוד הקודם שלנו

const Lang = יבוא.לאנג; / * אנו קוראים לספריות Gtk ו- Lang, הם חלק בסיסי מכל יישום GNOME, הם מאפשרים לנו ליצור חלונות, ווידג'טים ולקשר אותם. * / Const Applet = import.ui.applet; / * אנו קוראים לספריית היישומון המאפשרת ליצור יישומון לקינמון ולגנום ובמקביל נותן לנו את המאפיינים והפונקציות שלו. * / Const GLib = import.gi.GLib; / * GLib היא ספריית עוזרים, היא מאפשרת לנו לעשות דברים ב- GNOME, למשל לומר היכן נמצא קובץ hellognome.html, זו הספרייה האחראית על האותות. * / Const Gettext = import.gettext.domain ('קינמון יישומונים '); const _ = Gettext.gettext; // ספריית Gettext המאפשרת לנו לייבא את המאפיינים של שולחן העבודה קינמון. const PopupMenu = import.ui.popupMenu; / * PopupMenu היא ספרייה לשימוש במנהל התפריטים, היא מאפשרת לנו להפעיל את הווידג'ט של תפריט קופץ המשמש בדרך כלל ביישומונים. * / פונקציה MyApplet (כיוון) {this._init (כיוון); }

הקונסטרוקטור של היישומון שלנו מוגדר להלן, בואו נסתכל על הכיתה או הכיתה שלנו:

מעמד gjs

אנו ממשיכים בהגדרה של כל אחד מהמשפטים

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // אנו מגדירים את המחלקה או המחלקה _init: פונקציה (כיוון) {Applet.IconApplet.prototype._init.call (זה, כיוון); / * קבענו את הכיוון באמצעות קינמון. קבענו אם החלונית של היישומון נמצאת בחלק העליון או התחתון (יש לכך השפעה על כיוון תפריטים של היישומון). * / נסה {// עשה משהו} תפוס (ה) {// מה קורה אם מתרחשת שגיאה } / * אנו משתמשים בניסיון / לתפוס כדי לתפוס שגיאות שעלולות להתרחש ביישומון שלנו ולוודא שהן כתובות ליומן השגיאות הגלובלי. בדרך זו, אם משהו משתבש, אתה יכול לראות את השגיאה במראה זכוכית: לחץ על Alt F2, הקלד "lg" ולחץ על הכרטיסייה "שגיאות". * / This.menuManager = PopupMenu.PopupMenuManager חדש (זה); // צור את התפריט הקופץ והגדר למנהל התפריט this.menu = Applet.AppletPopupMenu חדש (זה, כיוון); // אנו יוצרים תפריט. this.menuManager.addMenu (תפריט זה); // אנו מוסיפים את התפריט לתפריט הקופץ. this.makeMenu (); // menuitem makeMenu, אנו יוצרים menuitem שנקרא makeMenu. this.buildContextMenu (); // buildContextMenu, אנו יוצרים תפריט menu שנקרא buildContextMenu. this.set_applet_icon_name ("תיקיה"); / * אנו יוצרים את היישומון, המקרה הזה הוא ייחודי, הסמל שנבחר הוא התיקיה או התיקיה, אנחנו יכולים גם ליצור יישומון טקסט אם אנחנו רוצים. * /

כדוגמה לשנות את השם של "תיקייה" ל"טרמינל "," עגינה "כדי ליצור שמות חדשים ראה את שם הסמלים של Gnome או Cinnamon או כל נושא אחר של אייקונים, היכנס לכתובת.

/usr/share/icons

Z7qwRdp

 

this.set_applet_tooltip (_ ("לחץ כאן כדי להרוג חלון")); // תפוס כדי לתפוס שגיאות שעלולות להתרחש ביישומון שלנו. לתפוס (ה) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (חדש PopupMenu.PopupMenuItem ("הודעת בדיקה", {תגובתי: נכון})); }, / * אנו מגדירים את שם התפריט makeMenu ומאפייניו. במקרה זה התווית היא הודעת בדיקה ". נגדיר {תגובתי: נכון} אנו קובעים כי הרקע של התפריט ישתנה כאשר המצביע יעבור על פני התפריט דרך אמת אם הוא לא נכון ההפך קורה. * / BuildContextMenu: function () {this.menu .addMenuItem (PopupMenu.PopupMenuItem חדש ("show", {reactive: true}));}, // אנו מגדירים את שם התפריט makeMenu ואת המאפיינים שלו. במקרה זה התווית היא "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // אות שנפלט על ידי היישומון, כדי לקרוא לפונקציית התפריט הקופץ הראשי (מטא נתונים, כיוון) {let myApplet = new MyApplet (כיוון); להחזיר myApplet;} / * לבסוף, עלינו רק להוסיף פונקציה "ראשית", אשר ככל הנראה תהיה זהה בכל יישומון, נוצר מופע של היישומון שלנו ויוחזר לקינמון. * / // אנו סוגרים את החזרת הלולאה myApplet;

אנו ממשיכים להגדיר metadata.json

LP0ol8b

 

צילום מסך - 140314 - 21:11:34

"נערך לאחרונה": "1331990905", // מהדורה אחרונה. "description": "לחץ על היישומון כדי להציג תפריט gtk המותאם אישית אישית", // תיאור היישומון. "icon": "docky", // סמלים המשמשים לתיאור היישומון. כדוגמה שנה את השם של "docky" ל "terminal", "folder". "uuid": "שחור" // תיקיה שבה כלול קובץ metadata.json שלנו "שם": "תפריט gtk מותאם אישית" // שם היישומון.

הערה: כדי להגדיר שמות חדשים ראה את שם הסמלים של Gnome או קינמון או כל נושא אחר של סמל, עבור לכתובת מערכות הקבצים.

/usr/share/icons

תמונה של היישומון שנוצר

  lKxpdkS

Qt, Gtk, Vala ושפות אחרות המשמשות ליצירת יישומון לקינמון או לגנום

בואו נראה את המיקום של היישומון שלנו לקינמון

מיקום היישומון שלנו ניתן בכתובות הבאות:

/.local/share/cinnamon/applets

ב

/usr/share/cinnamon/applets

חנון

הרכב היישומון שלנו

בטא

 

אנו ממשיכים להגדיר applet.js 

Código

applet.js

הפעלת קוד applet.js

צילום מסך - 140314 - 21:30:48

סוף applet.js

עכשיו בואו נמשיך לראות את קוד applet.js ונסביר את הצהרותיו.

הקוד שנכתב כמעט זהה לדוגמה הקודמת שנכתבה עם Javascript.
רק האות השתנה, מה שיקרא להפעלה אוטומטית שלנו.

on_applet_clicked: function (event) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }

ניתן לכתוב את ההפעלה האוטומטית שלנו עם Qt, Gtk, Gtkmm, wxWidget, Vala וכו '. שפות שבעזרתן ניתן ליצור הפעלה עצמית. ההפעלה האוטומטית שלנו נקראת Menu והיא נמצאת בתיקיית Qtmenu.

בטא

אנו יכולים גם להשתמש בשפות תכנות אחרות שיש להן כריכות עבור Gtk, כך זה המקרה של PyGTK, Ruby Gtk, Perl Gtk וכו '. אשר ניתן להשתמש בהם באמצעות סקריפט לביצוע הקוד שנכתב בשפות אלה. העיקרון תמיד זהה להתקשרות לתוכניות, ליצור תפריט קופץ וחלון קופץ בהתאם לצרכים שלנו.

בואו נראה את הקוד של ההפעלה האוטומטית שלנו כתוב עם Qt

qt

אנו ממשיכים להגדיר metadata.json

LP0ol8b

מונגו

הקוד כתוב באותה צורה כמו הדוגמה הקודמת

תמונת היישומון נוצרה עם Qt

qte

 

תמונה של היישומון שנוצרה עם Gtk 3.10

אני משאיר לך דוגמה קטנה של יישומון המשתמש בהפעלה שכתובה ב- Gtk, במקרה זה אנו לוקחים את תפריט myGtkMenu המשמש ב- OpenBox.

זהו תפריט ביצוע עצמי.

megtk

הורד את המדריך והדוגמאות


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

12 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   איוריה דיג'ו

    כתבה מעניינת ...

    1.    marianogaudix דיג'ו

      תודה . שלי זה שאנחנו לומדים קצת כל יום.

  2.   מתנה דיג'ו

    טוב מאוד, אני אוהב את זה, תמיד רציתי לדעת איך מכינים סוגים אלה של יישומונים

  3.   אנג'ל אראיה דיג'ו

    תיקון קטן. Gettext אינו דבר ספציפי לקינמון כפי שהוא אומר במאמר, זוהי ספרייה המאפשרת תרגומים אוטומטיים ומתבניות.

  4.   MSX דיג'ו

    טוב מאוד ההדרכה וכל זה אבל הדבר החשוב שלא שמתם: קישור לטפט?

    1.    marianogaudix דיג'ו

      הורד את טפטי הפטרה של Linux Mint 16.
      החבילה נקראת מנטה-רקע-פטרה: http://packages.linuxmint.com/list.php?release=Petra

  5.   טסלה דיג'ו

    מאמר מעניין מאוד. האמת היא שתמיד תהיתי איך נוצרים היישומונים האלה. אולי אני מעודד ליצור יישומון מיני נגן ל- MPD או משהו דומה.

    תודה על שיתוף!

  6.   מטיאס דיג'ו

    מעולה, אני רק מבין איך לשנות את היישומון קינמון ננומטר (מנהל רשת), כך שהוא ישנה צבע כשאין לי גישה לאינטרנט, (יש לי כרטיס wifi), וזה עוזר לי להתמצא מעט.

  7.   17 דיג'ו

    ובכן שם מריאן, לא ידעתי שאתה מפרסם כאן. בברכה.

    1.    marianogaudix דיג'ו

      כשאתה הולך, מטוט ... אני תמיד מסתובב בחלקים האלה. לחיים

  8.   לולבימבו דיג'ו

    מאמר טוב.

  9.   הונובן דיג'ו

    לא ניתן למצוא את הקובץ הושבת בגלל הפרת זכויות יוצרים.

    כוונתי היא שאם יש לך את זה שם, אתה יכול להעלות אותו שוב ???. בבקשה.

    תודה.