Мы собираемся создать простой апплет для Соевые свечи Корица. Для начала мы должны знать, что Соевые свечи Корица предлагает разные типы апплетов:
- Текстовый апплет (отображается метка на панели)
- ЗначокApplet (отображается значок на панели)
- ТекстЗначокАпплет (с указанием значка и метки на панели)
- Апплет (для хардкорных разработчиков, которые показывают пустое поле, которое вы можете заполнить самостоятельно)
В этом руководстве мы просто хотим отобразить значок на панели, поэтому мы будем использовать «IconApplet». Чтобы запрограммировать наш апплет на Корица или Гном нам нужно знать кое-что о программировании Javascript
Расположение нашего кода.
Сначала посмотрим, где находится наш файл. Расположение нашего апплета указано по следующим адресам:
/.local/share/cinnamon/applets
о ан /usr/share/cinnamon/applets
Файлы, составляющие наш апплет.
Переходим к определению applet.js
Теперь перейдем к рассмотрению кода апплет.js и объясните каждое его предложение:
начало кода applet.js
Давайте посмотрим каждое из предложений нашего предыдущего кода
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 (ориентация); }
Затем мы определяем конструктор нашего апплета, давайте посмотрим на наш класс или класс:
Продолжим определение каждого из предложений
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
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
"last-edited": "1331990905", // Последнее издание. "description": "Щелкните по апплету, чтобы отобразить персонализированное меню gtk", // Описание апплета. "icon": "docky", // Иконки, используемые для описания апплета. В качестве примера измените имя «доки» на «терминал», «папка». "uuid": "black" // Папка, в которую включен наш файл metadata.json "name": "Custom gtk menu" // Имя апплета.
Примечание: Чтобы задать новые имена, посмотрите имя значков Gnome или Cinnamon или любую другую тему значков, перейдите по адресу файловой системы.
/usr/share/icons
Изображение созданного апплета
Qt, Gtk, Vala и другие языки, используемые для создания апплета для Cinnamon или Gnome.
Посмотрим, где находится наш апплет для Cinnamon.
Расположение нашего апплета указано по следующим адресам:
/.local/share/cinnamon/applets
о ан
/usr/share/cinnamon/applets
Состав нашего апплета
Переходим к определению applet.js
Запуск кода applet.js
Конец 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.
Мы также можем использовать другие языки программирования, которые имеют привязки для Gtk, например, PyGTK, Ruby Gtk, Perl Gtk и т. Д. который можно использовать с помощью сценария для выполнения кода, написанного на этих языках. Принцип всегда один и тот же: вызывать программы, создавать всплывающие меню и всплывающие окна в соответствии с нашими потребностями.
Давайте посмотрим на код нашего автоисполняемого файла, написанный на Qt
Переходим к определению metadata.json
Код написан так же, как в предыдущем примере.
Образ апплета, созданный с помощью Qt
Изображение апплета, созданного с помощью Gtk 3.10
Я оставляю вам небольшой пример апплета, который использует исполняемый файл, написанный на Gtk, в данном случае мы берем меню myGtkMenu, используемое в OpenBox.
Это самоисполняющееся меню.
Загрузите руководство и примеры
Интересная статья ...
Спасибо . Я считаю, что мы учимся немного каждый день.
Очень хорошо, мне это нравится, я всегда хотел знать, как делаются такие апплеты
Небольшая поправка. Gettext не является чем-то особенным для Cinnamon, как говорится в статье, это библиотека, которая делает возможными автоматический перевод на основе шаблонов.
Очень хороший учебник и все такое, но главное, что вы не поставили: ссылку на обои?
Загрузите обои Linux Mint 16 Petra.
Пакет называется мята-фоны-петра: http://packages.linuxmint.com/list.php?release=Petra
Очень интересная статья. По правде говоря, мне всегда было интересно, как создавались эти апплеты. Может быть, меня посоветуют создать апплет мини-плеера для MPD или что-то подобное.
Спасибо за участие!
Отлично, я просто выясняю, как изменить нм-апплет корицы (сетевой менеджер), чтобы он менял цвет, когда у меня нет доступа в Интернет (у меня есть карта Wi-Fi), и это помогает мне сориентироваться немного.
Что ж, Мэриан, я не знала, что вы пишете здесь. С уважением.
Когда ты идешь, Матуте ... Я всегда хожу по этим местам. Ура
Хорошая статья.
файл не найден был деактивирован за нарушение авторских прав.
Я имею в виду, что если он у вас там есть, вы можете загрузить его снова ???. Пожалуйста.
благодарю вас.