清洁 Mac 键盘时怎么锁住输入
Mac 醒着的时候去擦 MacBook 键盘,就是一场小灾难,布一压下去二十个键一起亮,Spotlight 弹出来,某个东西被改了名,文档里多出一行乱码,要是屏幕已经锁了,刚用一块超细纤维布,在密码框里白试了三次。
macOS 没有内置的键盘锁定,系统设置里没有清洁模式,那些看起来像那么回事的选项,也做不到大家以为的那样。
简短结论: 关机是系统自带、唯一能保证不登记任何输入的办法,锁屏拦不住按键,只是把它们送进密码框,如果清洁够勤,这件事已经烦人,那用一个能挡住输入、又要用刻意手势才能退出的工具,就是中间那条能用的路。
为什么锁屏不够
按 Control-Command-Q 锁屏,感觉应该安全了,锁后面其实还有三样东西是活的。
键盘还在,锁屏要用它收密码,每一次擦拭都会打进那个输入框,试错次数够了,macOS 会强制等一段时间才肯再收下一次。
触控板也在,手掌撑在铰链附近擦的时候,压上去就算一次点击。
带 Touch ID 的 Mac 上,传感器也在,擦到它就是一次解锁尝试,连续读失败几次后,macOS 不再接受指纹,直到输入密码。
可选做法,按顺序看
| 做法 | 挡住按键 | 挡住触控板 | 代价 |
|---|---|---|---|
| 关机 | 是 | 是 | 整机重启,当前会话没了 |
| 合盖睡眠 | 是 | 是 | 盖子合着,键盘擦不到 |
| 锁屏 | 否 | 否 | 登录失败,什么都没挡住 |
| 屏幕保护程序 | 否 | 否 | 任意一键立刻退出 |
| 挡住输入的工具 | 是 | 看具体工具 | 需要辅助功能权限 |
偶尔清洁一次,关机就好,不用装软件,花一分钟,下面这些办法之所以存在,是因为这一分钟的摩擦,已经够让人把每周该做的清洁跳过去。
挡住输入的工具实际在做什么
macOS 上任何能拦住按键的应用,都是通过 event tap 做到的,而 event tap 需要在系统设置 > 隐私与安全性里打开 辅助功能 权限。
event tap 坐在输入路径上,能在事件到达应用之前把它们吞掉,键盘记录器要的也是同一种能力,所以 macOS 把它放在一次明确授权后面,每个清洁模式应用都要这个权限,问题从来不是应用会不会要,而是信不信拿着这个权限的开发者。
然后再看怎么退出,按任意键就退出的工具等于自己废了自己,因为布一定会按到键,退出方式必须是一块布不小心做不到的事。
Mole 怎么处理这件事
Mole 里有一个围绕这个约束做的清洁屏幕模式,它在 event tap 这一层拦住键盘事件,激活期间按键、抬键和修饰键变化都到不了应用。
退出要两步刻意动作,退出控件会一直藏着,直到指针移动得足够远,看起来像是有意的,露出来之后还得 按住整整一秒,不是点一下,布在触控板上拖过去,这两样都做不到,这就是用意,单击一下或按一个键,正好是布会不小心做出来的事。
鼠标移动不进这个 tap 拦截的范围,每秒上百个事件挤进同一个还要吞按键的 tap,有可能被 macOS 当成太慢而关掉,而这个 tap 才是真正干活的那一块。
从菜单栏或键盘快捷键启动,清洁不用关掉已经打开的任何东西。
怎么安全地清洁硬件
挡住输入解决的是软件这一半,硬件这一半有自己的规矩,Apple 写在 如何清洁 Apple 产品 里。
最常被忽略的几条:
- 不要把任何东西直接喷到 Mac 上。 润湿的是布,不是机器,液体会顺着重力进键盘。
- 用柔软、不掉絮的布。 纸巾会掉渣,还能划花屏幕镀层。
- 水分不要进任何开口,包括键帽缝隙、接口和扬声器网罩。
- 不要浸泡任何部件,表面也不要用漂白剂或过氧化氢。
- 用酒精湿巾或压缩空气之前,先核对 Apple 针对具体机型的现行说明,网上流传的建议,常常说的是 Apple 已经不再出货的键盘结构。
屏幕要单独当心,现在的 Apple 屏幕都有镀层,纳米纹理屏幕更是有专门的清洁步骤和专用布,那里用错东西,是改不回来的。
一套能用的流程
- 打开清洁屏幕,或者宁愿不给任何应用辅助功能权限的话,直接关机。
- 在远离 Mac 的地方润湿一块不掉絮的布,不要在机器上方弄。
- 从屏幕往外擦,然后是键盘,再是掌托和触控板。
- 完全干透再唤醒或重启。
- 用那个刻意手势退出,或者重新开机。
常见问题
macOS 有键盘清洁模式吗?
没有,系统里没有在 Mac 保持唤醒的同时关掉输入的设置,关机是唯一能保证什么都登记不上的内置办法。
给应用辅助功能权限安全吗?
这是对一种真实能力的真实授权,答案完全取决于那个应用,任何要拦住按键的东西都需要它,所以要评估的是开发者,不是那个权限弹窗。
锁屏能保护键盘吗?
不能,锁屏按设计就会接收键盘输入,擦拭会打进密码框,还可能触发 macOS 在连续失败后加上的等待。
合上盖子行不行?
这样能停掉输入,但刚盖住的键盘擦不到,只适合清洁外壳,别的不行。