linux C Gnome Shell扩展密钥绑定
发布时间:2023-12-18 08:17:46 所属栏目:Linux 来源:DaWei
导读: (全局)将键组合(例如< Super> A)绑定到gnome shell扩展中的函数的最简单方法是什么?
检查了几个扩展,我遇到了以下代码:
global.display.add_keybinding('random-name',new Gio.Settings(
检查了几个扩展,我遇到了以下代码:
global.display.add_keybinding('random-name',new Gio.Settings(
(全局)将键组合(例如< Super> A)绑定到gnome shell扩展中的函数的最简单方法是什么? 检查了几个扩展,我遇到了以下代码: global.display.add_keybinding('random-name',new Gio.Settings({schema: 'org.gnome.shell.keybindings'}),Meta.KeyBindingFlags.NONE,function() { /* ... some code */ });我知道组合键是由schema参数指定的,并且可以创建描述组合的XML文件.有更简单的方法吗?
最佳答案
以下是我的答案here的副本 TL; DR 这是一堂课: KeyManager: new Lang.Class({ Name: 'MyKeyManager',_init: function() { this.grabbers = new Map() global.display.connect( 'accelerator-activated',Lang.bind(this,function(display,action,deviceId,timestamp){ log('Accelerator Activated: [display={},action={},deviceId={},timestamp={}]',display,timestamp) this._onAccelerator(action) })) },listenFor: function(accelerator,callback){ log('Trying to listen for hot key [accelerator={}]',accelerator) let action = global.display.grab_accelerator(accelerator) if(action == Meta.KeyBindingAction.NONE) { log('Unable to grab accelerator [binding={}]',accelerator) } else { log('Grabbed accelerator [action={}]',action) let name = Meta.external_binding_name_for_action(action) log('Received binding name for action [name={},action={}]',name,action) log('Requesting WM to allow binding [name={}]',name) Main.wm.allowKeybinding(name,Shell.ActionMode.ALL) this.grabbers.set(action,{ name: name,accelerator: accelerator,callback: callback }) } },_onAccelerator: function(action) { let grabber = this.grabbers.get(action) if(grabber) { this.grabbers.get(action).callback() } else { log('No listeners [action={}]',action) } } })这就是你如何使用它: let keyManager = new KeyManager() keyManager.listenFor("(编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- linux – warning:GDB:无法设置控制终端:参数无效
- linux – 是否可能让chroot jail在监狱外共享目录(只读)?
- linux – Arduino上传错误“stk500_recv():程序员没有响应
- linux C git push之后,项目从gitweb中消失了
- 在Linux上,如果点击,我可以获得不同的键吗?
- Linux:python:在raw_input()之前清除输入缓冲区
- linux – 替换属性文件中的环境变量
- 如何在linux上显示最后修改时间
- linux – lockfile-create在bash脚本中不起作用
- Linux系统调用表或汇编语言中的cheetsheet
推荐文章
站长推荐