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

hammerspoon - 用 Hammerspoon 选择菜单项

我尝试使用 Hammerspoon 通过以下脚本在 Firefox 中打开一个新窗口:

虽然脚本能够找到 Firefox,但它无法找到我正在寻找的菜单项。但同时,我可以app:getMenuItems()用来检索整个菜单结构。

有谁知道为什么或任何应用程序的工作示例?

我正在使用 MacOS Big Sur 11.2.3

0 投票
1 回答
84 浏览

lua - Hammerspoon hs.application:kill() 不可调用

试图让 Hammerspoon 在 OS X 中打开音乐应用程序时退出(杀死)它。(此应用程序已由 Apple 以一种很难更改的方式安装,并且每当连接蓝牙设备时它就会启动。基本上是烦人的英国媒体报道。)所以,我从 Hammerspoon “入门”页面https ://www.hammerspoon.org/go/ ...

这可以正确响应正在启动的音乐应用程序,但它会像这样出错......ERROR: LuaSkin: hs.application.watcher callback: /Users/seancamden/.hammerspoon/init.lua:142: method 'kill' is not callable (a nil value)

我怎样才能使这个方法可调用?或者,这样做的正确方法是什么?

https://www.hammerspoon.org/docs/hs.application.watcher.html https://www.hammerspoon.org/docs/hs.application.html#kill

0 投票
0 回答
105 浏览

hotkeys - 锤子:如何在某些应用程序中禁用热键?

Firefox 用于新私人窗口的 CMD+Shift+P(在 Mac 上)与 Notion 中的“移动”页面键盘快捷键冲突。

看起来没有办法重新映射 Firefox、OSX 键盘快捷键,甚至 3rd 方 Fixefox 添加的快捷键,如快捷键。关于超级用户的良好和最新讨论

探索hammerspoon作为解决方案,我将如何抑制某个应用程序中的键?

ps 这里有一篇很好的文章,讨论了用 Hammerspoon 重新绑定热键。这是为了重新分配热键的作用。我想在 Firefox 中抑制 CMD+Shift+P,并重新绑定 CMD+Shift+N 以执行 CMD+Shift+P 所做的操作。

0 投票
0 回答
41 浏览

lua - Hammerspoon 击键时如何检查热键?

标题说明了一切。我正在创建一个可以无限期地为我键入键的应用程序,但我想在热键按下时停止它,或者当我输入“.stop”之类的内容时,但我不知道如何实现。我已经尝试过了,所以当我单击 CMD + Y 时,它会使变量停止为真,并且在发送垃圾邮件时,它会检查变量是否为真,如果是,则停止,但它不起作用。

代码:

0 投票
0 回答
52 浏览

hammerspoon - Hammerspoon 将键重新映射到 alt 修饰符

我重新映射 ` 键,这样当我按住它时,它的行为与按住 alt 键的方式相同。例如,按住 ` 并按 tab 应该表现为 alt+tab。

我试过这个,但它不起作用。我究竟做错了什么?

0 投票
0 回答
53 浏览

hammerspoon - 如何点击特定按钮

我是 Hammerspoon 的新手,但对使用它自动化一些 macOS 工作流程很感兴趣。

我知道如何发送击键,但是如何模拟鼠标单击窗口或对话框中的特定按钮?(我目前正在尝试以这种方式关闭对话框窗口)

提前感谢您的帮助!

0 投票
1 回答
42 浏览

hammerspoon - 如何获取应用程序支持的功能列表?

我是 Hammerspoon 的新手,但对使用它自动化一些 macOS 工作流程很感兴趣。

许多示例似乎直接访问目标应用程序本身提供的功能 - 但是如何找出提供了哪些功能以及如何使用它们?

提前感谢您的帮助!

0 投票
0 回答
81 浏览

lua - 如何使用hammerspoon CLI?

我希望能够运行类似的命令并使用和/或hs -m foo -c bar -- baz运行一些代码。帮助消息说应该可以通过or获得,但我不知道该值存在于何处。barbazhs -hbaz_cli._args_cli.args_cli

这是我的代码:

的输出hs -m foo -c bar -- baz是:

我确定有一个简单的答案,但我找不到。

0 投票
1 回答
109 浏览

hammerspoon - 在 Hammerspoon 中,如何打开应用程序并传入启动参数

我正在尝试制作一个 Hammerspoon 热键以在 Google Meet 中打开和开始每日会议。

由于我有超过 1 个 google 个人资料,我需要在调用时使用 Chrome 命令行参数将所需的个人资料传递给 Chrome。

在启动字符串中添加这些额外参数时,正常的 Hammerspoon 应用程序启动方法都会失败。

更具体地说,以下从命令行工作并具有我想要的效果: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --app=https://meet.google.com/some-meeting-id --profile-directory='Profile 1'

但是在 hs.application.open、hs.application.launchOrFocus 或 hs.urlevent.openURL 中使用该字符串都会失败。

如何让 Hammerspoon 打开包含此类额外参数的应用程序启动命令?

0 投票
0 回答
75 浏览

hammerspoon - 在 Monterey 上,虽然 NSSecureTextField 有焦点,但 Hammerspoon 不能再将另一个应用程序带到前台

这是一个有点模糊的问题,所以我会尽力描述它以及我已经尝试过的内容。我刚开始使用 macOS Monterey,我怀疑新的 macOS 版本破坏了我的工作流程。

我在 Hammerspoon 中绑定了一个热键,它启动了一个非常轻量级的 GUI 选择器菜单应用程序(从 自动填充密码pass)。它仍然有效(现在几年没有改变),除非密码字段(即,NSSecureTextField)是关键并具有焦点。这在以前的 macOS 版本中不是问题,并且相同的设置(通过版本化的点文件)在 Big Sur 中运行良好,没有改变。

这是我的设置,大致如下:(它从我通常使用的内容中剥离出来,但重现了这个问题。keuze指的是我一直在尝试的https://github.com/JodusNodus/keuzekeuze的一个分支。“真正的”可以不会像这样调用,但我已经分叉了它并硬编码了提示文本和选项列表以用于测试目的。)

锤子键绑定:

当我~/src/keuze/build/Release/keuze从终端运行时,它按预期显示,并且在使用我的 Hammerspoon 键绑定时也按预期显示。只有当一个NSSecureTextField有焦点时,keuze应用程序才会启动但没有焦点。

我应该补充一点,如果我尝试hs:chooser如下使用本机 Hammerspoon,即使我从密码字段中调用它,它也会成功获得焦点:

我确实注意到,当我启用 Console.app 的日志流功能,选择一个密码字段并触发键绑定时,有一个可疑条目似乎是一把确凿的证据:

错误18:20:36.254859 + 1100 WindowServer CPS:拒绝keuze在前面的权利,因为secureTextInput处于活动状态并且此进程未启用安全文本模式,并且此请求不是由用户活动引起的

子系统:com.apple.SkyLight

这让我想到需要将 Hammerspoon 添加到系统偏好设置 > 安全和隐私 > 隐私 > 可访问性,所以我也尝试将我的二进制文件 ( ~/src/keuze/build/Release/keuze) 添加到该列表中。那没有任何区别。我如何才能以 macOS 认为它响应用户活动的方式启动该过程,或者他们所指的“启用安全文本模式”?

我已经用谷歌搜索了该错误消息的各个部分,例如“secureTextInput 处于活动状态,此过程没有安全文本模式”,但似乎没有任何好的线索!除了这个 Alfred 论坛帖子,它可能会也可能不会成功:https ://www.alfredforum.com/topic/17449-opening-problem-on-monterey-after-clicking-on-password-field/ 。

感谢您耐心阅读这篇长文

PS:据我所知,这种安全文本模式是指在 Carbon / 10.3-10.4 (!) 时代引入的一项功能,但我找不到有关如何合法使用它的提示。