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
File che compongono la nostra applet.
Procediamo per definire applet.js
Ora procediamo a vedere il codice di applet.js e spiega ciascuna delle sue frasi:
inizio del codice applet.js
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:
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
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
"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
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
Composizione della nostra applet
Procediamo per definire applet.js
Avvio del codice applet.js
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.
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
Procediamo per definire metadata.json
Il codice viene scritto nello stesso modo dell'esempio precedente
Immagine applet creata con Qt
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.
Scarica il tutorial e gli esempi
Articolo interessante ...
Grazie . Il mio è che impariamo un po 'ogni giorno.
Molto bene, mi piace moltissimo, ho sempre voluto sapere come venivano fatti questi tipi di applet
Una piccola correzione. Gettext non è niente di specifico di Cinnamon come dice l'articolo, è una libreria che rende possibili traduzioni automatiche e da template.
Ottimo tutorial e tutto il resto, ma la cosa importante non l'hai messa: link allo sfondo?
Scarica gli sfondi di Linux Mint 16 Petra.
Il pacchetto si chiama menta-sfondi-petra: http://packages.linuxmint.com/list.php?release=Petra
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!
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 '.
Be ', Marian, non sapevo che stavi scrivendo qui. Saluti.
Mentre cammini, Matute… .. cammino sempre da queste parti. Saluti
Buon articolo.
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.