Mini Eğitim: Tarçın İçin Elmalar Oluşturma

Basit bir uygulama oluşturalım Tarçın. Başlamak için şunu bilmeliyiz Tarçın farklı uygulama türleri sunar:

  • MetinApplet (panelde bir etiket gösteriliyor)
  • IconApplet (panelde bir simge gösteriliyor)
  • TextIconApplet (panelde hem simgeyi hem de etiketi gösterir)
  • Applet (kendi başınıza doldurabileceğiniz boş bir kutu gösteren hardcore geliştiriciler için)

Bu eğitimde, panelde sadece bir simge görüntülemek istiyoruz, bu nedenle bir "IconApplet" kullanacağız. Appletımızı programlamak için Tarçın veya Gnome Bazı Javascript programlamalarını bilmemiz ve bilmemiz gerekiyor

Kodumuzun konumu.

Öncelikle dosyamızın konumuna bakalım. Appletımızın konumu aşağıdaki adreslerde verilmiştir:

/.local/share/cinnamon/applets içinde /usr/share/cinnamon/applets

Cinnamon_Applet

Applet'ımızı oluşturan dosyalar.

Cinnamon_Applet2

applet.js'yi tanımlamaya devam ediyoruz

kod

applet.js

Şimdi koda bakalım. applet.js ve cümlelerinin her birini açıklayın:

applet.js kodunu başlatma

uygulama kodu

javascript kodu

Önceki kodumuzdaki ifadelerin her birine bakalım

const Lang = imports.lang; /*Gtk ve Lang kütüphanelerini çağırıyoruz, bunlar herhangi bir GNOME uygulamasının temel parçalarıdır, pencereler, parçacıklar oluşturmamıza ve bunları bağlamamıza olanak tanırlar.*/ const Applet = imports.ui.applet; /*Cinnamon ve Gnome için bir uygulama oluşturmamıza olanak tanıyan ve aynı zamanda bize onun özelliklerini ve işlevlerini veren Applet kütüphanelerini çağırıyoruz.*/ const GLib = imports.gi.GLib; /*GLib bir yardım kütüphanesidir, GNOME'da bazı şeyler yapmamızı sağlar, örneğin hellognome.html dosyasının nerede olduğunu söyler, sinyallerden sorumlu kütüphanedir.*/ const Gettext = imports.gettext.domain('cinnamon -applet'); const _ = Gettext.gettext; //Tarçın masaüstünün özelliklerini içe aktarmamızı sağlayan Gettext kütüphanesi. const PopupMenu = imports.ui.popupMenu; /*PopupMenu menü yöneticisini kullanmak için bir kütüphanedir, genellikle uygulamalarda kullanılan açılır menü widget'ını çağırmamıza olanak tanır.*/ function MyApplet(orientation) { this._init(orientation); }

Appletımızın yapıcısı aşağıda tanımlanmıştır, sınıfımıza bakalım:

gjs sınıfı

Her bir cümlenin tanımıyla devam ediyoruz

MyApplet.prototype = { __proto__: Applet.IconApplet.prototype, // Sınıfımızı veya Sınıfımızı tanımlarız _init: function(orientation) { Applet.IconApplet.prototype._init.call(this, Orientation); /*Tarçın üzerinden yönlendirmeyi oluşturuyoruz. Applet panelinin üstte mi yoksa altta mı olacağını ayarlıyoruz (bunun applet menülerinin yönünü etkiler).*/ try { // Bir şeyler yapın } Yakala (e) { // Bir hata oluşursa ne olur } / *Appletimizde oluşabilecek hataları yakalamak ve global hata günlüğüne yazılmasını sağlamak için try/catch kullanıyoruz. Bu şekilde, eğer bir şeyler ters giderse, Ayna Aynasında hatayı görebilirsiniz: Alt F2 tuşuna basın, "lg" yazın ve "hatalar" sekmesine tıklayın.*/ this.menuManager = new PopupMenu.PopupMenuManager(this) ; //Açılır menüyü oluşturun ve menü yöneticisini ayarlayın this.menu = new Applet.AppletPopupMenu(this, oryantasyon); //bir menü oluşturuyoruz. this.menuManager.addMenu(this.menu); // Menüyü açılır menüye ekliyoruz. this.makeMenu(); // menuitem makeMenu, makeMenu adında bir menuitem oluşturuyoruz. this.buildContextMenu(); // buildContextMenu, buildContextMenu adında bir menü öğesi oluşturuyoruz. this.set_applet_icon_name("klasör"); /*Applet'i oluşturuyoruz, bu durum benzersizdir, seçilen simge klasördür, istersek bir metin uygulaması da oluşturabiliriz.*/

Örnek olarak, yeni adlar oluşturmak için "klasör" adını "terminal", "docky" olarak değiştirin, Gnome veya Tarçın simgelerinin veya başka herhangi bir simge temasının adını görün, adrese gidin.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip(_("Bir pencereyi kapatmak için buraya tıklayın")); // Uygulamamızda oluşabilecek hataları yakalamak için yakalayın. catch (e) { global.logError(e); } makeMenu: function() { this.menu.addMenuItem(new PopupMenu.PopupMenuItem("Test Mesajı", { reactive: true })); }, /*makeMenu menü öğesinin adını ve özelliklerini tanımlıyoruz. Bu durumda etiket Test Mesajıdır". { reactive: true } tanımlayacağız. İşaretçi menü öğesinin üzerinden geçtiğinde menü öğesinin arka planının değişeceğini true kullanarak belirleriz, eğer yanlışsa tam tersi olur.*/ buildContextMenu: function () { this.menu .addMenuItem(new PopupMenu.PopupMenuItem(" show", { reactive: true })); }, // makeMenu menü öğesinin adını ve özelliklerini tanımlıyoruz. Bu durumda etiket "show" olur ". on_applet_clicked: function(event) { this.menu.toggle(); } // Açılır menüyü çağırmak için uygulama tarafından gönderilen sinyal. function main(meta veriler, yönlendirme) { let myApplet = new MyApplet(orientation); return myApplet; } /*Son olarak her applette aynı olması muhtemel bir "main" fonksiyon eklememiz gerekiyor.Appletimizin bir örneğini oluşturur ve onu Cinnamon'a döndürür.*/ // Kapatıyoruz döngü myApplet'i döndürür;

Metadata.json'u tanımlamaya devam ediyoruz

LP0ol8b

Ekran görüntüsü - 140314 - 21:11:34

"son düzenleme": "1331990905", // Son düzenleme. "description": "Kişisel olarak tanımlanmış özel bir gtk menüsünü göstermek için uygulamaya tıklayın", // Uygulamanın açıklaması. "icon": "docky ", // Uygulama açıklaması için kullanılan simgeler. Örnek olarak, adı "docky" yerine "terminal", "klasör" olarak değiştirin. "uuid": "black" // metadata.json dosyamızın bulunduğu klasör "name": "Custom gtk menu" // Applet'in adı.

Not: Gnome veya Tarçın simgelerinin veya başka herhangi bir simge temasının adını görmek üzere yeni adlar ayarlamak için dosya sistemi adresine gidin.

/usr/share/icons

Oluşturulan Applet'in görüntüsü

  lKxpdkS

Tarçın veya Gnome için uygulama oluşturmak için kullanılan Qt, Gtk, Vala ve diğer diller

Tarçın için uygulamamızın konumuna bakalım

Appletımızın konumu aşağıdaki adreslerde verilmiştir:

/.local/share/cinnamon/applets

içinde

/usr/share/cinnamon/applets

inek öğrenci

Uygulamamızın bileşimi

beta

applet.js'yi tanımlamaya devam ediyoruz 

kod

applet.js

applet.js kodunu başlatma

Ekran görüntüsü - 140314 - 21:30:48

applet.js'nin sonu

Şimdi applet.js kodunu görelim ve cümlelerini açıklamaya geçelim.

Yazılan kod, Javascript ile yazılan önceki örnekle hemen hemen aynıdır.
Yalnızca otomatik çalıştırılabilir dosyamızı çağıracak olan sinyal değiştirildi.

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

Otomatik çalıştırılabilir dosyamız Qt, Gtk, Gtkmm, wxWidget, Vala vb. ile yazılabilir. kendi kendine çalıştırılabilir dosyaların oluşturulabileceği diller. Otomatik çalıştırılabilir dosyamızın adı Menü'dür ve Qtmenu klasöründedir.

beta

PyGTK, Ruby Gtk, Perl Gtk vb. gibi Gtk için bağlamaları olan diğer programlama dillerini de kullanabiliriz. söz konusu dillerde yazılan kodu yürütmek için bir komut dosyası kullanılarak kullanılabilir. İhtiyaçlarımıza göre programları çağırmak, açılır menü ve açılır pencere oluşturmak için prensip her zaman aynıdır.

Qt ile yazılan otomatik çalıştırılabilir dosyamızın koduna bakalım

qt

Metadata.json'u tanımlamaya devam ediyoruz

LP0ol8b

Mongo

Kod önceki örnekle aynı şekilde yazılmıştır.

Qt ile oluşturulan Applet'in görüntüsü

qte

Gtk 3.10 ile oluşturulan Applet'in görüntüsü

Size Gtk'de yazılmış çalıştırılabilir bir araba kullanan küçük bir uygulama örneği bırakıyorum, bu durumda OpenBox'ta kullanılan myGtkMenu menüsünü alıyoruz.

Kendi kendine çalışan bir menüdür.

megtk

Eğiticiyi ve örnekleri indirin


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Aioria dijo

    interesenta Articulo…

    1.    Marianogaudix dijo

      Gracias . Mi es que aprendamos un poquito cada día .

  2.   hediye dijo

    Muy bueno, me encanta, siempre quise saber como se hacían esta clase de applets

  3.   Ángel Araya dijo

    Una pequeña corrección. Gettext no es nada específico de Cinnamon como dice en el artículo, es una librería que hace posibles las traducciones automáticas y a partir de plantillas.

  4.   msx dijo

    Muy bueno el tutorial y todo eso pero lo importante no lo pusiste: link al wallpaper?

    1.    Marianogaudix dijo

      Bajate los wallpapers de Linux Mint 16 Petra .
      El paquete se llama mint-backgrounds-petra : http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla dijo

    Muy interesante el artículo. La verdad es que siempre me había preguntado como se creaban estos applets. Quizá me anime a crear un applet mini-reproductor para MPD o algo similar.

    Paylaşım için teşekkürler!

  6.   Matias dijo

    Excelente, justo estoy averiguando como modificar el nm-applet (network manager) de cinnamon, para que me cambie de color cuando no tengo salida a internet, (tengo una placa wifi), y esto me sirve para orientarme un poco..

  7.   matiasbatero17 dijo

    bien ahí Marian, no sabía que posteabas acá. Saludos.

    1.    Marianogaudix dijo

      Como andas Matute ….. siempre ando dando vueltas por estos lados . Saludos

  8.   hahaha dijo

    İyi makale.

  9.   Honovan dijo

    no se encuentra el archivo fue desactivado por violación a derechos de autor.

    lo que quiero decir es que si lo tienes por hay ,lo puedes volver a subir???.por favor.

    teşekkür ederim.