Come posso aggiungere un evento o un altro metodo per ascoltare i tasti su un'estensione shell gnome? per esempio. mostra una finestra di dialogo con ogni pressione del tasto che mostra il tasto premuto?Come gestire gli eventi della tastiera nelle estensioni della shell di gnome?
Non riesco a trovare alcun esempio. Lo documentation menziona un modulo keyboard
, ma con tale ricerca di nomi comuni è difficile.
Class explanation
...
- General utils
- Keyboard: Manage and define the keyboard events, etc. for gnome shell.
(leggere sopra come una citazione dalla documentazione collegate sopra. È designato come codice perché lo stile citazione per qualche motivo non conservano interruzioni di riga in questo sito)
ho trovato alcune estensioni utilizzando il muggito codice per risultati simili a quello che sto chiedendo, ma io, ancora una volta, non è riuscito a trovare della documentazione per le classi e metodi specifici:
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 });
});
Inoltre, nessuna classe denominata keyboard
ovunque ci ...
-
edit1: più ricerca ... penso che potrebbe essere necessario utilizzare l'api Clutter
. ma ancora, non molti esempi o documentazione per questo. il più lontano che sono andato era questo
edit2: più ricerca. guardando il codice sorgente della shell di gnome, sull'albero ui principale, penso che la risposta sia usare il barelly menzionato oggetto global
che è disponibile per il codice di estensione. per esempio.
global.connect('key-press-event', function(if, i, know, the, signature){});
rilevanti: https://askubuntu.com/questions/86840/documentation-for-gnome-shell-extension-development – gcb
trovato il modulo di tastiera: https://git.gnome.org/browse/gnome-shell/tree/js/ui/keyboard.js – gcb