Mały samouczek: Tworzenie apletów dla cynamonu

Zamierzamy stworzyć prosty aplet dla Cynamon. Na początek musimy to wiedzieć Cynamon oferuje różne typy apletów:

  • Aplet tekstowy (pokazuje etykietę na panelu)
  • IkonaAplety (pokazuje ikonę na panelu)
  • TekstIkonaAplet (wskazuje zarówno ikonę, jak i etykietę na panelu)
  • aplet (dla hardkorowych programistów, którzy pokazują puste pole, które możesz wypełnić samodzielnie)

W tym samouczku chcemy po prostu wyświetlić ikonę na panelu, więc użyjemy „IconApplet”. Aby zaprogramować nasz aplet na Cynamon lub Gnom musimy wiedzieć coś o programowaniu w Javascript

Lokalizacja naszego kodu.

Najpierw zobaczmy lokalizację naszego pliku. Lokalizację naszego apletu podajemy pod następującymi adresami:

/.local/share/cinnamon/applets lub /usr/share/cinnamon/applets

Cynamon_Aplet

Pliki, które tworzą nasz aplet.

Cynamon_Aplet2

Przechodzimy do definiowania applet.js

kod

aplet.js

Teraz przejdźmy do kodu aplet.js i wyjaśnij każde z jego zdań:

Początek kodu applet.js.

kod apletu

kod javascript

Zobaczmy każde ze zdań naszego poprzedniego kodu

const Lang = imports.lang; / * Wywołujemy biblioteki Gtk i Lang, są one podstawową częścią każdej aplikacji GNOME, pozwalają nam tworzyć okna, widżety i je łączyć. * / Const Applet = imports.ui.applet; / * Wywołujemy bibliotekę Applet, która pozwala nam stworzyć aplet dla Cinnamon i Gnome i jednocześnie daje nam jego właściwości i funkcje. * / Const GLib = imports.gi.GLib; / * GLib jest biblioteką pomocniczą, pozwala nam robić rzeczy w GNOME, na przykład powiedzieć, gdzie jest plik hellognome.html, jest to biblioteka odpowiedzialna za sygnały. * / Const Gettext = imports.gettext.domain ('cynamon -applets '); const _ = Gettext.gettext; // Biblioteka Gettext, która pozwala nam importować nasze własne cechy dla pulpitu Cinnamon. const PopupMenu = imports.ui.popupMenu; / * PopupMenu to biblioteka do korzystania z menedżera menu, pozwala nam wywołać widżet menu podręcznego zwykle używany w apletach. * / Funkcja MyApplet (orientacja) {this._init (orientacja); }

Konstruktor naszego apletu jest zdefiniowany poniżej, spójrzmy na naszą klasę lub klasę:

klasa gjs

Kontynuujemy definicję każdego ze zdań

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Definiujemy naszą klasę lub klasę _init: function (orientacja) {Applet.IconApplet.prototype._init.call (this, orientacja); / * Ustawiliśmy orientację poprzez cynamon. Ustalamy, czy panel apletu znajduje się na górze czy na dole (ma to wpływ na orientację menu apletów). * / Try {// Zrób coś} Catch (e) {// Co się stanie jeśli wystąpi błąd} / * Używamy try / catch, aby wychwycić wszelkie błędy, które mogą wystąpić w naszym aplecie i upewnić się, że są one zapisane w globalnym dzienniku błędów. W ten sposób, jeśli coś pójdzie nie tak, możesz zobaczyć błąd w Looking Glass: naciśnij Alt F2, wpisz "lg" i kliknij zakładkę "błędy". * / This.menuManager = new PopupMenu.PopupMenuManager (this) ; // Utwórz wyskakujące menu i ustaw menedżera menu this.menu = new Applet.AppletPopupMenu (this, Orientacja); // tworzymy menu. this.menuManager.addMenu (this.menu); // Dodajemy menu do wyskakującego menu. this.makeMenu (); // menuitem makeMenu, tworzymy menuitem o nazwie makeMenu. this.buildContextMenu (); // buildContextMenu, tworzymy element menu o nazwie buildContextMenu. this.set_applet_icon_name („folder”); / * Tworzymy aplet, ten przypadek jest unikalny, wybrana ikona to folder lub folder, jeśli chcemy, możemy również założyć aplet tekstowy. * /

Na przykład zmień nazwę „folderu” na „terminal”, „docky”, aby ustalić nowe nazwy, zobacz nazwę ikony Gnome lub Cinnamon lub inny motyw ikon, przejdź do adresu.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Kliknij tutaj, aby zabić okno")); // Łap, aby wyłapać wszelkie błędy, które mogą wystąpić w naszym aplecie. catch (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (new PopupMenu.PopupMenuItem ("Wiadomość testowa", {reactive: true})); }, / * Definiujemy nazwę elementu menu makeMenu i jego charakterystykę. W tym przypadku etykieta to Wiadomość testowa ". Zdefiniujemy {reactive: true} Ustalamy, że tło elementu menu zmieni się, gdy wskaźnik przejdzie przez element menu do wartości true, jeśli jest fałszywe, dzieje się odwrotnie. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Definiujemy nazwę elementu menu makeMenu i jego charakterystykę. W tym przypadku etykieta to "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // Sygnał wysyłany przez aplet w celu wywołania funkcji menu podręcznego main (metadane, orientacja) {let myApplet = new MyApplet (orientacja); powrót myApplet;} / * Na koniec wystarczy dodać funkcję "main", która prawdopodobnie będzie taka sama w każdym aplecie, utworzona zostanie instancja naszego apletu i zwrócona do Cinnamon. * / // Zamykamy pętlę return myApplet;

Przystępujemy do definiowania metadata.json

LP0ol8b

Zrzut ekranu - 140314-21: 11:34

"last-edited": "1331990905", // Ostatnia edycja. "description": "Kliknij aplet, aby wyświetlić niestandardowe, osobiście zdefiniowane menu gtk", // Opis apletu. "icon": "docky", // Ikony używane do opisu apletu. Jako przykład zmień nazwę „docky” na „terminal”, „folder”. "uuid": "black" // Folder, w którym znajduje się nasz plik metadata.json "name": "Custom gtk menu" // Nazwa apletu.

Uwaga: Aby ustawić nowe nazwy, zobacz nazwę ikony Gnome lub Cynamon lub dowolny inny motyw ikon, przejdź do adresu systemu plików.

/usr/share/icons

Obraz utworzonego apletu

  lKxpdkS

Qt, Gtk, Vala i inne języki używane do tworzenia apletów dla Cinnamon lub Gnome

Zobaczmy, gdzie znajduje się nasz aplet dla Cynamonu

Lokalizacja naszego apletu jest podana pod następującymi adresami:

/.local/share/cinnamon/applets

lub

/usr/share/cinnamon/applets

frajer

Skład naszego apletu

beta

Przystępujemy do definiowania applet.js 

kod

aplet.js

Uruchomienie kodu applet.js.

Zrzut ekranu - 140314-21: 30:48

Koniec applet.js

Przejdźmy teraz do przejrzenia kodu applet.js i wyjaśnienia jego instrukcji.

Napisany kod jest praktycznie taki sam, jak w poprzednim przykładzie napisanym w Javascript.
Zmieniono tylko sygnał, który wywoła nasz auto-wykonywalny plik.

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

Nasz automatyczny plik wykonywalny można napisać za pomocą Qt, Gtk, Gtkmm, wxWidget, Vala itp. języki, w których można tworzyć samowykonalne pliki. Nasz automatycznie wykonywalny plik nazywa się Menu i znajduje się w folderze Qtmenu.

beta

Możemy również używać innych języków programowania, które mają powiązania z Gtk, na przykład PyGTK, Ruby Gtk, Perl Gtk itp. którego można użyć za pomocą skryptu do wykonania kodu napisanego w tych językach. Zasada jest zawsze taka sama, aby wywoływać programy, tworzyć wyskakujące menu i wyskakujące okienka zgodnie z naszymi potrzebami.

Zobaczmy kod naszego auto-wykonywalnego pliku napisanego w Qt

qt

Przystępujemy do definiowania metadata.json

LP0ol8b

Mongo

Kod jest napisany w taki sam sposób, jak w poprzednim przykładzie

Obraz apletu utworzony za pomocą Qt

Co

Obraz apletu utworzonego za pomocą Gtk 3.10

Zostawiam wam mały przykład apletu, który używa pliku wykonywalnego napisanego w Gtk, w tym przypadku bierzemy menu myGtkMenu używane w OpenBox.

Jest to menu uruchamiające się samodzielnie.

megtk

Pobierz samouczek i przykłady


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   aiolia powiedział

    Interesujący artykuł ...

    1.    marianogaudiks powiedział

      Dziękuję Ci . Uważam, że każdego dnia trochę się uczymy.

  2.   Danie powiedział

    Bardzo dobrze, kocham to, zawsze chciałem wiedzieć, jak powstają tego typu aplety

  3.   Angel Araya powiedział

    Mała korekta. Gettext nie jest niczym szczególnym dla Cinnamon, jak napisano w artykule, jest to biblioteka, która umożliwia automatyczne tłumaczenia i na podstawie szablonów.

  4.   msx powiedział

    Bardzo dobry tutorial i tak dalej, ale ważna rzecz, której tego nie umieściłeś: link do tapety?

    1.    marianogaudiks powiedział

      Pobierz tapety Linux Mint 16 Petra.
      Pakiet nazywa się mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla powiedział

    Bardzo ciekawy artykuł. Prawda jest taka, że ​​zawsze zastanawiałem się, jak powstały te aplety. Może zachęca mnie do stworzenia apletu mini-odtwarzacza dla MPD lub czegoś podobnego.

    Dzięki za dzielenie!

  6.   Matias powiedział

    Świetnie, właśnie zastanawiam się, jak zmodyfikować aplet cynamonowy nm (menedżer sieci), aby zmieniał kolor, gdy nie mam dostępu do Internetu (mam kartę Wi-Fi), a to pomaga mi trochę się zorientować.

  7.   Matiasbatero17 powiedział

    No cóż, Marian, nie wiedziałem, że tu publikujesz. Pozdrowienia.

    1.    marianogaudiks powiedział

      Kiedy idziesz, Matute… .. zawsze chodzę po tych stronach. Twoje zdrowie

  8.   lolbimbo powiedział

    Dobry artykuł.

  9.   honowan powiedział

    plik nie znaleziony został dezaktywowany z powodu naruszenia praw autorskich.

    Chodzi mi o to, że jeśli go tam masz, możesz przesłać go ponownie ???. Proszę.

    dziękuję.