问题标签 [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.
hammerspoon - 用 Hammerspoon 选择菜单项
我尝试使用 Hammerspoon 通过以下脚本在 Firefox 中打开一个新窗口:
虽然脚本能够找到 Firefox,但它无法找到我正在寻找的菜单项。但同时,我可以app:getMenuItems()
用来检索整个菜单结构。
有谁知道为什么或任何应用程序的工作示例?
我正在使用 MacOS Big Sur 11.2.3
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
lua - Hammerspoon 击键时如何检查热键?
标题说明了一切。我正在创建一个可以无限期地为我键入键的应用程序,但我想在热键按下时停止它,或者当我输入“.stop”之类的内容时,但我不知道如何实现。我已经尝试过了,所以当我单击 CMD + Y 时,它会使变量停止为真,并且在发送垃圾邮件时,它会检查变量是否为真,如果是,则停止,但它不起作用。
代码:
hammerspoon - Hammerspoon 将键重新映射到 alt 修饰符
我重新映射 ` 键,这样当我按住它时,它的行为与按住 alt 键的方式相同。例如,按住 ` 并按 tab 应该表现为 alt+tab。
我试过这个,但它不起作用。我究竟做错了什么?
hammerspoon - 如何点击特定按钮
我是 Hammerspoon 的新手,但对使用它自动化一些 macOS 工作流程很感兴趣。
我知道如何发送击键,但是如何模拟鼠标单击窗口或对话框中的特定按钮?(我目前正在尝试以这种方式关闭对话框窗口)
提前感谢您的帮助!
hammerspoon - 如何获取应用程序支持的功能列表?
我是 Hammerspoon 的新手,但对使用它自动化一些 macOS 工作流程很感兴趣。
许多示例似乎直接访问目标应用程序本身提供的功能 - 但是如何找出提供了哪些功能以及如何使用它们?
提前感谢您的帮助!
lua - 如何使用hammerspoon CLI?
我希望能够运行类似的命令并使用和/或hs -m foo -c bar -- baz
运行一些代码。帮助消息说应该可以通过or获得,但我不知道该值存在于何处。bar
baz
hs -h
baz
_cli._args
_cli.args
_cli
这是我的代码:
的输出hs -m foo -c bar -- baz
是:
我确定有一个简单的答案,但我找不到。
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 打开包含此类额外参数的应用程序启动命令?
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 (!) 时代引入的一项功能,但我找不到有关如何合法使用它的提示。