Furthe77oad
Furthe77oad
发布于 2026-10-16 / 0 阅读
0
0

HeadOrbit:用头部动作控制 Mac

无需摄像头,借助 AirPods 或 Beats 的头部追踪传感器,将转头、点头和侧倾变成 Mac 上的实际操作。

HeadOrbit 项目横幅

项目简介

HeadOrbit 是一款轻量的原生 macOS 菜单栏应用。它读取支持头部追踪的 AirPods 或 Beats 所提供的运动数据,再把头部姿态映射为屏幕模糊、坐姿提醒和键盘操作等功能。

它不使用摄像头,也不是眼动追踪工具。应用只关心耳机传感器感知到的头部方向和角度,因此既能减少对摄像头的依赖,也适合在双手忙碌或希望保持键盘操作节奏时使用。

项目状态: HeadOrbit 目前是实验性质的周末项目,并非成熟商业产品,使用时应预期可能存在兼容性问题或不够完善的边角体验。

核心亮点

1. 转头自动模糊屏幕

当用户向左或向右转头并超过设定角度后,HeadOrbit 会模糊并压暗屏幕;头部回到正前方时,屏幕随即恢复。这个功能适合临时与身边的人交流,或在注意力离开屏幕时减少内容暴露。

2. 坐姿提醒

用户先以坐直、平视屏幕的姿态完成校准。当头部姿态持续偏离设定范围时,应用会通过模糊画面和提示信息提醒用户调整姿势。提醒出现后可按 Esc 暂停一分钟。

3. 用头部动作触发按键

HeadOrbit 支持“按一下按键”和“持续按住按键”两种行为,可用于免手操作。例如内置的语音输入场景会在向左侧倾时持续按住 Fn,回正后松开,再通过向右侧倾触发 Return。

4. 可配置的场景系统

项目将“手势”和“动作”分离:转头、点头/抬头、侧倾各有两个方向,每个方向都可以绑定以下行为之一:

  • 模糊屏幕;
  • 显示坐姿提醒;
  • 按一下指定按键;
  • 持续按住指定按键;
  • 不执行操作。

多个配置可以组合成一个场景,并作为整体启用或停用。用户还可以调整触发角度、停留时长、按键和压暗程度,或复制内置场景后继续修改。为避免冲突,同一个方向不能同时被多个已启用场景占用。

5. 颈部活动引导

v2.1 加入了颈部活动功能。启动后,屏幕会显示一条由头部运动控制的跟随路径,引导用户依次完成顺时针绕环、逆时针绕环和“8”字轨迹,每种动作进行 3 次。过程中可以随时按 Esc 退出。

该功能仅用于一般性的活动引导,不应被视为医疗、诊断或康复工具。

6. 校准、多语言与自动更新

  • 一键将当前姿态设为“正前方”;
  • 可选自动正前方微调,减少长时间使用后的姿态漂移;
  • 支持中文、英文和日文界面;
  • 支持浅色、深色及跟随系统外观;
  • v2.1 起可在启动时检查 GitHub Releases,并在用户确认后完成更新和重启。

内置场景

场景 默认触发方式 默认状态
隐私模糊 向左或向右转头超过 35°,持续 0.6 秒 后模糊屏幕 开启
坐姿提醒 相对校准姿态的仰角超过 +15°,持续 5 秒 后提醒 关闭
语音输入 左侧倾超过 15° 时按住 Fn;右侧倾超过 15° 时按下 Return 关闭

语音输入场景适用于通过长按 Fn 开始听写的输入方式。仓库说明该流程曾使用豆包输入法进行测试,其他输入法的实际行为可能有所不同。

工作原理

根据项目源码,可以将 HeadOrbit 的主要工作流程概括为:

flowchart LR
    A["AirPods / Beats<br/>运动传感器"] --> B["CoreMotion<br/>读取头部姿态"]
    B --> C["正前方校准<br/>计算相对角度"]
    C --> D["场景引擎<br/>判断方向、角度与停留时间"]
    D --> E[屏幕模糊]
    D --> F[坐姿提醒]
    D --> G[键盘操作]

应用会实时处理三类姿态数据:

  • Turn: 左右转头;
  • Nod: 低头或抬头;
  • Tilt: 左右侧倾。

所有角度都以用户手动设定的“正前方”为参考。自动微调默认关闭;开启后,应用只会在没有动作被触发、头部保持在安全范围内一段时间时缓慢修正基准,而且坐姿提醒仍坚持使用手动校准基准,避免把逐渐形成的错误坐姿当作新的正常姿态。

隐私与权限

HeadOrbit 的运动数据和设置保留在本机,不录制屏幕,也不需要注册账号。当前版本唯一明确的网络用途是访问 GitHub Releases 检查和下载更新,应用不会上传头部运动数据。

权限 用途 何时需要
运动与健身 读取耳机提供的头部运动数据 首次使用头部追踪时
辅助功能 向系统发送模拟键盘事件 仅启用按键类动作时

屏幕模糊和坐姿提醒本身不需要辅助功能权限。

系统与设备要求

  • macOS 14 Sonoma 或更高版本;
  • 支持头部追踪的 AirPods 或 Beats,例如:
    • AirPods Pro(任意代);
    • AirPods 3 / 4;
    • AirPods Max;
    • Beats Fit Pro;
    • Powerbeats Pro 2;
  • 耳机必须实际连接到当前 Mac;
  • 支持单耳或双耳使用。

如果耳机自动切换到 iPhone,即使仍能看到设备信息,Mac 也可能无法继续接收头部运动数据。

安装方式

方式一:下载 DMG

  1. 前往项目的 Releases 页面;
  2. 下载最新的 HeadOrbit-vX.Y.Z.dmg;
  3. 打开 DMG,将 HeadOrbit 拖入“应用程序”文件夹。

该应用目前未经过 Apple 公证,首次启动时 macOS 可能提示无法验证开发者。确认文件来自项目官方 Releases 后,可以右键点击应用,依次选择“打开”与“仍要打开”。仓库也提供了以下处理方式:

xattr -d com.apple.quarantine /Applications/HeadOrbit.app

只有在确认应用来源可信时,才应移除 macOS 的隔离标记。

方式二:从源码构建

源码构建需要 Xcode 15 或更高版本,并使用 XcodeGen 生成工程:

brew install xcodegen          # 只需安装一次
git clone https://github.com/Cogria-AI/HeadOrbit.git
cd HeadOrbit
./build.sh
open build/Build/Products/Debug/HeadOrbit.app

HeadOrbit 只显示在菜单栏中,不会出现在 Dock 内。

快速上手

  1. 戴上耳机,并确认声音设备连接到当前 Mac;
  2. 点击菜单栏中的 HeadOrbit 图标,确认状态显示正在追踪左耳或右耳;
  3. 坐直并平视屏幕,点击“将当前姿态设为正前方”;
  4. 打开“设置”窗口(⌘,),启用所需场景;
  5. 根据个人习惯调整触发角度、停留时间、按键和画面压暗程度。

菜单面板会实时显示转头、点头和侧倾角度;当某个手势进入触发状态时,对应指示点会变为橙色。

HeadOrbit 设置窗口

技术栈与项目结构

HeadOrbit 主要使用 Swift 5、SwiftUI、AppKit、Combine 和 CoreMotion 开发,通过 XcodeGen 管理 Xcode 工程配置。当前 project.yml 未声明第三方 Swift Package 依赖。

目录 主要职责
HeadOrbit/App 应用入口、生命周期与自动更新
HeadOrbit/Motion 耳机连接状态、头部姿态、正前方校准与运动记录
HeadOrbit/Actions 手势定义、停留触发、场景配置与行为执行
HeadOrbit/Overlay 屏幕模糊、遮罩和全局热键
HeadOrbit/Exercise 颈部活动轨迹、流程控制和界面
HeadOrbit/UI 菜单栏、设置窗口、场景编辑、多语言和按键录入
HeadOrbit/Resources 应用图标等资源
Tests 运动数据相关的测试辅助脚本

从设计上看,它将“运动采集”“手势判断”“行为执行”和“界面配置”拆分为相对独立的模块,便于继续加入新的动作类型或场景。

已知限制与注意事项

  • 项目仍处于实验阶段,不适合依赖它完成关键任务;
  • 耳机切换到其他设备后,Mac 会停止收到运动数据;
  • 未使用固定开发者身份签名的版本在更新后,可能需要删除旧的辅助功能授权并重新添加;
  • 持续的 AirPods 头部追踪会保持蓝牙数据流,少数第三方 Bluetooth LE 鼠标可能出现卡顿;
  • 模糊效果依赖 Apple 未公开的 WindowServer 接口,如果未来系统不再支持,应用会退化为普通压暗遮罩;
  • 应用尚未经过 Apple 公证,安装体验不如正式上架的 macOS 应用顺畅。

可扩展方向

项目仓库列出了若干未来设想,但这些并不是已经承诺的功能:

  • 低头看手机时暂停媒体播放;
  • 长时间离开屏幕时自动锁定 Mac;
  • 转头看向另一块显示器时切换焦点;
  • 通过头部动作运行 macOS 快捷指令。

由于项目已经把手势和行为解耦,这些方向也为开发者提供了比较清晰的扩展入口。

开源许可

HeadOrbit 采用 MIT License,版权归 Cogria-AI 所有。用户可以在保留版权和许可声明的前提下使用、复制、修改和分发代码;软件按“原样”提供,不附带担保。

相关链接


本文基于 HeadOrbit main 分支及 v2.1.0 公开资料整理。项目仍在迭代,具体功能和兼容性请以仓库最新说明为准。


评论