如何添加事件或其他方法来监听 gnome shell 扩展上的按键?例如,每次按键都显示一个对话框,显示按下的键?
我找不到任何例子。文档中提到了一个模块,但使用该keyboard
通用名称搜索很困难。
Class explanation
...
- General utils
- Keyboard: Manage and define the keyboard events, etc. for gnome shell.
(阅读上面链接的文档中的引用。它被设置为代码,因为引用样式由于某种原因不保留本站点中的换行符)
我使用波纹管代码找到了一些扩展,其结果类似于我所要求的结果,但我再次未能找到特定类和方法的文档:
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 });
});
此外,那里的任何地方都没有命名类keyboard
......
--
编辑1:更多搜索......我想我可能不得不使用Clutter
api。但同样,没有太多的例子或文档。我去的最远的是这个
编辑2:更多搜索。在主 ui 树上查看 gnome shell 源代码,我认为答案是使用global
可用于扩展代码的几乎没有提到的对象。例如
global.connect('key-press-event', function(if, i, know, the, signature){} );