[闲聊] Apple 键盘的Fn/Globe key

楼主: cgjosephlee (JLee)   2023-07-06 18:27:02
身为mac的使用者,曾经我也很想找一把跟原厂键盘配置一模一样的机械键盘,但始终没有
个像样的产品,都快想说干脆自己做一把了,但能力不足QQ
前阵子买了Keychron K3 Pro 在家里使用,结果遇到F3, F4 失效了。研究了一下才发现是k
arabiner 的原因,但我太依赖karabiner 了无法不用,只好想其他的解决办法。研究的过
程发现Apple 键盘或macbook 上的Fn 跟一般键盘的Fn 好像不太一样,这边纪录一下。
一般Fn key
- 不会送出keycode。
- 通常是切换键盘的layer,达到送出不同的keycode。
- 功能烧在键盘韧体上。
Apple Fn/Globe key (apple_fn)
- 是一个有keycode 的按键。
- 不是切换layer,比较像是control 这种控制键。
- 只有特定VID/PID 的键盘(= 原厂键盘)送出的apple_fn,macOS 才认可(不愧是Appl
e)。
Keychron K3 Pro
- win/mac mode 其实只是切换不同layer。mac (0), mac fn (1), win (2), win fn (3)
,只有四层。
- mission control (F3) 与launchpad (F4) 其实没有送出keycode,是用某种方式模拟
?或是Event Viewer 认不得?
- 因为没有keycode,在经过karabiner 拦截后就失效了,想改都没的改。
- 用VIA 修改:F3 → C(KC_UP),F4 → HYPR(KC_SPC),模拟组合键。需额外修改开启lau
nchpad 的热键为 cmd+opt+ctrl+shift+space。
- K7 的fn2 好像可以用apple_fn?
Niz mini84
- mac mode 下有两个Fn key,Fn + fn。
- win/mac mode 连VID/PID 都不一样。
- mac mode 用了某个Apple 原厂键盘的VID/PID 0x05ac/0x0220 (不怕被吉吗?),所以
可以送出apple_fn。
- win mode 下VID/PID 是 0x0438/0x5235,是AMD…?
Karabiner Elements
- 用虚拟键盘拦截实体键盘的keycode,修改后再送给OS。
- 如果有经过karabiner,则VID/PID 错误的apple_fn keycode 也可以正常触发。
QMK
- 2023.02,新增了mission control (KC_MCTL) 与 launchpad (KC_LPAD) 的keycode。
- 因为apple_fn 限制VID/PID,所以QMK 无法使用这个keycode。
- 但还是有办法改。
同步发在blog,很多连结太长就不复制过来了。
https://cgjosephlee.github.io/blog/2023/07/04/apple-fn-key/
作者: nekoron1209 (发明纵连的人会下地狱)   2023-07-06 22:00:00
推研究
作者: Belieeve (芥末拿铁)   2023-07-06 22:24:00
终于知道为什么我的F8用Karabiner 会挂掉了......
作者: waroz (沃君)   2023-07-06 23:49:00
看来只要用karabiner来映射出FN就没问题了
作者: mirror0227 (镜子)   2023-07-07 07:37:00
推研究

Links booklink

Contact Us: admin [ a t ] ucptt.com