Answers:
我有同样的问题,kynan已经/已经预期了答案-如果有点简短:
您必须通过快捷方式更改要访问的小程序,以使其对所述快捷方式做出反应。至少这是我所做的。
我的目标是通过快捷方式访问“ Windows快速列表”,因此将“带有关闭按钮的窗口快速列表”作为模板。
在applet.js的_init中,添加了以下几行:
this.settings.bindProperty(Settings.BindingDirection.IN,
"keybinding-def",
"keybinding",
this.on_keybinding_changed,
null);
this.actor.connect('key-press-event',
Lang.bind(this,
this._onSourceKeyPress));
this.on_keybinding_changed();
当然需要两个处理程序:
_onSourceKeyPress: function(actor, event) {
let symbol = event.get_key_symbol();
if (symbol == Clutter.KEY_space || symbol == Clutter.KEY_Return) {
this.menu.toggle();
return true;
} else if (symbol == Clutter.KEY_Escape && this.menu.isOpen) {
this.menu.close();
return true;
} else if (symbol == Clutter.KEY_Down) {
if (!this.menu.isOpen)
this.menu.toggle();
this.menu.actor.navigate_focus(this.actor, Gtk.DirectionType.DOWN, false);
return true;
} else
return false;
},
on_keybinding_changed: function() {
Main.keybindingManager.addHotKey("must-be-unique-id",
this.keybinding,
Lang.bind(this,
this.on_hotkey_triggered));
},
最后,为了有机会定义可自定义的热键,我在settings.json中添加了以下几行(上述on_keybinding_changed也可以预期):
,
"keybinding-def" : {
"type" : "keybinding",
"description" : "Shortcut to open/close the windolist ",
"default" : "Super_R"
}
(请注意也要复制逗号,如果您忘记了它,将会遇到麻烦)
对我来说,这行得通(到目前为止,没有什么大的麻烦),但是我都不是精通json的javascript,并且很多是try&error的复制和粘贴。
因此,这可能仅仅是一个起点,而不是最终的答案。
简短的回答:我不知道一种方法。
肉桂小程序不是二进制应用程序或脚本,而是类似于使用JSON元数据在javascript中实现的插件。看一下系统范围内已安装的applet的/usr/share/cinnamon/applets/
外观。