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
Iifayile ezenza iApplet yethu.
Siyaqhubeka nokuchaza applet.js
Ngoku makhe sijonge ikhowudi. applet.js kwaye ucacise isivakalisi ngasinye:
ukuqala ikhowudi ye applet.js
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:
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
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
"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
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
Ukuqulunqwa kweapplet yethu
Siyaqhubeka nokuchaza applet.js
Iqala ikhowudi ye-applet.js
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.
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
Siyaqhubeka nokuchaza imetadata.json
Ikhowudi ibhalwe ngendlela efanayo nomzekelo wangaphambili
Umfanekiso weApplet eyenziwe nge Qt
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.
Khuphela isifundo kunye nemizekelo
inqaku elinomdla...
Enkosi . Injongo yam kukuba sifunde kancinane yonke imihla.
Intle kakhulu, ndiyayithanda, bendihlala ndifuna ukwazi ukuba zenziwe njani ezi ntlobo ze applets
Ulungiso oluncinci. I-Gettext ayiyonto ithile kwiCinnamon njengoko isitsho kwinqaku, lithala elenza iinguqulelo ezizenzekelayo zinokwenzeka kwaye zisuka kwiitemplates.
Isifundo esihle kakhulu kunye nayo yonke loo nto kodwa eyona nto ibalulekileyo ongayibandakanyanga: ikhonkco lephepha lodonga?
Khuphela iphepha lodonga le-Linux Mint 16 Petra.
Iphakheji ibizwa ngokuba yi-mint-backgrounds-petra : http://packages.linuxmint.com/list.php?release=Petra
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!
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.
Kulungile ke Marian, khange ndiyazi ukuba upose apha. Ndiyabulisa.
Unjani Matute… Ndihlala ndizulazula kwezi ndawo. Ndiyabulisa
Inqaku elilungileyo.
Ifayile ayifumanekanga, yenziwe yangasebenzi ngenxa yokwaphulwa kwelungelo lokushicilela.
Into endiyithethayo kukuba xa unayo ungaphinda uyifake???.ndiyakucela.
enkosi.