Hammerspoon窗口移动异常:需三次按下Cmd+Left才生效
问题:Hammerspoon绑定Cmd+Left调整窗口到左半区需三次按下才生效
我是Hammerspoon(HS)新手,尝试实现将激活窗口调整至屏幕左半区的功能,编写了如下Lua代码,但困惑的是为何需要连续按下Cmd+Left三次才能生效?
hs.hotkey.bind({ "cmd" }, "left", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.x = max.x f.y = max.y f.w = max.w / 2 f.h = max.h win:setFrame(f, 0) end)
操作现象演示:
原因分析与解决方案
原因
macOS系统默认占用了Cmd+Left快捷键:它既用于文本编辑时将光标移至行首,也在分屏/窗口管理场景下有默认行为。你的Hammerspoon快捷键和系统快捷键冲突,前两次按下触发了系统自带操作,第三次才轮到Hammerspoon的绑定生效。
解决方案
方法1:修改Hammerspoon的快捷键组合
避开系统默认快捷键,比如改成Cmd+Option+Left:
hs.hotkey.bind({ "cmd", "alt" }, "left", function() local win = hs.window.focusedWindow() local f = win:frame() local screen = win:screen() local max = screen:frame() f.x = max.x f.y = max.y f.w = max.w / 2 f.h = max.h win:setFrame(f, 0) end)
方法2:禁用系统的Cmd+Left快捷键
打开「系统设置」→「键盘」→「快捷键」:
- 在「文本输入」分类下,取消勾选“将光标移至行首”选项;
- 检查「调度中心」分类下的分屏相关快捷键,确保没有占用
Cmd+Left。
内容的提问来源于stack exchange,提问作者Garon Lombard
相关产品推荐
相关产品推荐

