Mini tutorial: creazione di applet per cannella

Creeremo una semplice applet per Cannella. Per iniziare, dobbiamo saperlo Cannella offre diversi tipi di applet:

  • TextApplet Text (mostrando un'etichetta sul pannello)
  • IconaApplet (mostra un'icona sul pannello)
  • TextIconApplet (indicando sia un'icona che un'etichetta sul pannello)
  • Applet (per sviluppatori hardcore, che mostrano una casella vuota che puoi riempire tu stesso)

In questo tutorial, vogliamo semplicemente visualizzare un'icona sul pannello, quindi useremo un "IconApplet". Per programmare la nostra applet su Cannella o Gnomo abbiamo bisogno di sapere e sapere qualcosa sulla programmazione Javascript

Posizione del nostro codice.

Per prima cosa, vediamo la posizione del nostro file. L'ubicazione della nostra applet è indicata ai seguenti indirizzi:

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

Cannella_Applet

File che compongono la nostra applet.

Cannella_Applet2

Procediamo per definire applet.js

codigo

applet.js

Ora procediamo a vedere il codice di applet.js e spiega ciascuna delle sue frasi:

inizio del codice applet.js

codice applet

codice javascript

Vediamo ciascuna delle frasi del nostro codice precedente

const Lang = imports.lang; / * Invociamo le librerie Gtk e Lang, sono una parte fondamentale di qualsiasi applicazione GNOME, ci permettono di creare finestre, widget e collegarli. * / Const Applet = imports.ui.applet; / * Invociamo la libreria Applet che ci permette di creare un'applet per Cinnamon e Gnome e allo stesso tempo ci fornisce le sue proprietà e funzioni. * / Const GLib = imports.gi.GLib; / * GLib è una libreria di supporto, ci permette di fare cose in GNOME, per esempio dire dove si trova il file hellognome.html, è la libreria responsabile dei segnali. * / Const Gettext = imports.gettext.domain ('cinnamon-applets '); const _ = Gettext.gettext; // Libreria Gettext che ci permette di importare le caratteristiche del desktop Cinnamon. const PopupMenu = imports.ui.popupMenu; / * PopupMenu è una libreria per utilizzare il menu manager, ci permette di invocare il widget del menu a comparsa solitamente utilizzato nelle applet. * / Funzione MyApplet (orientamento) {this._init (orientamento); }

Il costruttore della nostra applet è definito di seguito, diamo un'occhiata alla nostra Classe o Classe:

classe gjs

Continuiamo con la definizione di ciascuna delle frasi

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Definiamo la nostra Classe o Classe _init: funzione (orientamento) {Applet.IconApplet.prototype._init.call (questo, orientamento); / * Impostiamo l'orientamento tramite Cinnamon. Stabiliamo se il pannello dell'applet è in alto o in basso (questo ha un impatto sull'orientamento dei menu dell'applet). * / Prova {// Fai qualcosa} Cattura (e) {// Cosa succede se si verifica un errore} / * Usiamo un try / catch per rilevare eventuali errori che possono verificarsi nella nostra applet e per assicurarci che vengano scritti nel log degli errori globale. In questo modo, se qualcosa va storto, puoi vedere l'errore in Looking Glass: premi Alt F2, digita "lg" e fai clic sulla scheda "errori". * / This.menuManager = new PopupMenu.PopupMenuManager (this) ; // Crea il menu a comparsa e imposta il menu manager this.menu = new Applet.AppletPopupMenu (this, orientamento); // creiamo un menu. this.menuManager.addMenu (this.menu); // Aggiungiamo il menu al menu a comparsa. this.makeMenu (); // menuitem makeMenu, creiamo un menuitem chiamato makeMenu. this.buildContextMenu (); // buildContextMenu, creiamo un menuitem chiamato buildContextMenu. this.set_applet_icon_name ("cartella"); / * Creiamo l'applet, questo caso è unico, l'icona scelta è la cartella o la cartella, possiamo anche stabilire un'applet di testo se vogliamo. * /

Ad esempio cambia il nome di "cartella" in "terminale", "docky" per stabilire nuovi nomi vedi il nome delle icone Gnome o Cinnamon o qualsiasi altro tema di icone, vai nell'indirizzo.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Fai clic qui per chiudere una finestra")); // Cattura per rilevare eventuali errori che possono verificarsi nella nostra applet. cattura (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (new PopupMenu.PopupMenuItem ("Messaggio di prova", {reattivo: true})); }, / * Definiamo il nome del menuitem makeMenu e le sue caratteristiche. In questo caso l'etichetta è Test Message ". Definiremo {reattivo: true} Stabiliamo che lo sfondo del menuitem cambierà quando il puntatore passa sopra il menuitem attraverso true se è falso accade il contrario. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reattive: true}));}, // Definiamo il nome del makeMenu menuitem e le sue caratteristiche. In questo caso l'etichetta è "show". on_applet_clicked: function (event) {this.menu.toggle ();} // Segnale emesso dall'applet, per chiamare la funzione del menu a comparsa main (metadati, orientamento) {let myApplet = new MyApplet (orientamento); return myApplet;} / * Infine , dobbiamo solo aggiungere una funzione "main", che probabilmente sarà la stessa in ogni applet, crea un'istanza della nostra applet e la restituisce a Cinnamon. * / // Chiude il ciclo return myApplet;

Procediamo per definire metadata.json

LP0ol8b

Screenshot - 140314 - 21:11:34

"last-edited": "1331990905", // Last edition. "description": "Fai clic sull'applet per visualizzare un menu gtk personalizzato personalizzato", // Descrizione dell'applet. "icon": "docky", // Icone utilizzate per la descrizione dell'applet. Ad esempio, cambiare il nome di "docky" in "terminal", "cartella". "uuid": "black" // Cartella in cui è incluso il nostro file metadata.json "name": "Custom gtk menu" // Nome applet.

Nota: Per impostare nuovi nomi, vedere il nome delle icone Gnome o Cinnamon o qualsiasi altro tema di icone, andare all'indirizzo dei file system.

/usr/share/icons

Immagine dell'applet creata

  lKxpdkS

Qt, Gtk, Vala e altri linguaggi utilizzati per creare un'applet per Cinnamon o Gnome

Vediamo la posizione della nostra applet per Cinnamon

L'ubicazione della nostra applet è indicata ai seguenti indirizzi:

/.local/share/cinnamon/applets

o su

/usr/share/cinnamon/applets

secchione

Composizione della nostra applet

beta

Procediamo per definire applet.js 

codigo

applet.js

Avvio del codice applet.js

Screenshot - 140314 - 21:30:48

Fine di applet.js

Ora procediamo a vedere il codice applet.js e spiegare le sue istruzioni.

Il codice scritto è praticamente lo stesso dell'esempio precedente scritto con Javascript.
È stato modificato solo il segnale, che chiamerà il nostro eseguibile automatico.

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

Il nostro eseguibile automatico può essere scritto con Qt, Gtk, Gtkmm, wxWidget, Vala, ecc. linguaggi con cui è possibile creare autoeseguibili. Il nostro eseguibile automatico si chiama Menu e si trova nella cartella Qtmenu.

beta

Possiamo anche usare altri linguaggi di programmazione che hanno associazioni per Gtk come nel caso di PyGTK, Ruby Gtk, Perl Gtk, ecc. che può essere utilizzato utilizzando uno script per eseguire il codice scritto in quei linguaggi. Il principio è sempre lo stesso di chiamare programmi, creare menu e finestre popup in base alle nostre esigenze.

Vediamo il codice del nostro autoeseguibile scritto con Qt

qt

Procediamo per definire metadata.json

LP0ol8b

mongo

Il codice viene scritto nello stesso modo dell'esempio precedente

Immagine applet creata con Qt

che cosa

Immagine dell'applet creata con Gtk 3.10

Vi lascio un piccolo esempio di applet che utilizza un eseguibile scritto in Gtk, in questo caso prendiamo il menu myGtkMenu utilizzato in OpenBox.

È un menu a esecuzione automatica.

megk

Scarica il tutorial e gli esempi


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   aiolia suddetto

    Articolo interessante ...

    1.    marianogaudix suddetto

      Grazie . Il mio è che impariamo un po 'ogni giorno.

  2.   Danie suddetto

    Molto bene, mi piace moltissimo, ho sempre voluto sapere come venivano fatti questi tipi di applet

  3.   Angel Araya suddetto

    Una piccola correzione. Gettext non è niente di specifico di Cinnamon come dice l'articolo, è una libreria che rende possibili traduzioni automatiche e da template.

  4.   msx suddetto

    Ottimo tutorial e tutto il resto, ma la cosa importante non l'hai messa: link allo sfondo?

    1.    marianogaudix suddetto

      Scarica gli sfondi di Linux Mint 16 Petra.
      Il pacchetto si chiama menta-sfondi-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla suddetto

    Articolo molto interessante. La verità è che mi ero sempre chiesto come venivano create queste applet. Forse sono incoraggiato a creare un'applet mini-player per MPD o qualcosa di simile.

    Grazie per la condivisione!

  6.   Matias suddetto

    Ottimo, sto solo cercando di modificare l'applet cinnamon nm (gestore di rete), in modo che cambi colore quando non ho accesso a Internet, (ho una scheda wifi), e questo mi aiuta ad orientarmi un po '.

  7.   matiasbatero17 suddetto

    Be ', Marian, non sapevo che stavi scrivendo qui. Saluti.

    1.    marianogaudix suddetto

      Mentre cammini, Matute… .. cammino sempre da queste parti. Saluti

  8.   lolbimbo suddetto

    Buon articolo.

  9.   Honovan suddetto

    il file non trovato è stato disattivato per violazione del copyright.

    Quello che voglio dire è che se ce l'hai lì, puoi caricarlo di nuovo ???. Per favore.

    grazie.