Fn-keys on Varmillo VA88M keyboard and Linux

Many Linux Distributions recognize the Varmillo Keyboard(s) as Apple Keyboard:

apunkt@Sputnik:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 004: ID 048d:5702 Integrated Technology Express, Inc. ITE Device
Bus 001 Device 009: ID 05ac:024f Apple, Inc. Aluminium Keyboard (ANSI)
Bus 001 Device 007: ID 0810:e501 Personal Communication Systems, Inc. SNES Gamepad
Bus 001 Device 005: ID 1a7c:0191 Evoluent VerticalMouse 4
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 8087:0aa7 Intel Corp. Wireless-AC 3168 Bluetooth
Bus 001 Device 008: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
apunkt@Sputnik:~$

That leads to a weird behaviour: to get the F1-F12 keys working you must press the Fn-key. Like on Mac-Keyboards. (did I mention that even if I like the look and feel of Macs I could vomit if I use MacOS and/or a Mac-Keyboard). Some of the keys (F7-F12) won’t even work with the Fn-key, as there used as multimedia-keys here.

The solution is to either flash a new firmware to the keyboard or to manually reverse the Fn-functionality on your “mac-keyboard” from varmillo:

echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all
sudo reboot # optional

Good Luck !