Tutorial Mini: Membuat Applet untuk Kayu Manis

Kami akan membuat applet ringkas untuk Kayu manis. Untuk memulakan, kita mesti tahu bahawa Kayu manis menawarkan pelbagai jenis applet:

  • TeksApplet (menunjukkan label pada panel)
  • IkonApplet (menunjukkan ikon di panel)
  • TextIconApplet (menunjukkan ikon dan label pada panel)
  • applet (untuk pemaju tegar, yang menunjukkan kotak kosong yang boleh anda isi sendiri)

Dalam tutorial ini, kami hanya ingin memaparkan ikon di panel, jadi kami akan menggunakan "IconApplet". Untuk memprogram applet kami ke Kayu manis atau Gnome kita perlu mengetahui dan mengetahui sesuatu mengenai pengaturcaraan Javascript

Lokasi kod kami.

Pertama, mari lihat lokasi fail kami. Lokasi applet kami diberikan di alamat berikut:

/.local/share/cinnamon/applets dalam /usr/share/cinnamon/applets

Kayu Manis_Aplet

Fail yang membentuk Applet kami.

Kayu Manis_Aplet2

Kami meneruskan untuk menentukan applet.js

kod

applet.js

Sekarang mari kita lihat kod applet.js dan terangkan setiap ayatnya:

permulaan kod applet.js

kod applet

kod javascript

Mari lihat setiap ayat kod sebelumnya

const Lang = imports.lang; / * Kami memanggil perpustakaan Gtk dan Lang, mereka adalah bahagian asas dari mana-mana aplikasi GNOME, mereka membenarkan kami membuat tetingkap, widget dan menghubungkannya. * / Const Applet = imports.ui.applet; / * Kami meminta pustaka Applet yang membolehkan kami membuat applet untuk Cinnamon dan Gnome dan pada masa yang sama memberi kami sifat dan fungsinya. * / Const GLib = imports.gi.GLib; / * GLib adalah pustaka pembantu, ia membolehkan kita melakukan sesuatu di GNOME, misalnya katakan di mana fail hellognome.html, ia adalah perpustakaan yang bertanggungjawab atas isyarat. * / Const Gettext = imports.gettext.domain ('cinnamon -applet '); const _ = Gettext.gettext; // Perpustakaan Gettext yang membolehkan kami mengimport ciri-ciri desktop Cinnamon. const PopupMenu = imports.ui.popupMenu; / * PopupMenu adalah perpustakaan untuk menggunakan pengurus menu, ini membolehkan kita menggunakan widget menu pop timbul yang biasanya digunakan dalam applet. * / Fungsi MyApplet (orientasi) {this._init (orientasi); }

Pembina applet kami ditakrifkan di bawah, mari lihat Kelas atau Kelas kami:

kelas gjs

Kami meneruskan definisi setiap ayat

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Kami menentukan kelas atau Class _init: function (orientation) kami {Applet.IconApplet.prototype._init.call (ini, orientasi); / * Kami menetapkan orientasi melalui Cinnamon. Kami menetapkan sama ada panel applet berada di bahagian atas atau di bahagian bawah (ini memberi kesan pada orientasi menu applet). * / Cuba {// Lakukan sesuatu} Tangkap (e) {// Apa yang berlaku sekiranya berlaku ralat } / * Kami menggunakan try / catch untuk menangkap sebarang kesalahan yang mungkin berlaku di applet kami dan memastikannya ditulis ke log ralat global. Dengan cara ini, jika ada yang tidak betul, anda dapat melihat ralat dalam Mencari Kaca: Tekan Alt F2, ketik "lg" dan klik pada tab "ralat". * / This.menuManager = PopupMenu.PopupMenuManager baru (ini); // Buat menu pop timbul dan tetapkan pengurus menu ini.menu = Applet.AppletPopupMenu baru (ini, orientasi); // kami membuat menu. ini.menuManager.addMenu (this.menu); // Kami menambahkan menu ke menu pop timbul. ini.makeMenu (); // menuitem makeMenu, kami membuat menuitem yang dipanggil makeMenu. ini.buildContextMenu (); // buildContextMenu, kami membuat menu yang dipanggil buildContextMenu. this.set_applet_icon_name ("folder"); / * Kami membuat applet, case ini unik, ikon yang dipilih adalah folder atau folder, kita juga dapat membuat applet teks jika kita mau. * /

Sebagai contoh menukar nama "folder" menjadi "terminal", "docky" untuk menubuhkan nama baru lihat nama ikon Gnome atau Cinnamon atau tema ikon lain, masuk ke alamat.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Klik di sini untuk membunuh tetingkap")); // Tangkap untuk menangkap sebarang kesalahan yang mungkin berlaku di applet kami. tangkapan (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (PopupMenu.PopupMenuItem baru ("Uji Mesej", {reaktif: benar})); }, / * Kami menentukan nama menuitem makeMenu dan ciri-cirinya. Dalam kes ini, label adalah Uji Mesej ". Kami akan menentukan {reactive: true} Kami menetapkan bahawa latar belakang menuitem akan berubah apabila penunjuk melewati menuitem melalui true jika salah berlaku sebaliknya. * / BuildContextMenu: function () {this.menu .addMenuItem (PopupMenu.PopupMenuItem baru ("tunjuk", {reaktif: benar}));}, // Kami menentukan nama menuitem makeMenu dan ciri-cirinya. Dalam kes ini labelnya adalah "tunjukkan ". on_applet_clicked: function (event) {this.menu.toggle ();} // Isyarat yang dikeluarkan oleh applet, untuk memanggil fungsi menu pop-up utama (metadata, orientasi) {let myApplet = baru MyApplet (orientasi); kembali myApplet;} / * Akhirnya, kita hanya perlu menambahkan fungsi "utama", yang mungkin sama di setiap applet, contoh applet kita dibuat dan dikembalikan ke Cinnamon. * / // Kami menutup pengulangan loop myApplet;

Kami meneruskan untuk menentukan metadata.json

LP0ol8b

Tangkapan Skrin - 140314 - 21:11:34

"terakhir-diedit": "1331990905", // Edisi terakhir. "description": "Klik pada applet untuk menunjukkan menu gtk yang ditentukan secara peribadi", // Penerangan applet. "icon": "docky", // Ikon yang digunakan untuk penerangan applet. Sebagai contoh menukar nama "docky" menjadi "terminal", "folder". "uuid": "black" // Folder tempat fail metadata.json kami disertakan "name": "Custom menu gtk" // Nama applet.

Nota: Untuk menetapkan nama baru, lihat nama ikon Gnome atau Cinnamon atau tema ikon lain, pergi ke alamat sistem fail.

/usr/share/icons

Imej Applet yang dibuat

  lKxpdkS

Qt, Gtk, Vala dan bahasa lain yang digunakan untuk membuat applet untuk Cinnamon atau Gnome

Mari lihat lokasi applet kami untuk Cinnamon

Lokasi applet kami diberikan di alamat berikut:

/.local/share/cinnamon/applets

dalam

/usr/share/cinnamon/applets

nerd

Komposisi applet kami

beta

Kami meneruskan untuk menentukan applet.js 

kod

applet.js

Memulakan kod applet.js

Tangkapan Skrin - 140314 - 21:30:48

Akhir applet.js

Sekarang mari kita lihat kod applet.js dan menerangkan pernyataannya.

Kod yang ditulis hampir sama dengan contoh sebelumnya yang ditulis dengan Javascript.
Hanya isyarat yang telah diubah, yang akan memanggil pelaksanaan automatik kami.

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

Pelaksanaan automatik kami boleh ditulis dengan Qt, Gtk, Gtkmm, wxWidget, Vala, dll. bahasa yang boleh dibuat sendiri yang boleh dilaksanakan. Pelaksanaan automatik kami dipanggil Menu dan terdapat dalam folder Qtmenu.

beta

Kita juga boleh menggunakan bahasa pengaturcaraan lain yang mempunyai ikatan untuk Gtk seperti PyGTK, Ruby Gtk, Perl Gtk, dll. yang boleh digunakan menggunakan skrip untuk melaksanakan kod yang ditulis dalam bahasa-bahasa tersebut. Prinsipnya selalu sama untuk memanggil program, membuat menu pop timbul dan tetingkap pop timbul mengikut keperluan kita.

Mari lihat kod pelaksanaan automatik kami yang ditulis dengan Qt

qt

Kami meneruskan untuk menentukan metadata.json

LP0ol8b

mongo

Kod ditulis dengan cara yang sama seperti contoh sebelumnya

Imej applet dibuat dengan Qt

apa

Imej Applet yang dibuat dengan Gtk 3.10

Berikut adalah contoh kecil applet yang menggunakan executable yang ditulis dalam Gtk, dalam hal ini kita mengambil menu myGtkMenu yang digunakan di OpenBox.

Ini adalah menu yang boleh dilaksanakan sendiri.

megtk

Muat turun tutorial dan contohnya


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   aiolia kata

    Artikel Menarik ...

    1.    marianogaudix kata

      Terima kasih . Saya adalah bahawa kita belajar sedikit setiap hari.

  2.   hadiah kata

    Sangat bagus, saya menyukainya, saya selalu ingin mengetahui bagaimana applet jenis ini dibuat

  3.   Malaikat Araya kata

    Pembetulan kecil. Gettext tidak spesifik untuk Cinnamon seperti yang dinyatakan dalam artikel, itu adalah perpustakaan yang memungkinkan terjemahan automatik mungkin dan dari templat.

  4.   MSX kata

    Sangat bagus tutorial dan semua itu tetapi yang penting anda tidak meletakkannya: pautan ke kertas dinding?

    1.    marianogaudix kata

      Muat turun wallpaper Linux Mint 16 Petra.
      Pakej ini dipanggil mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla kata

    Artikel yang sangat menarik. Yang benar adalah bahawa saya selalu bertanya-tanya bagaimana applet ini dibuat. Mungkin saya terdorong untuk membuat applet pemain mini untuk MPD atau yang serupa.

    Terima kasih kerana berkongsi!

  6.   matias kata

    Hebatnya, saya baru memikirkan cara mengubah suai kayu manis nm-applet (pengurus rangkaian), sehingga berubah warna apabila saya tidak mempunyai akses internet, (saya mempunyai kad wifi), dan ini membantu saya untuk mengorientasikan diri sedikit.

  7.   matiasbatero17 kata

    Baiklah di sana Marian, saya tidak tahu anda menghantar di sini. Salam.

    1.    marianogaudix kata

      Semasa anda berjalan, Matute… .. Saya selalu berjalan di bahagian-bahagian ini. salam

  8.   Lolbimbo kata

    Artikel yang bagus.

  9.   honovan kata

    fail tidak dijumpai dinyahaktifkan kerana pelanggaran hak cipta.

    Apa yang saya maksudkan ialah jika anda memilikinya di sana, bolehkah anda memuat naiknya lagi ???.

    terima kasih.