Wie kann ich ein Ereignis oder eine andere Methode hinzufügen, um Tastendrucke auf einer gnome-Shell-Erweiterung zu hören? z.B. einen Dialog mit jedem Tastendruck anzeigen, der die gedrückte Taste zeigt?Wie behandelt man Tastaturereignisse in gnome Shell-Erweiterungen?
Ich kann kein Beispiel finden. Die documentation erwähnt ein keyboard
-Modul, aber mit dieser allgemeinen Namenssuche ist schwer.
Class explanation
...
- General utils
- Keyboard: Manage and define the keyboard events, etc. for gnome shell.
(liest oben als Zitat aus den oben verlinkten Dokumenten. Es wird als Code-Stil, weil das Zitat Styling aus irgendeinem Grunde erhält keine Zeilenumbrüche in dieser Seite)
ich einige Erweiterungen gefunden die mit Balg-Code für ähnliche Ergebnisse zu, was ich frage, aber ich wieder gescheitert docs für die spezifischen Klassen und Methoden zu finden:
workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) {
this._pickWorkspace = false;
this._pickWindow = false;
this._keyPressEventId = global.stage.connect('key-press-event', Lang.bind(this, this._onKeyPress));
this._keyReleaseEventId = global.stage.connect('key-release-event', Lang.bind(this, this._onKeyRelease));
connectedSignals.push({ obj: global.stage, id: this._keyPressEventId });
connectedSignals.push({ obj: global.stage, id: this._keyReleaseEventId });
});
auch keine Klasse keyboard
überall dort genannt ...
-
edit1: mehr suchen ... ich denke, ich muss möglicherweise die Clutter
api verwenden. aber wieder, nicht viel Beispiele oder Dokumentation dafür. Am weitesten ging ich das war
edit2: mehr suchen. schau auf den Gnome-Shell-Quellcode, in der Haupt-ui-Baum, ich denke, die Antwort ist die Verwendung der bloßen erwähnten global
Objekt, das für den Erweiterungscode verfügbar ist. z.B.
global.connect('key-press-event', function(if, i, know, the, signature){});
relevant: https://askubuntu.com/questions/86840/documentation-for-gnome-shell-extension-development – gcb
das Tastaturmodul gefunden: https://git.gnome.org/browse/gnome-shell/tree/js/ui/keyboard.js – gcb