2015-08-12 4 views
1

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

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

Включение этого расширения после помещения кода внутри ~/.local/share/gnome-shell/extensions/[email protected]/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(); 
} 
+1

Вместо запуска 'GtkApplication ', вы считали, что просто запускаете приложение в другом процессе? – meskobalazs

+0

@meskobalazs Вы имеете в виду, если хотите отменить другой процесс? Как мне это сделать в javascript? – JayStrictor

+0

Если бы я точно знал, я бы написал ответ :) Но у GLib и GIO есть API для этого. – meskobalazs

ответ

1

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

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

const Util = imports.misc.util; 
Util.spawn() 

 Смежные вопросы

  • Нет связанных вопросов^_^