2015-08-12 2 views
1

Mon but est de démarrer une nouvelle application GtkApplication lorsque l'utilisateur appuie sur un bouton dans la barre supérieure de Gnome. Le bouton dans la barre supérieure peut être fait par une extension gnome-shell, mais j'ai du mal à ouvrir GtkApplication.Comment démarrer une GtkApplication depuis l'intérieur d'une extension gnome-shell?

Par conséquent, pour l'instant, le code suivant doit simplement démarrer l'application GtkApplication.

Activer cette extension après avoir placé le code à ~/.local/share/gnome-shell/extensions/[email protected]/extension.js entraîne toujours un signal SIGSEGV de 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

Au lieu de courir un 'GtkApplication ', avez-vous envisagé simplement de lancer l'application dans un processus différent? – meskobalazs

+0

@meskobalazs Vous voulez dire en supprimant un autre processus? Comment ferais-je cela en javascript? – JayStrictor

+0

Si je savais exactement, j'aurais écrit une réponse :) Mais GLib et GIO ont une API pour cela. – meskobalazs

Répondre

1

Je suis probablement un peu en retard à la fête, mais au cas où quelqu'un se termine autre ici:

La réponse la plus se trouve probablement dans imports.misc.util:

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