# 开会打字自动静音，一次基于 Keyboard Maestro 的尝试

> 本文开放前 70% 正文，剩余内容会员可见。

原文：https://utgd.net/article/20785

在线会议时如需打字，顺手静音是最基本的礼貌。

但是，不要误会，礼貌并不要求时时刻刻保持自律。绷得太紧的弦反而容易断掉，苟若您一天到晚想着这些小事，恐怕早已没有余力处理正事。此前文刀漢三推荐的 Unclack 就特别聪明，一旦检测到你正在打字，就会自动关掉麦克风，免遭其他与会者抱怨或批评。

这样的小工具诚然令人欣喜，可如今主打“小而美”的工具，却让我敬而远之：谁能保证它们可以持续运营？谁敢相信小团队的隐私承诺？或者，它们能不能在日益收紧的 macOS 权限政策下存活下来？当然，我对 Unclack 暂无任何不满，只是前述担忧已成积习，前几周又恰好读到一篇 用 Keyboard Maestro 模拟机械键盘音效的文章，遂尝试用 Keyboard Maestro 自制一个自动静音工具。

设计自动静音加自动恢复的 Macro（组），你需要考虑两件事：

- 如何判断“打字”并自动关闭麦克风（将麦克风静音）；

- 如何断定“不再打字”并恢复音量。

Keyboard Maestro Macro 下载（GitHub），使用前请设置生效范围，限制在需要自动静音的会议软件中，避免干扰日常操作。

开关麦克风均不困难，macOS 内置的 AppleScript 即可为之；困难在于触发方式（Trigger），即怎样知道当前是否在打字？略知其中门道的读者可以跳着读，若不熟悉，还需跟着思路走：

Keyboard Maestro 何以得知当前有按键被按下？——设置 Typed String Trigger，此触发方式监测键盘操作，有任何符合条件的按键操作即可触发后续动作。

打字的按键组合不胜枚举，Keyboard Maestro 怎么知道你在打字而不是做别的事？——除了检测固定的字符，Keyboard Maestro 还可以检测按键规律，切换到正则匹配模式（regular expression match）并设置 \\w\+ 后，即可捕捉连续多次按下英文字母或数字键的操作，一般来说，这就意味着你在打字

最坎坷之处在于，知道合适打字，有怎知合适停下？检测“不打字”可是结结实实给

---

[前往标准阅读页](https://utgd.net/article/20785?audience=web)
