adafruit / Adafruit_nRF52_Arduino

Adafruit code for the Nordic nRF52 BLE SoC on Arduino
Other
601 stars 489 forks source link

Support of Fn key #748

Open willwade opened 1 year ago

willwade commented 1 year ago

Is your feature request related to a problem? Please describe. Although the "Fn" key doesn't strictly have a regular key code - it appears you can send it if the BLE device has a specific vendor and product id. Also BLEHidAdafruit would need to use a reserved byte in the report or put additional descriptors.

Describe the solution you'd like We can send the Fn key so we can emulate a Apple vendor keyboard. Note this is useful because if you were to use a Adafruit BLE board for assistive tech - the Fn key is the default key for a number of "full keyboard access". Its a bit of a pain to remap.

Describe alternatives you've considered Using QMK. They have done it. https://github.com/qmk/qmk_firmware/issues/2179

Additional context

It appears you have to change the vendor ID to an apple keyboard to make this work. https://gist.github.com/fauxpark/010dcf5d6377c3a71ac98ce37414c6c4?permalink_comment_id=3720511#gistcomment-3720511

See also: https://github.com/qmk/qmk_firmware/issues/2179 which explains it nicely and https://unix.stackexchange.com/questions/41537/linux-apple-wireless-a1314-fn-key-not-registered-looks-like-software-bug