[閒聊] 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