Isifundo esincinci: Ukwenza iiApple zeCinnamon

Masenze iapplet elula ukuya kuyo Cinnamon. Ukuqala, kufuneka siyazi loo nto Cinnamon inikeza iintlobo ezahlukeneyo zeeapplet:

  • TextApplet (ebonisa ileyibhile kwiqela lenjongo)
  • IconApplet (ebonisa i icon kwiqela lenjongo)
  • TextIconApplet (ebonisa zombini i icon kunye neleyibhile kwiqela lenjongo)
  • I-Applet (kubaphuhlisi abaqinileyo, ebonisa ibhokisi engenanto ongayizalisa ngokwakho)

Kule tutorial, sifuna nje ukubonisa i icon kwiqela lenjongo, ke siya kusebenzisa "IconApplet". Ukuze sicwangcise iapplet yethu ICinnamon okanye iGnome Kufuneka sazi kwaye sazi inkqubo yeJavascript

Indawo yekhowudi yethu.

Okokuqala, makhe sijonge indawo yefayile yethu. Indawo yeapplet yethu inikwe kwezi dilesi zilandelayo:

/.local/share/cinnamon/applets okanye ngaphakathi /usr/share/cinnamon/applets

ICinnamon_Applet

Iifayile ezenza iApplet yethu.

Cinnamon_Applet2

Siyaqhubeka nokuchaza applet.js

khowudi

applet.js

Ngoku makhe sijonge ikhowudi. applet.js kwaye ucacise isivakalisi ngasinye:

ukuqala ikhowudi ye applet.js

ikhowudi yeapplet

ikhowudi yejavascript

Makhe sijonge ingxelo nganye kwikhowudi yethu yangaphambili

const Lang = imports.lang; /*Sicela amathala eencwadi e-Gtk kunye neLang, ayinxalenye esisiseko yaso nasiphi na isicelo se-GNOME, ayasivumela ukuba senze iifestile, iwijethi kwaye sizinxulumanise.*/ const Applet = imports.ui.applet; /*Sicela iilayibrari ze-Applet ezisivumelayo ukuba senze i-applet yeCinnamon kunye neGnome kwaye kwangaxeshanye isinike iipropati kunye nemisebenzi yayo.*/ const GLib = imports.gi.GLib; /*I-GLib lithala loncedo, lisivumela ukuba senze izinto kwi-GNOME, umzekelo xela ukuba iphi ifayile ye-hellognome.html, lithala leencwadi elijongene nemiqondiso.*/ const Gettext = imports.gettext.domain('cinnamon -applets '); const _ = Gettext.gettext; // Gettext ilayibrari esivumela ukuba singenise iimpawu zeCinnamon desktop. const PopupMenu = imports.ui.popupMenu; /*I-PopupMenu lithala leencwadi lokusebenzisa umphathi wemenyu, lisivumela ukuba sibize iwijethi ye-popup-menu edla ngokusetyenziswa kwii applets.*/ function MyApplet(orientation) { this._init(orientation); }

Umakhi weapplet yethu uchazwe ngezantsi, makhe sijonge iKlasi yethu:

iklasi ye-gjs

Siqhubeka nenkcazo yesivakalisi ngasinye

MyApplet.prototype = { __proto__: Applet.IconApplet.prototype, // Sichaza iClass yethu okanye iClass _init: umsebenzi (orientation) { Applet.IconApplet.prototype._init.call(le, orientation); /*Siseka ukuqhelaniswa neCinnamon. Sibeka ukuba indawo yolawulo ye applet ingaphezulu okanye ezantsi (oku kunempembelelo kuhlobo lwemenu ye applet).*/ zama {// Yenza into } Bamba (e) {// Kwenzeka ntoni ukuba kwenzeke impazamo } / *Sisebenzisa itrayi / ukubamba ukubamba naziphi na iimpazamo ezinokuthi zenzeke kwiapplet yethu kunye nokuqinisekisa ukuba zibhaliwe kwilog yempazamo yehlabathi. Ngale ndlela, ukuba kukho into engahambi kakuhle, ungabona impazamo kwiJonga yeglasi: Cofa i-Alt F2, chwetheza "lg" kwaye ucofe "iimpazamo" isithuba.*/ this.menuManager = new PopupMenu.PopupMenuManager(le) ; //Yenza i-popup-menu kwaye usete umphathi wemenyu le.menu = entsha Applet.AppletPopupMenu(le, uqhelaniso); //yenza imenyu. this.menuManager.addMenu(le.menu); // Songeza imenyu kwi-popup-menu. this.makeMenu(); // menuitem makeMenu, sidala imenuitem ebizwa ngokuba yi-makeMenu. this.buildContextMenu(); // buildContextMenu, senza imenuitem ebizwa ngokuba yi-buildContextMenu. this.set_applet_icon_name("ifolda"); /* Senza i-applet, lo mzekelo uhlukile, i icon ekhethiweyo yincwadi eneenkcukacha, sinokuseka i applet yokubhaliweyo ukuba sifuna.*/

Njengomzekelo, tshintsha igama elithi "folder" libe "terminal", "docky" ukuseka amagama amatsha, bona igama lee-icon zeGnome okanye zeCinnamon okanye nawuphi na omnye umxholo we icon, yiya kwidilesi.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip(_("Cofa apha ukubulala ifestile"); // Bamba ukubamba naziphi na iimpazamo ezinokuthi zenzeke kwiapplet yethu. bamba (e) {global.logError(e); } makeMenu: umsebenzi () {le.menu.addMenuItem(entsha PopupMenu.PopupMenuItem("Umyalezo woVavanyo", { iyasebenza: yinyani})); }, /*Sichaza igama lemenuitem makeMenu kunye neempawu zayo. Kulo mzekelo ileyibhile nguMyalezo woVavanyo". Siza kuchaza { reactive: true } Simisela ukuba imvelaphi ye menuitem iya kutshintsha xa isalathisi sidlula kwi menuitem sisebenzisa inyani ukuba asiyonyani kwenzeka okwahlukileyo.*/ buildContextMenu: function () { this.menu .addMenuItem(new PopupMenu.PopupMenuItem(" show", { reactive: true })); }, // Sichaza igama le menuitem makeMenu kunye neempawu zayo. Kulo mzekelo ileyibhile ngu "bonisa ". on_applet_clicked: function(isiganeko) { this.menu.toggle(); } // Umqondiso okhutshwe yi applet, ukubiza i popup-menu. function main(metadata, orientation) { let myApplet = new MyApplet(orientation); return myApplet; } /*Ekugqibeleni , kufuneka nje songeze umsebenzi "ongundoqo", onokuthi ufane kwi applet nganye. Yenza umzekelo we applet yethu kwaye iyibuyisele kwi Cinnamon.*/ // Sivala loop return myApplet;

Siyaqhubeka nokuchaza imetadata.json

LP0ol8b

Umzobo wefoto - 140314 - 21:11:34

"ukuhlelwa kokugqibela": "1331990905", // Igqitywe ukuhlelwa. "description": "Cofa kwi applet ukubonisa i menu ye gtk echazwe nguwe", // Inkcazo ye applet. "icon": "docky ", // Iimpawu ezisetyenziswayo kwinkcazelo yeapplet. Ngokomzekelo, tshintsha igama elithi "docky" ukuya kwi "terminal", "ifolda". "uuid": "mnyama" // Isiqulathi seefayili apho ifayile yethu yemetadata.json ibandakanyiwe "igama": "Imenyu yegtk yesiko" // Igama leapplet.

Qaphela: Ukuseta amagama amatsha ukubona igama leGnome okanye ii-icons zeCinnamon okanye nawuphi na omnye umxholo we icon, yiya kwidilesi yefayile yefayile.

/usr/share/icons

Umfanekiso weApplet eyenziweyo

  lKxpdkS

Qt, Gtk, Vala kunye nezinye iilwimi ezisetyenziselwa ukwenza iapplet yeCinnamon okanye iGnome

Makhe sibone indawo ye-applet yethu yeCinnamon

Indawo yeapplet yethu inikwe kwezi dilesi zilandelayo:

/.local/share/cinnamon/applets

okanye ngaphakathi

/usr/share/cinnamon/applets

nerd

Ukuqulunqwa kweapplet yethu

beta

Siyaqhubeka nokuchaza applet.js 

khowudi

applet.js

Iqala ikhowudi ye-applet.js

Umzobo wefoto - 140314 - 21:30:48

Ukuphela kwe applet.js

Ngoku masiqhubeke sibone ikhowudi ye applet.js kwaye sichaze izivakalisi zayo.

Ikhowudi ebhaliweyo ifana nqwa nomzekelo wangaphambili obhalwe ngeJavascript.
Ngumqondiso kuphela otshintshiweyo, oya kuthi u-auto-executable.

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

I-auto-ecutable yethu inokubhalwa nge-Qt, i-Gtk, i-Gtkmm, i-wxWidget, i-Vala, njl. Iilwimi ekunokuthi zenziwe ngazo eziziphumezayo. I-auto-ecutable yethu ibizwa ngokuba yi-Menu kwaye ikwifolda ye-Qtmenu.

beta

Sinokusebenzisa nezinye iilwimi zenkqubo ezinezibophelelo ze-Gtk, ezinje ngePyGTK, iRuby Gtk, iPerl Gtk, njl. enokusetyenziswa kusetyenziswa okushicilelweyo ukwenza ikhowudi ebhalwe ngeelwimi ezikhankanyiweyo. Umgaqo uhlala ufana nokubiza iinkqubo, ukwenza i-popup-menu kunye ne-popup-window ngokweemfuno zethu.

Makhe sijonge ikhowudi yethu ephunyezwa ngokuzenzekelayo ebhalwe nge-Qt

qt

Siyaqhubeka nokuchaza imetadata.json

LP0ol8b

Mongo

Ikhowudi ibhalwe ngendlela efanayo nomzekelo wangaphambili

Umfanekiso weApplet eyenziwe nge Qt

qte

Umfanekiso weApplet eyenziwe nge-Gtk 3.10

Ndinishiyela umzekelo omncinci weapplet esebenzisa imoto ephumezekayo ebhalwe kwi-Gtk, kulo mzekelo sithatha imenyu ye-myGtkMenu esetyenziswa kwi-OpenBox.

Yimenyu ezenzelayo.

megtk

Khuphela isifundo kunye nemizekelo


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   iaiori sitsho

    inqaku elinomdla...

    1.    kubiwe sitsho

      Enkosi . Injongo yam kukuba sifunde kancinane yonke imihla.

  2.   UDanie sitsho

    Intle kakhulu, ndiyayithanda, bendihlala ndifuna ukwazi ukuba zenziwe njani ezi ntlobo ze applets

  3.   Angel Araya sitsho

    Ulungiso oluncinci. I-Gettext ayiyonto ithile kwiCinnamon njengoko isitsho kwinqaku, lithala elenza iinguqulelo ezizenzekelayo zinokwenzeka kwaye zisuka kwiitemplates.

  4.   msx sitsho

    Isifundo esihle kakhulu kunye nayo yonke loo nto kodwa eyona nto ibalulekileyo ongayibandakanyanga: ikhonkco lephepha lodonga?

    1.    kubiwe sitsho

      Khuphela iphepha lodonga le-Linux Mint 16 Petra.
      Iphakheji ibizwa ngokuba yi-mint-backgrounds-petra : http://packages.linuxmint.com/list.php?release=Petra

  5.   tesla sitsho

    Inqaku elinomdla kakhulu. Inyaniso kukuba ndandisoloko ndizibuza ukuba zenziwe njani ezi applets. Mhlawumbi ndiza kuzama ukwenza i-applet yomdlali omncinci weMPD okanye into efanayo.

    Ndiyabulela ukwabelana!

  6.   IMatias sitsho

    Okugqwesileyo, ndicinga nje indlela yokuguqula i-nm-applet (umphathi wenethiwekhi) yesinamon, ukuze itshintshe umbala xa ndingenakho ukufikelela kwi-Intanethi, (ndinekhadi le-Wi-Fi), kwaye oku indinceda ndiziqhelanise kancinci.

  7.   matiasbatero17 sitsho

    Kulungile ke Marian, khange ndiyazi ukuba upose apha. Ndiyabulisa.

    1.    kubiwe sitsho

      Unjani Matute… Ndihlala ndizulazula kwezi ndawo. Ndiyabulisa

  8.   lolbimbo sitsho

    Inqaku elilungileyo.

  9.   imbeko sitsho

    Ifayile ayifumanekanga, yenziwe yangasebenzi ngenxa yokwaphulwa kwelungelo lokushicilela.

    Into endiyithethayo kukuba xa unayo ungaphinda uyifake???.ndiyakucela.

    enkosi.