问题标签 [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 回答
532 浏览

keystroke - Hammerspoon:不断向一个应用程序发送击键,同时正常使用其他应用程序

好的,所以我有一个带有 Hammerspoon 的脚本,可以为我执行按键操作。简单的例子:

我知道我可以过滤此脚本以仅在特定应用程序中工作,但我的问题是:是否可以将这些击键发送到一个应用程序,同时在另一个应用程序中正常使用我的物理键盘?就像在“后台”发送击键一样,所以它们没有在我当前使用的应用程序中注册。

0 投票
0 回答
109 浏览

macos - Hammerspoon 键重复

我很高兴我找到了锤子勺。我遇到了从 windows 到 mac os 的问题。我过去一直在使用自动热键,并且在玩魔兽世界时拥有这个我不能没有的脚本。我手部受伤,没有以下脚本无法玩:

它所做的只是在按住它的同时重复字母 r。我在魔兽世界中使用了一个名为 gnomesequenceenhanced 的插件来发挥我的能力。脚本一遍又一遍地使用相同的按钮,直到释放我的能力。

如果你能得到这个,我会永远感激不尽,这样我就可以在配置中上传和使用它并保存 init.lua

0 投票
1 回答
115 浏览

lua - 将工作 lua 代码(用于锤子勺)翻译成茴香;预期的用户数据类型

警告:我并不真正了解 lua 或茴香,尽管我在类 lua 语言(python 等)和类茴香语言(clojure、elisp 等)方面确实有很多经验。

但是:我正在使用hammerspoon来管理我的mac 上的外部显示器配置。我在我的 init.lua 文件中有以下正确工作的代码,供hammerspoon 获取我的外部显示器并将其切换为垂直:

但后来我意识到我想使用预先构建的模态菜单工具包spacehammer,它基本上就像hammerspoon 的 spacemacs ——但它是用 Fennel 编写的。好的,我喜欢 lisp,我可以在 lisp 中处理配置文件,对吧?

所以首先我让 spacehammer 工作,并验证默认配置是否正常工作并且不会引发任何错误。查看。

然后我转到我简单的现有函数的移植:我将我的 lua 函数转换为名称略有不同的 Fennel 函数:

正确的?这是您的基本 lisp 翻译,应该可以正常工作。但是当我尝试运行它时,突然间我收到了来自 c-land 的错误:

2021-02-19 17:24:59: 17:24:59 错误:LuaSkin:hs.timer 回调错误:/Users/myhomedir/.spacehammer/config.fnl:24:错误:参数 1 的“数字”类型不正确(预期的用户数据)堆栈回溯:[C]:在字段“旋转”/Users/myhomedir/.spacehammer/config.fnl:24:在函数中</Users/myhomedir/.spacehammer/config.fnl:22>

有趣的是,回溯中的行号根本不正确:在 config.fnl 中,这些行是注释。但我认为它必须是新功能,因为这就是我所做的全部更改,并且在尝试运行它时触发了错误。rotate但是我试图调用的hammerspoon方法肯定需要一个数字,而不是任何“用户数据”......

0 投票
0 回答
88 浏览

macos - 如何用锤子勺绑定蓝牙耳机控制点击?

我正在尝试在我的蓝牙耳机上检测并使用 Hammerspoon hs.eventtap模块eventtaps编写一些自定义逻辑。以下是中的最小代码片段:init.lua

如果我从触摸栏更改音量,则会记录事件。然而,当从耳机做同样的事情时,音量确实发生了变化,但事件并没有被 Hammerspoon 捕捉到。我尝试使用hs.eventtap.event.types.systemDefinedhs.eventtap.event.types.NSSystemDefined没有任何成功。我应该使用其他一些 Hammerspoon 模块还是缺少一些基本的东西?

0 投票
0 回答
94 浏览

automation - 单击多个窗口 - Hammerspoon 中的 AutoHotKey 等效项

我有这个脚本,我在 AutoHotKey 上使用它来点击多个窗口。

在 Hammerspoon 中相当于什么?

0 投票
0 回答
22 浏览

hammerspoon - 无法使用带锤子的 Google 日语输入法切换输入资源

下面的代码返回 false。

没办法解决。

0 投票
1 回答
168 浏览

lua - 如何以正确的方式制作一勺锤子勺?

我写了一个spoon脚本来控制音量,但是hotkeys.bind方法不起作用,是什么问题?

这是init.lua勺子的

我把这个勺子装进去并用~/.hammerspoon/init.lua

0 投票
0 回答
106 浏览

lua - 有没有办法听任何按键和静音麦克风?

我不熟悉 LUA 或hammerspoon,但我想听键盘上的任何按钮被按下。

我相信我可以使用hs.eventtap.event.newKeyEvent它,但我不确定如何捕捉任何和所有按键。我不在乎按下了什么,我只想让麦克风静音,并x在没有按下任何键的秒数后取消静音。

用锤子勺可以吗?请指出我正确的方向。

0 投票
0 回答
153 浏览

hammerspoon - 如何使用 hotkey.bind 绑定多个键?

就像当我输入“aq”时,输出“Ask a public question”

0 投票
1 回答
29 浏览

hammerspoon - 如何区分 iTerm2 窗口以仅使用 Hammerspoon 移动/调整其中一个窗口的大小?

我打开了两个 iTerm2 窗口,我想通过 Hammerspoon 放置和调整一个窗口,同时让另一个保持原样。

当我运行上面的代码时,什么也没有发生;Hammerspoon 没有找到我的 iTerm2 窗口,即使它看起来像我的窗口标题中有“/in/my/work/dir”。

当我替换"/in/my/work/dir"为 时nil,Hammerspoon 会移动并调整我所有的 iTerm2 窗口的大小。这是有道理的,因为我只要求所有 iTerm2 窗口而没有指定标题。

当我添加调试代码以将 iTerm2 窗口列表打印到控制台时,我只看到一个 iTerm2 窗口:

这打印:

找到 iTerm2 -- iTerm2

如何使用 Hammerspoon 将 iTerm2 窗口分开并仅移动/调整其中一个窗口的大小?