我绑定了一些密钥来执行脚本。我只需要在Visual Studio Code窗口聚焦时才能激活绑定。
我看到了Hammerspoon过滤器的功能,但我不知道该如何使用。
应用程序名称:Code
hs.hotkey.bind({"ctrl"}, "b", function()
local codeWindowFilter = hs.window.filter:setAppFilter('Code')
codeWindowFilter:isAppAllowed("Code", function()
mycode here
end)
end)
但出现错误attempt to call a nil value (method 'setAppFilter')
这是正确的方法吗? 有没有办法将所有绑定放入批准的过滤器中?
提前打招呼
答案 0 :(得分:0)
根据此处的文档(http://www.hammerspoon.org/docs/hs.window.filter.html):
您需要遵循以下结构:
local wf=hs.window.filter
wf.default:setAppFilter('My IDE',{allowTitles=1})
OR
创建一个新的窗口过滤器,如下所述:
虽然您可以自定义默认的windowfilter,但通常建议通过mywf = hs.window.filter.new()在本地副本上进行自定义。默认的windowfilter可能会在多个Hammerspoon模块中使用,更改它可能会带来意想不到的后果...
因此,将您的代码更改为:
local codeWindowFilter = hs.window.filter.new():setAppFilter('Code')
.new()方法创建一个新的窗口过滤器。 :setAppFilter在新对象上调用一个方法,然后返回修改后的窗口过滤器对象。
答案 1 :(得分:0)
最终的解决方案是:
local frontmostApplication = hs.application.frontmostApplication()
if frontmostApplication and frontmostApplication:name() == "Code" then
{my code here}
end
答案 2 :(得分:0)
您可以像这样过滤应用
RecyclerView.