Мини-руководство: создание апплетов для корицы

Мы собираемся создать простой апплет для Соевые свечи Корица. Для начала мы должны знать, что Соевые свечи Корица предлагает разные типы апплетов:

  • Текстовый апплет (отображается метка на панели)
  • ЗначокApplet (отображается значок на панели)
  • ТекстЗначокАпплет (с указанием значка и метки на панели)
  • Апплет (для хардкорных разработчиков, которые показывают пустое поле, которое вы можете заполнить самостоятельно)

В этом руководстве мы просто хотим отобразить значок на панели, поэтому мы будем использовать «IconApplet». Чтобы запрограммировать наш апплет на Корица или Гном нам нужно знать кое-что о программировании Javascript

Расположение нашего кода.

Сначала посмотрим, где находится наш файл. Расположение нашего апплета указано по следующим адресам:

/.local/share/cinnamon/applets о ан /usr/share/cinnamon/applets

Корица - яблоко

Файлы, составляющие наш апплет.

Корица, яблоко 2

Переходим к определению applet.js

код

апплет.js

Теперь перейдем к рассмотрению кода апплет.js и объясните каждое его предложение:

начало кода applet.js

код апплета

код javascript

Давайте посмотрим каждое из предложений нашего предыдущего кода

const Lang = imports.lang; / * Мы вызываем библиотеки Gtk и Lang, они являются базовой частью любого приложения GNOME, они позволяют нам создавать окна, виджеты и связывать их. * / Const Applet = imports.ui.applet; / * Мы вызываем библиотеку Applet, которая позволяет нам создавать апплет для Cinnamon и Gnome и в то же время предоставляет нам его свойства и функции. * / Const GLib = imports.gi.GLib; / * GLib - это вспомогательная библиотека, она позволяет нам делать что-то в GNOME, например, говорить, где находится файл hellognome.html, это библиотека, отвечающая за сигналы. * / Const Gettext = imports.gettext.domain ('cinnamon-applets '); const _ = Gettext.gettext; // Библиотека Gettext, которая позволяет нам импортировать характеристики рабочего стола Cinnamon. const PopupMenu = imports.ui.popupMenu; / * PopupMenu - это библиотека для использования менеджера меню, она позволяет нам вызывать виджет всплывающего меню, обычно используемый в апплетах. * / Функция MyApplet (ориентация) {this._init (ориентация); }

Затем мы определяем конструктор нашего апплета, давайте посмотрим на наш класс или класс:

класс gjs

Продолжим определение каждого из предложений

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Мы определяем наш класс или класс _init: функция (ориентация) {Applet.IconApplet.prototype._init.call (это, ориентация); / * Устанавливаем ориентацию через Cinnamon. Мы устанавливаем, находится ли панель апплета вверху или внизу (это влияет на ориентацию меню апплета). * / Try {// Что-то делать} Catch (e) {// Что происходит при возникновении ошибки} / * Мы используем команду try / catch, чтобы отловить любые ошибки, которые могут возникнуть в нашем апплете, и убедиться, что они записаны в глобальный журнал ошибок. Таким образом, если что-то пойдет не так, вы увидите ошибку в Looking Glass: нажмите Alt F2, введите «lg» и щелкните вкладку «Ошибки». * / This.menuManager = new PopupMenu.PopupMenuManager (this) ; // Создаем всплывающее меню и устанавливаем диспетчер меню this.menu = new Applet.AppletPopupMenu (это, ориентация); // создаем меню. this.menuManager.addMenu (this.menu); // Добавляем меню во всплывающее меню. this.makeMenu (); // пункт меню makeMenu, мы создаем пункт меню с именем makeMenu. this.buildContextMenu (); // buildContextMenu, мы создаем элемент меню с именем buildContextMenu. this.set_applet_icon_name ("папка"); / * Мы создаем апплет, этот случай уникален, выбранный значок - это папка или папка, мы также можем установить текстовый апплет, если захотим. * /

В качестве примера измените имя «папка» на «терминал», «доки», чтобы установить новые имена. См. Имя значков Gnome или Cinnamon или любую другую тему значков, войдите в адрес.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Щелкните здесь, чтобы закрыть окно")); // Catch для выявления ошибок, которые могут возникнуть в нашем апплете. поймать (е) {global.logError (е); } makeMenu: function () {this.menu.addMenuItem (новый PopupMenu.PopupMenuItem ("Тестовое сообщение", {reactive: true})); }, / * Мы определяем имя элемента меню makeMenu и его характеристики. В этом случае меткой является "Тестовое сообщение". Мы определим {reactive: true}. Мы установим, что фон элемента меню изменится, когда указатель пройдет над элементом меню через значение true, если это ложь, произойдет обратное. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Мы определяем имя элемента меню makeMenu и его характеристики. В данном случае метка - "show". on_applet_clicked: function (event) {this.menu.toggle ();} // Сигнал, излучаемый апплетом, для вызова функции всплывающего меню main (метаданные, ориентация) {let myApplet = new MyApplet (ориентация); return myApplet;} / * Наконец , нам просто нужно добавить «основную» функцию, которая, вероятно, будет одинаковой в каждом апплете, она создает экземпляр нашего апплета и возвращает его в Cinnamon. * / // Завершаем цикл return myApplet;

Переходим к определению metadata.json

LP0ol8b

Скриншот - 140314 - 21:11:34

"last-edited": "1331990905", // Последнее издание. "description": "Щелкните по апплету, чтобы отобразить персонализированное меню gtk", // Описание апплета. "icon": "docky", // Иконки, используемые для описания апплета. В качестве примера измените имя «доки» на «терминал», «папка». "uuid": "black" // Папка, в которую включен наш файл metadata.json "name": "Custom gtk menu" // Имя апплета.

Примечание: Чтобы задать новые имена, посмотрите имя значков Gnome или Cinnamon или любую другую тему значков, перейдите по адресу файловой системы.

/usr/share/icons

Изображение созданного апплета

  lKxpdkS

Qt, Gtk, Vala и другие языки, используемые для создания апплета для Cinnamon или Gnome.

Посмотрим, где находится наш апплет для Cinnamon.

Расположение нашего апплета указано по следующим адресам:

/.local/share/cinnamon/applets

о ан

/usr/share/cinnamon/applets

умник

Состав нашего апплета

beta

Переходим к определению applet.js 

код

апплет.js

Запуск кода applet.js

Скриншот - 140314 - 21:30:48

Конец applet.js

Теперь давайте перейдем к коду applet.js и объясним его утверждения.

Написанный код практически такой же, как и в предыдущем примере, написанном на Javascript.
Изменился только сигнал, который вызовет наш автоисполняемый файл.

on_applet_clicked: функция (событие) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }

Наш автоисполняемый файл может быть написан с помощью Qt, Gtk, Gtkmm, wxWidget, Vala и т. Д. языки, на которых можно создавать самоисполняемые файлы. Наш автоисполняемый файл называется Menu и находится в папке Qtmenu.

beta

Мы также можем использовать другие языки программирования, которые имеют привязки для Gtk, например, PyGTK, Ruby Gtk, Perl Gtk и т. Д. который можно использовать с помощью сценария для выполнения кода, написанного на этих языках. Принцип всегда один и тот же: вызывать программы, создавать всплывающие меню и всплывающие окна в соответствии с нашими потребностями.

Давайте посмотрим на код нашего автоисполняемого файла, написанный на Qt

qt

Переходим к определению metadata.json

LP0ol8b

монго

Код написан так же, как в предыдущем примере.

Образ апплета, созданный с помощью Qt

Миноуг

Изображение апплета, созданного с помощью Gtk 3.10

Я оставляю вам небольшой пример апплета, который использует исполняемый файл, написанный на Gtk, в данном случае мы берем меню myGtkMenu, используемое в OpenBox.

Это самоисполняющееся меню.

мегтк

Загрузите руководство и примеры


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   айория сказал

    Интересная статья ...

    1.    марианогаудикс сказал

      Спасибо . Я считаю, что мы учимся немного каждый день.

  2.   подарок сказал

    Очень хорошо, мне это нравится, я всегда хотел знать, как делаются такие апплеты

  3.   Ангел Арайя сказал

    Небольшая поправка. Gettext не является чем-то особенным для Cinnamon, как говорится в статье, это библиотека, которая делает возможными автоматический перевод на основе шаблонов.

  4.   MSX сказал

    Очень хороший учебник и все такое, но главное, что вы не поставили: ссылку на обои?

    1.    марианогаудикс сказал

      Загрузите обои Linux Mint 16 Petra.
      Пакет называется мята-фоны-петра: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla сказал

    Очень интересная статья. По правде говоря, мне всегда было интересно, как создавались эти апплеты. Может быть, меня посоветуют создать апплет мини-плеера для MPD или что-то подобное.

    Спасибо за участие!

  6.   Матиас сказал

    Отлично, я просто выясняю, как изменить нм-апплет корицы (сетевой менеджер), чтобы он менял цвет, когда у меня нет доступа в Интернет (у меня есть карта Wi-Fi), и это помогает мне сориентироваться немного.

  7.   матиасбатеро17 сказал

    Что ж, Мэриан, я не знала, что вы пишете здесь. С уважением.

    1.    марианогаудикс сказал

      Когда ты идешь, Матуте ... Я всегда хожу по этим местам. Ура

  8.   лолбимбо сказал

    Хорошая статья.

  9.   Хонован сказал

    файл не найден был деактивирован за нарушение авторских прав.

    Я имею в виду, что если он у вас там есть, вы можете загрузить его снова ???. Пожалуйста.

    благодарю вас.