Коллеги, озадачился созданием своего расширения для Gnome 3.
Естественно начал с генерации шаблона:
$ gnome-shell-extension-tool --create-extension
Создались файлы шаблона.
stylesheet.css
extension.js
metadata.json
Из названий понятно для чего эти файлв предназначены.
extension.jsВ первых строках
extension.js идет определение интерфейсов, используемых в скрипте.
Например:
const St = imports.gi.St;
const Mainloop = imports.mainloop;
const Main = imports.ui.main;
const Soup = imports.gi.Soup;
const Lang = imports.lang;
const Config = imports.misc.config;
const MessageTray = imports.ui.messageTray;
const ExtensionSystem = imports.ui.extensionSystem;
const FileUtils = imports.misc.fileUtils;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Gettext = imports.gettext.domain('gnome-shell-extension-updater');
const _ = Gettext.gettext;
Список библиотек и функций, которые используются в расширениях для Gnome 3 находится на
Un-official Seed DocumentationДокументировано пока очень слабо, но это лучше, чем ничего.
Далее обязательно должны быть определены три функции:
function init(meta) {
}
function enable() {
}
function disable() {
}