我想为“最近的文档”Cinnamon 小程序分配一个快捷键,但我不太清楚该小程序的命令是什么。
答案1
我也有同样的问题,并且 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"
}
(请注意复制逗号,如果你忘记了,就会遇到麻烦)
对我来说,这是可行的(到目前为止,没有出现重大问题),但我既不懂 javascript,也不懂 json,而且需要进行大量的复制粘贴以及尝试和错误。
所以,这可能只是一个起点,而不是最终的答案。
答案2
简短的回答:我不知道有什么办法。
Cinnamon 小程序不是二进制应用程序或脚本,而更类似于插件使用一些 JSON 元数据在 javascript 中实现。查看系统范围内安装的小程序的外观/usr/share/cinnamon/applets/
。