>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Swift

如何在 Mac 上用 Dorso 强制自己保持良好坐姿

经过三小时的艰难调试后,我们中的许多人都会变成一个问号的形状。头越来越靠近显示器,肩膀耸到耳朵,后背弓在椅背上。常规的提醒在这里没什么用:你会在不看的情况下划掉「挺直后背」的计时通知,以免打断专注。

最近偶然发现了一个有趣的开源项目 Dorso,来自开发者 tldev。想法简单到荒谬的程度。应用监测你的姿势,如果你开始驼背,屏幕会逐渐模糊。透过模糊看代码是不可能的,所以恢复清晰的唯一方法就是挺直身体。

追踪方式选择 Dorso 设置

底层原理

与笨重的 Electron 工具不同,Dorso 采用纯 Swift 编写,没有任何额外依赖。应用大小约 10 MB,消耗资源极少。

程序可以通过两种方式追踪身体位置。

第一种是经典方式——通过摄像头。Dorso 使用 Apple 的 Vision 框架实时计算身体关键点(鼻子和头部位置)。如果肩膀不在画面中,应用会切换到面部追踪。你只需校准一次正常姿势,然后算法会将当前头部位置与基准进行比较。

第二种方式更有意思。如果你有 AirPods(Pro、Max 或第三代普通版),完全可以跳过摄像头。应用通过 macOS 14 的 Motion API 直接从耳机的陀螺仪和加速度计读取头部倾斜角度。摘下耳机——监测会自动暂停。

菜单栏图标 坐姿分析

应用功能

主要功能是渐进式模糊。屏幕不会立即变黑。当你稍微前倾时,图像会刚好模糊到能注意到的程度。继续低头——雾气会变浓。挺直后背,清晰度会立即完全恢复。

以下是代码中一些实用的细节:

  • 多显示器支持。模糊会应用到所有已连接的显示器,而不仅仅是内置笔记本屏幕。
  • 完全隐私保护。无云服务器、无分析、无账户。视频流在本地 RAM 中运行,并立即被清除。
  • 灵活的盲区。你可以在设置中设置可接受的移动容差,这样屏幕不会因为每次喝咖啡而模糊。
  • 外接显示器断开时暂停。如果你把笔记本带到沙发上或外出工作时,这会很方便。
  • 带有统计数据的仪表板,展示你一整天保持良好姿势的时长。

对于模糊渲染,作者默认使用私有 CoreGraphics API。如果它们在你的系统版本上出现故障,设置的「兼容模式」会切换到标准 NSVisualEffectView

终端控制

一个有趣的架构细节:Dorso 有一个简单的基于文件的控制接口。应用通过管道在 /tmp/dorso-command 监听命令,并向 /tmp/dorso-response 输出状态。

例如,你可以手动测试屏幕模糊级别:

echo "blur 32" > /tmp/dorso-command

或强制分析你当前的姿势:

echo "capture" > /tmp/dorso-command

这为自动化打开了可能性。你可以在 Raycast 中将校准重置绑定到热键,或将应用暂停链接到专注模式。

安装和启动

最简单的方式是通过 Homebrew 安装:

brew install dorso

或从 GitHub 的 releases 部分下载现成的 .dmg。构建已由 Apple 签名和公证,所以 Gatekeeper 不会报错。

如果你想自己构建二进制文件,需要 macOS 13 或更高版本,并安装 Xcode Command Line Tools:

git clone https://github.com/tldev/dorso.git
cd dorso
./build.sh

构建好的包会出现在 build/Dorso.app 文件夹中。

适用人群

这个项目肯定会引起那些花数小时编程、到傍晚就感到脖子僵硬的人的共鸣。当与 AirPods 配合使用时,应用真正大放异彩:摄像头可以自由用于通话,绿色隐私指示灯保持关闭,姿势仍在掌控之中。

Linux 用户也不应该失望。仓库中有类似开源替代品的链接——项目 postureddorso-linux

相关项目