问题标签 [hammerspoon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
768 浏览

macos - Lua Hammerspoon:hs.window.focusedWindow() 分配给变量时为零

我在 osx 上使用了一个名为hammerspoon的自动化软件。

当我在hammerspoon的控制台中使用以下代码时,win为nil:

但实际上该函数返回一些值:

这种奇怪的行为会破坏所有窗口移动/调整大小的功能,例如:

Hammerspoon 给出了这个错误:

我不知道这个问题是我的电脑还是其他什么原因造成的。

我有 osx yosemite,版本 10.10.5 和hammerspoon 0.9.43。

更新:

我找到了错误的解决方案。这是由于 osx 的隐私设置。

解决方案:

但是,我仍然不明白为什么hs.window.focusedWindow()如果没有分配给变量会返回一些东西,而nil当它分配给变量时它会返回。

0 投票
1 回答
798 浏览

macos - 为什么hammerspoon不应该返回聚焦窗口零?

我试图使用hammerspoon来控制我的窗口(在MAC OSX 上)但遇到了一些问题。直接从入门页面我复制了将焦点窗口向左移动的代码:

然后,我回来时重新加载了我的配置并进行了尝试。不幸的是,它不起作用并打开hammerspoon控制台并出现以下错误:

它说我的变量为零,但我不明白为什么它应该为零。我尝试在变量 win 之后插入一个(我在hammerspoon 中假设是)一个打印语句hs.console.printStyledtext(win)来检查它,但这也会引发相同的错误,除了它nil在错误之前打印。

奇怪的是,一旦它专注于控制台,功能或代码“工作”(即向左移动 m 屏幕),但我没有尝试过其他任何事情。

有没有人见过这种类型的错误并能够修复它?


我确实看到了:

Lua Hammerspoon:hs.window.focusedWindow() 分配给变量时为零

似乎将变量从局部更改为全局没有任何区别,并且错误仍然存​​在。

0 投票
1 回答
408 浏览

macos - 在 Lua Hammerspoon 脚本中,如何在特定桌面上绘图?

我没有看到任何用于枚举桌面或将绘图移动到特定桌面的 API。

0 投票
1 回答
1511 浏览

lua - 以局部变量为参数调用匿名函数

我有一个创建对象的函数(在本例中为 Hammerspoon Notify 对象),我想将此对象作为参数传递给匿名函数,该函数本身就是函数调用的参数。

这是一个非常复杂的解释,但我认为一个例子可以说得很清楚。

的输出是n第一次打印正常(hs.notify: Title (0x7fbd2b5318f8)),但nil第二次,在匿名函数内部,它抛出一个错误:attempt to index a nil value (local 'n').

这是有道理的,因为我从来没有真正传递它。有没有办法传递它?hs.timer.doAfter调用的签名是hs.timer.doAfter(sec, fn) -> timer:(http://www.hammerspoon.org/docs/hs.timer.html#doAfter

0 投票
1 回答
483 浏览

macos - 使用 Hammerspoon 切换 MRU 浏览器选项卡(Lua+Mac 问题)

我下定决心要让最近使用的选项卡切换适用于 Chrome。为此,我安装了 CLUT Chrome 浏览器扩展程序,它当前映射 alt-w 以切换到最后一个选项卡,并安装了 Hammerspoon,它允许拦截系统击键。

在 init.lua 我有这个代码:

但是,我在 Hammerspoon 中收到此错误:

我搜索了,但无法弄清楚这个错误是什么意思。

编辑 - 这是最终解决方案,如果其他人想要在 Mac 上切换 MRU 选项卡:

0 投票
1 回答
367 浏览

lua - 使用来自 Hammerspoon 的图像库

我想在我的 Hammerspoon 配置文件中使用更复杂的图形或 GUI 小部件库,以获取用户输入并在屏幕上进行比 Hammerspoon 默认允许(据我所知)更高级的绘图。我是 Lua 和 Hammerspoon 的新手,到目前为止,我一直无法弄清楚如何让它工作。(在屏幕上进行简单的绘图不是问题,所以几何形状的例子没有帮助。我已经可以毫无困难地做到这一点。)

我最初认为为构建游戏而设计的 Lua 库之一会比我可能需要的更多,并研究了 love2d,但它似乎无法以任何直接的方式与 Hammerspoon 一起使用。

举两个我想做的事情的具体例子:

  1. 我想显示一个对话框,用户可以在其中输入两个值,以指定他们在屏幕网格中需要多少行和多少列。一个原生的 Cocoa 对话框会更好,但是用 Lua 在屏幕上绘制一些图形就可以了,只要图像的细节对我来说是抽象的,我可以在对话框中定义文本、字段和按钮。

  2. 我想在指定的网格段周围绘制一个带有弯曲角和阴影的虚线矩形,作为用户完成某个命令时窗口将移动的位置的预览。

还有很多,但任何能让我做这些事情的东西都应该让我做任何我想做的事情。

0 投票
3 回答
736 浏览

automation - 如何通过hammerspoon检查用户是否通过wifi或LAN连接

我正在考虑有一个hammerspoon wifi watcher,它会定期检查并在wifi未连接时禁用wifi。

以下脚本执行此操作,

在这里,我遇到了一个问题,例如如果用户已经通过 LAN 连接了怎么办。此时我不需要启用此观察程序(以停止打开和关闭 wifi 的切换)。所以我需要的是,是否有任何 API 可以告诉我用户是否已经通过 LAN 连接或至少连接到互联网?

我清楚了吗?

0 投票
1 回答
231 浏览

file - 写入操作后数据未出现在日志文件中

我有以下代码:

此代码会在您在 macOS 上启动应用程序时看到。我希望程序将时间、日期和应用程序的名称记录在一个文件中,以便我可以看到我启动了哪些应用程序以及何时启动。

似乎没有任何东西可以登录到我的文本文件中。为什么?

0 投票
1 回答
1290 浏览

lua - 我的 Hammerspoon 脚本中的键重复延迟

我将我的 CAPSLOCK 绑定到 F18(karabiner)作为修饰键。我正在尝试模拟 CAPSLOCK+h、j、k、l 来充当 VIM 移动键。一切正常,但重复时存在延迟问题。也就是说,当我按下 CAPSLOCK+h 时它非常慢,它应该模拟重复按下“<-”键,但它非常延迟并且每秒只发送一个。关于为什么会发生这种情况的任何想法?我init.lua的如下:

0 投票
0 回答
889 浏览

hammerspoon - 使用 Hammerspoon 将超级键/大写锁定重新映射到 F18 时,是否可以将其与修饰符一起使用

我的问题如下:我使用 Karabiner Elements 将我的大写锁定重新映射到 F18,然后 Hammerspoon 使用 F18 作为“超级键”来执行特定于应用程序的快捷方式。

我当前的代码如下所示:

当使用超级键在任何地方都有类似 vim 的导航时,我也将 HJKJ 映射到箭头键:

所以HYPER-H基本上输出左箭头键。但我的问题是我还想HYPER-COMMAND-H输出 command-left-arrow-key 因为这会将光标带到行首。

我有它看起来像这样。但是,问题是 HYPER-COMMAND-H 有效,但 COMMAND-HYPER-H无效。如果我弄乱了修饰符的顺序(这通常无关紧要),它会完全中断,这非常不方便。

我将如何做到这一点,以便顺序无关紧要?F18 不是正确的修饰键,所以我遇到了真正的麻烦。