曾经在 macOS 实用小工具记录 2 里提到苹果修改了锁屏快捷键,可以用 Ctrl+Cmd+Q 锁屏,而不用模拟之前的 Power 键,对 Karabiner 不再有需求,结果最近还是装了回来
macOS 26 开始的全屏快捷键变化
在 macOS 26 Tahoe 之前,对应用全屏(新建占据整个桌面)的快捷键是 Ctrl+Cmd+F,这个在外接键盘上也能直接按出来,但后面改成了 Globe+F,这个 Globe 键就是苹果笔记本电脑或原装外置键盘上原来的 fn 键,上面有个小地球图标的,俗称地球键
这下好了,要全屏要么点窗口左上角的红绿灯按钮,要么用苹果笔记本机身键盘上的 Globe+F 的快捷键,在外接键盘上都无法使用
在外接键盘上切换全屏的尝试
macOS 系统设置里改快捷键
这个方式是说在 macOS 的系统设置里,增加一个「切换全屏」或「Enter Full Screen」的快捷键,然后映射成自己想要的键
我自己试过一下,不是那么灵光,也不太好用,放弃
使用第三方窗口管理工具如 Rectangle
Rectangle 是我近年来替换 Spectangle 后的窗口管理工具,本来随着新版本 macOS 把左半屏、右半屏、最大化等几个操作支持后,连这个工具都可以不用,但偏偏 macOS 原生的都是 Ctrl+Globe+Left、Ctrl+Globe+Right、Ctrl+Globe+F,都还是无法在外接键盘上使用的
等为了在外接键盘上更方便使用窗口布局且不用去改系统快捷键,把 Rectangle 装回来后,发现 Rectangle 无法支持系统级的全屏操作,所以这条路也走不通
使用 QMK/VIA 改键位映射
我现在在办公室使用的 Keychron K8P 支持 QMK/VIA,那么去 usevia.app 可以快速改键映射
但是苹果这里又搞事情,原生的 Globe 键并没有相关键位码,网络上找到的方法要么是通过 QMK 改固件,要么说的用 Any 键传入 0x2100 但现在也不生效,至少没法起到 Globe 键的作用
使用 Karabiner-elements 改键位映射
参照 https://github.com/the-via/releases/issues/92#issuecomment-3805418968 这个 VIA 项目里 Issue 的讨论,最后还是用 Karabiner Elements 解决问题
我把自己 K8P 的截屏快捷键先改成 F24(默认行为是发送 Cmd+Shift+4 调用系统截屏快捷键),然后再到 Karabiner Elements 里把 F24 映射成 fn (globe),现在尝试按 F24+F,可以在支持的应用里切换全屏
现在就是这个键并不在右手小拇指周边,不是太方便,本来考虑把 Fn+L_Option 改成 F24 来达到映射,后来发现不行,因为按下 Fn 后,原来 F 键的逻辑也变了,这时候键盘工作在第二层键位上,而 F 键默认是在改键盘灯光 RGB 的参数
剩余对当前 macOS 里全屏快捷键的吐槽
之前 Ctrl+Cmd+F 的快捷键用的好好的,偏偏要改一个外接键盘无法支持的 globe+F,而且原来的快捷键几乎所有的应用都支持,改的这个好多应用又不响应,比如 VSCode 就不行,Ghostty 也不行
多年前让苹果成为开发者友好的设备,据说是 @dhh 及 Ruby on Rails 这帮人推动,现在 dhh 也对目前 macOS 的状态不满,在推动 Omarchy 项目,看看会不会三十年河东三十年河西,回头 Linux 变成开发者更友好的环境