Mini Tutorial: Lage applets for kanel

Vi skal lage en enkel applet for Kanel. For å begynne må vi vite det Kanel tilbyr forskjellige typer appletter:

  • TextApplet (viser en etikett på panelet)
  • IconApplet (viser et ikon på panelet)
  • TextIconApplet (indikerer både et ikon og en etikett på panelet)
  • applet (for hardcore-utviklere, som viser en tom rute du kan fylle ut selv)

I denne opplæringen ønsker vi ganske enkelt å vise et ikon på panelet, så vi vil bruke en "IconApplet". For å programmere vår applet til Kanel eller Gnome vi trenger å vite og vite noe om Javascript-programmering

Plassering av koden vår.

La oss først se plasseringen av filen vår. Plasseringen av appleten vår er gitt på følgende adresser:

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

Kanel_Applet

Filer som utgjør vår applet.

Kanel_Applet2

Vi fortsetter med å definere applet.js

kode

applet.js

La oss nå fortsette å se koden til applet.js og forklar hver av setningene:

applet.js-kodestart

appletkode

javascript-kode

La oss se hver av setningene i vår forrige kode

const Lang = import.lang; / * Vi påkaller Gtk- og Lang-bibliotekene, de er en grunnleggende del av ethvert GNOME-program, de tillater oss å lage vinduer, widgets og koble dem til. * / Const Applet = import.ui.applet; / * Vi påkaller Applet-biblioteket som lar oss lage en applet for kanel og Gnome og gir oss samtidig dets egenskaper og funksjoner. * / Const GLib = import.gi.GLib; / * GLib er et hjelpebibliotek, det lar oss gjøre ting i GNOME, for eksempel si hvor hellognome.html-filen er, det er biblioteket som har ansvaret for signaler. * / Const Gettext = import.gettext.domain ('kanel -applets '); const _ = Gettext.gettext; // Gettext-bibliotek som lar oss importere våre egne egenskaper for Cinnamon-skrivebordet. const PopupMenu = import.ui.popupMenu; / * PopupMenu er et bibliotek for å bruke menyadministratoren, det lar oss påkalle popup-meny-widgeten som vanligvis brukes i applets. * / Funksjon MyApplet (retning) {this._init (retning); }

Konstruktøren av appleten vår er definert nedenfor, la oss se på vår klasse eller klasse:

gjs klasse

Vi fortsetter med definisjonen av hver av setningene

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Vi definerer vår klasse eller klasse _init: funksjon (retning) {Applet.IconApplet.prototype._init.call (denne, retning); / * Vi setter retningen gjennom kanel. Vi angir om appletpanelet er øverst eller nederst (dette har innvirkning på orienteringen til appletmenyene). * / Prøv {// Gjør noe} Fangst (e) {// Hva skjer hvis det oppstår en feil } / * Vi bruker et forsøk / fangst for å fange opp eventuelle feil som kan oppstå i appleten vår, og for å sikre at de er skrevet til den globale feilloggen. På denne måten, hvis noe går galt, kan du se feilen i Looking Glass: Trykk på Alt F2, skriv "lg" og klikk på "feil" -fanen. * / This.menuManager = new PopupMenu.PopupMenuManager (this); // Opprett popup-menyen og sett menyadministratoren this.menu = new Applet.AppletPopupMenu (this, direction); // vi lager en meny. this.menuManager.addMenu (denne.menyen); // Vi legger til menyen i popup-menyen. this.makeMenu (); // menuitem makeMenu, vi lager et menuitem kalt makeMenu. this.buildContextMenu (); // buildContextMenu, vi lager et menyemne som heter buildContextMenu. this.set_applet_icon_name ("folder"); / * Vi lager appleten, denne saken er unik, ikonet som er valgt er mappen eller mappen, vi kan også opprette en tekst-applet hvis vi vil. * /

For eksempel endre navnet på "mappe" til "terminal", "docky" for å etablere nye navn, se navnet på Gnome- eller Cinnamon-ikonene eller et annet ikontema, gå inn i adressen.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Klikk her for å drepe et vindu")); // Fang for å fange eventuelle feil som kan oppstå i appleten vår. fange (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (new PopupMenu.PopupMenuItem ("Test Message", {reactive: true})); }, / * Vi definerer navnet på menymenyen makeMenu og dens egenskaper. I dette tilfellet er etiketten Testmelding ". Vi definerer {reaktivt: sant} Vi fastslår at bakgrunnen til menypunktet vil endre seg når pekeren passerer over menypunktet gjennom sant hvis det er falsk, motsatt skjer. () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Vi definerer navnet på makeMenu-menyen og dens egenskaper. I dette tilfellet er etiketten "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // Signal som sendes ut av appleten, for å ringe popup-menyfunksjonens hoved (metadata, retning) {let myApplet = new MyApplet (retning); returner myApplet;} / * Til slutt må vi bare legge til en "hoved" -funksjon, som sannsynligvis vil være den samme i hver applet, en forekomst av appleten vår opprettes og returneres til kanel. * / // Vi lukker loop-returen myApplet;

Vi fortsetter med å definere metadata.json

LP0ol8b

Skjermbilde - 140314 - 21:11:34

"sist redigert": "1331990905", // Siste utgave. "beskrivelse": "Klikk på appleten for å vise en tilpasset personlig definert gtk-meny", // Appletbeskrivelse. "icon": "docky", // Ikoner som brukes til beskrivelsen av appleten. Endre som eksempel navnet på "docky" til "terminal", "folder". "uuid": "svart" // Mappe der metadata.json-filen vår er inkludert "name": "Custom gtk menu" // Applet name.

Merk: For å angi nye navn, se navnet på Gnome- eller Cinnamon-ikonene eller et annet ikontema, gå til filsystemadressen.

/usr/share/icons

Bilde av opprettet applet

  lKxpdkS

Qt, Gtk, Vala og andre språk brukes til å lage en applet for kanel eller gnome

La oss se plasseringen av appleten vår for kanel

Plasseringen av appleten vår er gitt på følgende adresser:

/.local/share/cinnamon/applets

o en

/usr/share/cinnamon/applets

nerd

Sammensetningen av appleten vår

beta

Vi fortsetter med å definere applet.js 

kode

applet.js

Starter applet.js-koden

Skjermbilde - 140314 - 21:30:48

Slutten av applet.js

La oss nå fortsette å se applet.js-koden og forklare uttalelsene.

Koden som er skrevet er praktisk talt den samme som forrige eksempel skrevet med Javascript.
Bare signalet er endret, noe som vil kalle vår automatisk kjørbare.

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

Vår automatisk kjørbare kan skrives med Qt, Gtk, Gtkmm, wxWidget, Vala, etc. språk som selvutførbare filer kan opprettes med. Vår auto-kjørbare kalles Menu og den er i Qtmenu-mappen.

beta

Vi kan også bruke andre programmeringsspråk som har bindinger for Gtk, slik det er tilfellet PyGTK, Ruby Gtk, Perl Gtk, etc. som kan brukes ved hjelp av et skript for å utføre koden som er skrevet på disse språkene. Prinsippet er alltid det samme for å ringe programmer, lage popup-meny og popup-vindu etter våre behov.

La oss se koden til vår auto-kjørbare skrevet med Qt

qt

Vi fortsetter med å definere metadata.json

LP0ol8b

mongo

Koden er skrevet på samme måte som forrige eksempel

Appletbilde opprettet med Qt

hva

Bilde av appleten opprettet med Gtk 3.10

Jeg lar deg et lite eksempel på en applet som bruker en kjørbar skrevet i Gtk, i dette tilfellet tar vi myGtkMenu-menyen som brukes i OpenBox.

Det er en selvutførende meny.

megtk

Last ned veiledningen og eksemplene


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   aiolia sa

    Interessant artikkel ...

    1.    marianogaudix sa

      Takk skal du ha . Min er at vi lærer litt hver dag.

  2.   gave sa

    Veldig bra, jeg elsker det, jeg har alltid ønsket å vite hvordan denne typen applets ble laget

  3.   Angel Araya sa

    En liten korreksjon. Gettext er ikke noe spesifikt for kanel som det står i artikkelen, det er et bibliotek som muliggjør automatiske oversettelser og fra maler.

  4.   MSX sa

    Veldig god opplæring og alt det, men det viktige du ikke la det ut: lenke til bakgrunnsbilde?

    1.    marianogaudix sa

      Last ned Linux Mint 16 Petra bakgrunnsbilder.
      Pakken heter mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla sa

    Veldig interessant artikkel. Sannheten er at jeg alltid hadde lurt på hvordan disse appletene ble opprettet. Kanskje jeg blir oppfordret til å lage en minispiller-applet for MPD eller noe lignende.

    Takk for at du deler!

  6.   Matias sa

    Utmerket, jeg bare finner ut hvordan jeg kan endre nm-applet for kanel (nettverksbehandling), slik at den skifter farge når jeg ikke har internettilgang, (jeg har et wifi-kort), og dette hjelper meg å orientere meg litt.

  7.   matiasbatero17 sa

    Vel der Marian, jeg visste ikke at du postet her. Hilsen.

    1.    marianogaudix sa

      Mens du går, Matute ... .. Jeg går alltid rundt disse delene. Jubel

  8.   lolbimbo sa

    God artikkel.

  9.   honovan sa

    filen som ikke ble funnet ble deaktivert på grunn av brudd på opphavsretten.

    Det jeg mener er at hvis du har det der, kan du laste det opp igjen ???.

    Takk skal du ha.