You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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)

操作现象演示:
Scene Reproduction


原因分析与解决方案

原因

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 06:29:57