别再让 macOS
偷偷换掉你的麦克风
FocusMic 把系统默认音频输入锁定在你选定的设备上。无论是插入新麦克风、连接蓝牙耳机还是从睡眠中唤醒,它都会立即帮你切回来。
Never lose your mic while vibecoding.
brew install --cask lageev/tap/focusmic
试试点击面板里的开关
这些时刻,macOS 都可能换掉你的默认输入
如果你依赖某支特定的麦克风开会、录音或直播,每一次自动切换都是一次事故。
插入 USB 设备
新接入的 USB 麦克风或声卡,会被系统直接设为默认输入。
连接蓝牙耳机
耳机一连上,通话立刻切到音质糟糕的蓝牙麦克风。
睡眠后唤醒
合盖再打开,默认输入悄悄变了,直到别人说"听不清你"才发现。
选定一次,持续守护
轻量、安静、常驻菜单栏。FocusMic 只做一件事,并把它做好。
首选设备锁定
在设备列表中点选一个麦克风,FocusMic 会持续把它保持为系统默认输入。
热插拔感知
实时监听设备列表变化,设备重新接入后自动重新应用你的偏好。
防抖处理
设备事件密集时延迟 0.15–0.3 秒再执行切换,避免系统来回抖动。
菜单栏常驻
不占 Dock、不弹窗口。图标状态一眼可见:锁定生效、设备离线、守护关闭。
开机自启动
可选择随系统登录自动启动,开机即进入守护状态,无需手动打开。
活动日志
每一次强制切回都有记录,在设置窗口随时查看最近的守护动作。
基于 Core Audio,原生而克制
不做轮询、不占资源。FocusMic 直接监听系统音频硬件事件,只在需要时出手。
监听
通过 AudioObjectAddPropertyListenerBlock 监听设备列表与系统默认输入的每一次变化。
防抖
检测到变化后等待 0.15–0.3 秒的防抖窗口,合并密集事件,避免与系统"抢方向盘"。
切回
确认守护开启且首选设备在线后,将 kAudioHardwarePropertyDefaultInputDevice 写回你选定的设备。
为什么值得信任
- 原生实现:Swift + SwiftUI 编写,直接调用 Core Audio 框架,无第三方依赖。
- 事件驱动:靠系统回调触发,几乎零 CPU 占用,不影响电池续航。
- 智能匹配:优先按设备 UID 精确匹配,UID 变化时按名称回退,识别更可靠。
- 完全开源:MIT 许可证,代码全部公开,可自行审计与构建。
三步完成,从此忘掉它
没有账号、没有配置文件。设置一次,FocusMic 就安静地在后台工作。
点击菜单栏图标
启动应用后,点击菜单栏的麦克风图标打开控制面板。
选择首选设备
在输入设备列表中点选你想固定使用的那支麦克风。
打开守护开关
开启「守护输入设备」,之后的一切交给 FocusMic。