Mini Tutorial: Crearea de applet-uri pentru scorțișoară

Să creăm un applet simplu Scorţişoară. Pentru început, trebuie să știm asta Scorţişoară oferă diferite tipuri de applet-uri:

  • TextApplet (afișând o etichetă pe panou)
  • IconApplet (afișând o pictogramă pe panou)
  • TextIconApplet (indicând atât o pictogramă, cât și o etichetă pe panou)
  • Applet (pentru dezvoltatorii hardcore, care arată o casetă goală pe care o puteți completa singur)

În acest tutorial, dorim pur și simplu să afișăm o pictogramă pe panou, așa că vom folosi un „IconApplet”. Pentru a programa appletul nostru Scorțișoară sau Gnome Trebuie să cunoaștem și să cunoaștem ceva programare Javascript

Locația codului nostru.

Mai întâi, să ne uităm la locația fișierului nostru. Locația applet-ului nostru este dată la următoarele adrese:

/.local/share/cinnamon/applets o o /usr/share/cinnamon/applets

Cinnamon_Applet

Fișierele care compun Appletul nostru.

Scorțișoară_Applet2

Continuăm să definim applet.js

cod

applet.js

Acum să ne uităm la cod. applet.js și explicați fiecare dintre propozițiile sale:

pornind codul applet.js

codul appletului

cod javascript

Să ne uităm la fiecare dintre afirmațiile din codul nostru anterior

const Lang = imports.lang; /*Invocăm bibliotecile Gtk și Lang, acestea sunt o parte de bază a oricărei aplicații GNOME, ne permit să creăm ferestre, widget-uri și să le legăm.*/ const Applet = imports.ui.applet; /*Invocăm bibliotecile Applet care ne permit să creăm un applet pentru Cinnamon și Gnome și, în același timp, ne oferă proprietățile și funcțiile acestuia.*/ const GLib = imports.gi.GLib; /*GLib este o bibliotecă de ajutor, ne permite să facem lucruri în GNOME, de exemplu să spunem unde este fișierul hellognome.html, este biblioteca responsabilă de semnale.*/ const Gettext = imports.gettext.domain('cinnamon -applet-uri '); const _ = Gettext.gettext; //Biblioteca Gettext care ne permite să importăm caracteristicile pentru desktopul Cinnamon. const PopupMenu = imports.ui.popupMenu; /*PopupMenu este o bibliotecă pentru a folosi managerul de meniu, ne permite să invocăm widget-ul popup-meniu folosit de obicei în applet-uri.*/ function MyApplet(orientation) { this._init(orientation); }

Constructorul applet-ului nostru este definit mai jos, să ne uităm la clasa noastră:

clasa gjs

Continuăm cu definirea fiecăreia dintre propoziții

MyApplet.prototype = { __proto__: Applet.IconApplet.prototype, // Ne definim Clasa sau Clasa _init: function(orientation) { Applet.IconApplet.prototype._init.call(this, orientation); /*Stabilim orientarea prin Scortisoara. Setăm dacă panoul applet-ului este în partea de sus sau de jos (acest lucru are un impact asupra orientării meniurilor applet-ului).*/ încercați { // Faceți ceva } Catch (e) { // Ce se întâmplă dacă apare o eroare } / *Folosim un try/catch pentru a detecta orice erori care pot apărea în applet-ul nostru și pentru a ne asigura că sunt scrise în jurnalul global de erori. În acest fel, dacă ceva nu merge bine, puteți vedea eroarea în Looking Glass: apăsați Alt F2, tastați „lg” și faceți clic pe fila „errors”.*/ this.menuManager = new PopupMenu.PopupMenuManager(this) ; //Creează meniul pop-up și setează managerul de meniu this.menu = new Applet.AppletPopupMenu(this, orientation); //creează un meniu. this.menuManager.addMenu(this.menu); // Adăugăm meniul în meniul pop-up. this.makeMenu(); // meniu item makeMenu, creăm un element de meniu numit makeMenu. this.buildContextMenu(); // buildContextMenu, creăm un element de meniu numit buildContextMenu. this.set_applet_icon_name("dosar"); /*Creăm applet-ul, acest caz este unic, pictograma aleasă este folderul, putem stabili și un applet text dacă dorim.*/

De exemplu, schimbați numele „dosarului” în „terminal”, „docky” pentru a stabili nume noi, vedeți numele pictogramelor Gnome sau Cinnamon sau orice altă temă de pictograme, mergeți la adresa.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip(_("Faceți clic aici pentru a închide o fereastră")); // Catch pentru a detecta orice erori care pot apărea în applet-ul nostru. catch (e) { global.logError(e); } makeMenu: function() { this.menu.addMenuItem(new PopupMenu.PopupMenuItem("Mesaj de testare", { reactiv: true })); }, /*Definim numele elementului de meniu makeMenu și caracteristicile acestuia. În acest caz, eticheta este Test Message". Vom defini { reactive: true } Stabilim că fundalul elementului de meniu se va schimba atunci când indicatorul trece peste elementul de meniu folosind true dacă este fals, se întâmplă invers.*/ buildContextMenu: function () { this.menu .addMenuItem(new PopupMenu.PopupMenuItem(" show", { reactive: true })); }, // Definim numele elementului de meniu makeMenu și caracteristicile acestuia. În acest caz, eticheta este „show ". on_applet_clicked: function(event) { this.menu.toggle(); } // Semnal emis de applet, pentru a apela meniul pop-up. function main(metadata, orientation) { let myApplet = new MyApplet(orientation); return myApplet; } /*În sfârșit , trebuie doar să adăugăm o funcție „principală”, care este probabil să fie aceeași în fiecare applet. Creează o instanță a applet-ului nostru și o returnează la Cinnamon.*/ // Închidem bucla return myApplet;

Continuăm să definim metadata.json

LP0ol8b

Captură de ecran - 140314 - 21:11:34

"last-edited": "1331990905", // Ultima modificare. „description”: „Faceți clic pe applet pentru a afișa un meniu gtk personalizat, definit personal”, // Descrierea applet-ului. "icon": "docky ", // Pictograme utilizate pentru descrierea applet-ului. De exemplu, schimbați numele din „docky” în „terminal”, „folder”. „uuid”: „negru” // Dosar în care este inclus fișierul metadata.json „nume”: „Meniu gtk personalizat” // Numele applet-ului.

Nota: Pentru a seta nume noi pentru a vedea numele pictogramelor Gnome sau Cinnamon sau orice altă temă de pictograme, accesați adresa sistemului de fișiere.

/usr/share/icons

Imaginea Applet-ului creat

  lKxpdkS

Qt, Gtk, Vala și alte limbi utilizate pentru a crea un applet pentru Cinnamon sau Gnome

Să vedem locația aplicației noastre pentru scorțișoară

Locația applet-ului nostru este dată la următoarele adrese:

/.local/share/cinnamon/applets

o o

/usr/share/cinnamon/applets

tocilar

Compoziția applet-ului nostru

beta

Continuăm să definim applet.js 

cod

applet.js

Se pornește codul applet.js

Captură de ecran - 140314 - 21:30:48

Sfârșitul applet.js

Acum să continuăm să vedem codul applet.js și să explicăm propozițiile acestuia.

Codul scris este practic același cu exemplul anterior scris cu Javascript.
Doar semnalul a fost schimbat, ceea ce va apela auto-executabilul nostru.

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

Auto-executablele noastre pot fi scrise cu Qt, Gtk, Gtkmm, wxWidget, Vala etc. limbi cu care pot fi create autoexecutabile. Auto-executabilul nostru se numește Meniu și se află în folderul Qtmenu.

beta

Putem folosi și alte limbaje de programare care au legături pentru Gtk, cum ar fi PyGTK, Ruby Gtk, Perl Gtk etc. care poate fi folosit folosind un script pentru a executa codul scris în limbajele menționate. Principiul este întotdeauna același de a apela programe, de a crea popup-meniu și popup-window în funcție de nevoile noastre.

Să ne uităm la codul auto-executabilului nostru scris cu Qt

qt

Continuăm să definim metadata.json

LP0ol8b

Mongo

Codul este scris în același mod ca exemplul anterior

Imagine a applet-ului creat cu Qt

ce

Imagine a applet-ului creat cu Gtk 3.10

Vă las un mic exemplu de applet care folosește o mașină executabilă scrisă în Gtk, în acest caz luăm meniul myGtkMenu folosit în OpenBox.

Este un meniu care se execută automat.

megtk

Descărcați tutorial și exemple


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   aiolia el a spus

    interesant articol…

    1.    marianogaudix el a spus

      Mulțumesc . Scopul meu este să învățăm puțin în fiecare zi.

  2.   Danie el a spus

    Foarte bine, îmi place, mereu mi-am dorit să știu cum sunt făcute aceste tipuri de applet-uri

  3.   Angel Araya el a spus

    O mica corectie. Gettext nu este ceva specific Cinnamon așa cum se spune în articol, este o bibliotecă care face posibile traduceri automate și din șabloane.

  4.   MSX el a spus

    Foarte bun tutorial și toate astea, dar lucrul important pe care nu l-ai inclus: link către tapet?

    1.    marianogaudix el a spus

      Descărcați imaginile de fundal Linux Mint 16 Petra.
      Pachetul se numește mint-backgrounds-petra : http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla el a spus

    Foarte interesant articol. Adevărul este că întotdeauna m-am întrebat cum au fost create aceste applet-uri. Poate voi încerca să creez un mini-player applet pentru MPD sau ceva similar.

    Multumesc pentru partajarea!

  6.   Matthias el a spus

    Excelent, doar îmi dau seama cum să modific nm-applet (managerul de rețea) al scorțișoară, astfel încât să-și schimbe culoarea atunci când nu am acces la Internet (am un card Wi-Fi) și asta ma ajuta sa ma orientez putin.

  7.   matiasbatero17 el a spus

    Ei bine, Marian, nu știam că ai postat aici. Salutari.

    1.    marianogaudix el a spus

      Ce mai faci, Matute... Rătăcesc mereu prin aceste părți. Salutari

  8.   lolbimbo el a spus

    Bun articol.

  9.   honovan el a spus

    Fișierul nu a fost găsit, a fost dezactivat din cauza încălcării drepturilor de autor.

    Ce vreau sa spun este ca daca il ai, il poti incarca din nou???.te rog.

    mulțumesc.