Как запустить GtkApplication из расширения gnome-shell?

Моя цель — запустить новое приложение GtkApplication, когда пользователь нажимает кнопку на верхней панели Gnome. Кнопку на верхней панели можно сделать с помощью расширения gnome-shell, но у меня возникают трудности с открытием GtkApplication.

Поэтому на данный момент следующий код должен просто запускать GtkApplication.

Включение этого расширения после размещения кода внутри ~/.local/share/gnome-shell/extensions/test@test/extension.js всегда приводит к SIGSEGV сигналу gnome-shell.

const Lang = imports.lang;
const Gtk = imports.gi.Gtk;
const TestApp = new Lang.Class({
    Name: 'TestApp',
    Extends: Gtk.Application,
    _init: function() {
        this.parent({ application_id: 'testapp.apptesttt' });
    },
    vfunc_activate: function() {
        //this.window.present();
    },
});
function init() {
}
let _app;
function enable() {
    _app = new TestApp();
    _app.register(null);
}
function disable() {
    _app.quit();
}

person JayStrictor    schedule 12.08.2015    source источник
comment
Рассматривали ли вы вместо запуска GtkApplication просто запуск приложения в другом процессе?   -  person meskobalazs    schedule 12.08.2015
comment
@meskobalazs Вы имеете в виду, что разветвляете другой процесс? Как бы я сделал это в javascript?   -  person JayStrictor    schedule 13.08.2015
comment
Если бы я знал точно, я бы написал ответ :) Но у GLib и GIO есть API для этого.   -  person meskobalazs    schedule 13.08.2015


Ответы (1)


Я, наверное, немного опаздываю на вечеринку, но на случай, если кто-то еще окажется здесь:

Ответ, скорее всего, лежит в пределах imports.misc.util:

const Util = imports.misc.util;
Util.spawn()
person Elbenfreund    schedule 22.09.2016