家里办公室两套工位?Dorso 多显示器 Profile 系统详解:换显示器自动切换校准
【免费下载链接】dorsoA macOS app that blurs your screen when you slouch.项目地址: https://gitcode.com/gh_mirrors/po/dorso
对于在家和办公室切换工位的 Mac 用户来说,Dorso 的多显示器 Profile 系统能帮你自动按显示器组合保存、恢复坐姿校准。这款 macOS 坐姿监测应用在你驼背时模糊屏幕提醒你坐直,而它的 Profile 机制让"笔记本 + 外接显示器"与"仅笔记本"等不同显示器组合各自拥有独立校准数据,插拔显示器后自动切换,无需每次重新校准。
一套校准管不了两套工位
Dorso 通过摄像头(或 AirPods 运动传感器)实时检测坐姿,发现你弯腰驼背就逐步模糊屏幕,坐直后立刻恢复清晰:
问题在于:每个工位的显示器距离、摄像头位置都不同。办公室里用外接大显示器时校准的"标准坐姿",回到家只用笔记本屏幕时完全不适用。如果只有一个全局校准,你在两个工位来回切换就得反复手动重新校准。
Dorso 的解法就是 PROFILES.md 中描述的Profile 系统:每一组唯一的显示器配置,自动对应一份独立的校准档案。
Profile 是怎么识别"你在哪个工位"的?
核心逻辑很简单:用当前连接显示器的 UUID 组合作为 Profile 的钥匙。
- 钥匙格式为
displays:UUID1+UUID2+...,基于显示器 UUID 而非摄像头 - UUID 列表先排序再拼接,保证不管显示器以什么顺序接入,同一套组合始终生成相同的钥匙
- 生成逻辑见 DisplayMonitor.swift 的
getCurrentConfigKey()
这就带来三个很实用的特性:
- 同一台笔记本 + 不同外接屏 = 不同 Profile。即使两家公司用的是同款显示器,只要硬件单元不同(UUID 不同),也会生成两份独立档案,互不干扰。
- 三屏党也没问题。笔记本 + 两台外接显示器,会生成包含 3 个 UUID 的专属钥匙,拥有独立的三屏 Profile。
- 插拔抖动有防抖保护。快速反复插拔显示器时,内部 0.5 秒的防抖计时器会避免状态频繁切换,最终稳定到最后一套配置。
校准完成后,档案(含好/坏坐姿基准值和你使用的摄像头 ID)会保存到本地 UserDefaults,实现逻辑在 AppDelegate+Calibration.swift 和 AppDelegate+Persistence.swift。
自动切换实战:插拔显示器的 5 个场景
| 场景 | Dorso 的行为 |
|---|---|
| 办公室"笔记本 + 外接屏"校准后,回家只留笔记本 | 检测到新配置没有档案 → 提示"需要校准" |
| 家里也完成校准,下次插上办公室显示器 | 自动加载"笔记本 + 外接屏"的档案,直接恢复监测 |
| 监测过程中直接拔掉外接显示器 | 热插拔即时响应:按新配置查找档案,有则继续监测,无则提示校准 |
| 监测中插入新显示器 | 同上,自动匹配新组合的 Profile |
| 拔掉带摄像头的显示器 | 自动切换到其他可用摄像头;若档案匹配新摄像头则无缝续测,否则提示重新校准 |
整个切换由一个应用状态机驱动(禁用 / 监测 / 校准中 / 暂停),插拔显示器或摄像头时状态自动迁移。完整状态流转图和使用场景(共 28 个)都写在 PROFILES.md 里,想深入理解行为细节可以照着读。
校准与显示器的关系:一个容易忽略的细节
Profile 的钥匙只看显示器,不看摄像头。这意味着:
- 换一台摄像头接同一套显示器,档案仍会恢复,但因为校准本身是与摄像头绑定的,Dorso 会提示你用新摄像头重新校准一次;
- 重新校准会覆盖该显示器组合下的旧档案;
- 如果你手动在菜单栏切换了摄像头,同理会进入"需要校准"状态。
这样设计保证了:同一套工位永远优先恢复对应档案,同时摄像头变化不会被错误地"复用"掉。
设置 Profile:给不同工位配不同提醒风格
除了自动切换的校准档案,Dorso 在设置窗口里还有一层Settings Profile,让你把警告方式、灵敏度等参数组合成命名方案,随时一键切换:
在 Tracking 区域可以看到:
- Profile 下拉框:选择当前生效的设置方案
- New 按钮:基于当前参数新建一个方案(比如"办公室-强提醒"用 Border 警告 + 高敏感度,"家里-温和"用 Blur 警告)
- Recalibrate 按钮:随时重新校准当前显示器组合
这套方案管理逻辑在 SettingsProfiles.swift 中实现,支持增删和持久化,切换后所有警告参数立即生效。
通勤路上不想被监测?开启"移动暂停"
如果你的 Profile 场景包含"上下班路上只用笔记本",可以在设置里开启Pause on the go(截图右侧可见开关)。开启后:
- 在"笔记本 + 外接屏"下拔掉显示器时,Dorso 会直接进入"移动中暂停",而不是去查找仅笔记本的档案;
- 插上外接显示器后自动恢复监测或提示校准;
- 注意它只在切换到仅笔记本状态时触发,如果你本来就在仅笔记本状态下开启它,不会立即暂停。
监测数据也能回看
自动切换 Profile 不影响统计累计,所有工位的坐姿数据都汇聚到同一个分析面板,用每日评分追踪你的改善趋势:
常见问题速查
- 为什么换显示器后总是提示"需要校准"?新显示器组合没有档案,做一次校准即可,之后该组合会永久记住。
- 为什么加载了"别人的"校准?档案按显示器 UUID 区分,同款不同台的显示器就是两个档案;换摄像头也需要重新校准,这是设计如此。
- 想换摄像头怎么操作?在菜单栏选择摄像头后会进入"需要校准"状态,点 Recalibrate 用新摄像头重新校准即可,旧档案被覆盖。
- 状态看不懂?菜单栏图标是站立小人 = 监测中,暂停圆圈 = 已暂停,虚线小人 = 已禁用;下拉菜单里的状态文本(Good Posture / Calibration needed / Paused on the go)是最直接的判断依据。
一套 MacBook,两个工位,Dorso 用"显示器 UUID 组合 → 独立 Profile"的思路把切换成本降到了零:插上显示器,正确的坐姿基准就回来了。
【免费下载链接】dorsoA macOS app that blurs your screen when you slouch.项目地址: https://gitcode.com/gh_mirrors/po/dorso
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考