用途:对 macOS 上的 yabai + skhd 环境做只读健康检查,不修改系统,只检查并给出可执行的修复路径。
运行方式:bash scripts/diagnose.sh。仅限 macOS(使用 launchctl、csrutil、sw_vers),需以已登录用户身份运行,不要用 sudo,否则辅助功能检查无法看到该用户会话。
检查内容:对 yabai 与 skhd 分别检查二进制是否安装及版本、launchd 服务是否注册并运行(含最后退出码)、配置文件是否存在(~/.config/<svc>/<svc>rc,回退到 ~/.<svc>rc)、辅助功能权限(yabai 用 yabai -m query 探测,skhd 从 /tmp/skhd_$USER.err.log 推断)。此外可选检查 yabai 脚本附加组件(SA):SIP 状态(csrutil status,SA 需部分禁用)与免密码 --load-sa 的 sudoers 条目。
输出解读:✓ 健康、✗ 损坏且有修复方案、? 未知或建议项;按分节输出,末尾汇总编号的修复路径。
修复路径:多数修复可代为执行(如 brew install ...、yabai --start-service、--restart-service)。两项必须由用户手动完成:辅助功能权限只能在系统设置 ▸ 隐私与安全性 ▸ 辅助功能中开启,授权后需重启服务;SIP/脚本附加组件需进入恢复模式重启才能禁用 SIP,仅在用户确实需要 SA 功能时考虑,应提供 yabai wiki 链接而非直接操作。切勿对脚本使用 sudo 或自动禁用 SIP,任何超出启动/重启服务的更改都需先与用户确认。
限制:仅适用于 macOS;只读诊断,不自动修复;SA 相关检查为可选高级项。