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

如何获取macOS扩展显示器的位置(非分辨率)?

多显示器窗口定位问题与需求

显示器布局变化导致的窗口位置差异

  • 初始布局:主显示器在上,扩展显示器在下居中。此时扩展显示器上的Finder窗口位于左半部分,执行以下AppleScript获取窗口信息:

    tell application "System Events"
        tell process "Finder"
                {position of window 1, size of window 1}
        end tell
    end tell
    

    返回结果:224, 1331, 881, 1075

  • 修改后布局:将扩展显示器移至主显示器左侧。执行同一AppleScript,返回窗口位置变为:10, 1331, 881, 1075

已尝试方法的局限性

  • 获取桌面边界:使用Finder命令

    tell application "Finder" to get bounds of window of desktop
    

    两种布局下返回结果均为0, 0, 2304, 2416,无法区分不同显示器的独立边界。

  • 获取显示器分辨率:使用系统工具命令

    system_profiler SPDisplaysDataType
    

    仅能获取各显示器的分辨率参数,无法得到显示器间的相对位置关系。

  • 读取Windowserver配置:

    defaults read /Library/Preferences/com.apple.windowserver.plist
    

    文件中包含UnmirroredOriginX和UnmirroredOriginY字段,但存在17项相关设置,无法确定哪一项为当前生效配置。

核心需求

需要实现不受显示器布局影响的窗口定位功能:

  • 支持为指定显示器(主/扩展)的窗口生成左、右、中1/3,以及1/4、半屏等预设位置
  • 以编程方式复刻Rectangle软件的窗口定位能力,通过脚本触发自动打开并定位窗口
  • 不依赖Rectangle的按键指令(其仅支持“下一个/上一个”显示器切换,无法指定目标显示器,定位结果无确定性)

待解决问题

  1. 如何准确获取扩展显示器相对于主显示器的位置信息?
  2. 是否存在可指定目标显示器,将窗口定位至1/2、1/3、1/4区域的CLI工具?

内容的提问来源于stack exchange,提问作者Chris Redford

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:10:21