Your Q60 is set up like an HHKB Professional. This page covers what Fn does, the extra lighting layer, and how to back up or change the layout.
Black legend: what the key types normally. Blue legend: what it types while you hold the outlined keys. A key with no blue legend types as normal.
A real HHKB has no backlight, so Keychron's lighting controls live on a layer of their own. Hold Fn, then also hold Right Shift, then tap the key.
The slide switch on the side of the board picks which base layer is active. Both use the HHKB bottom row, Alt ◇ Space ◇ Alt; only what ◇ and Alt send changes.
Option Cmd Space Cmd Option
Alt Win Space Win Alt
The layout lives in the keyboard's memory, so it works on any computer without software. To change it, use hhkb_q60.py from the Q60_HHKB repo, or VIA. Either one first needs permission to talk to the keyboard.
Linux only lets root write to the keyboard's settings interface. This udev rule gives your user access every time the board is plugged in, and lets VIA in Chrome connect too:
echo 'KERNEL=="hidraw*", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="01c0", MODE="0660", TAG+="uaccess"' \
| sudo tee /etc/udev/rules.d/99-keychron-q60.rules
sudo udevadm control --reload && sudo udevadm trigger
Quick one-off alternative, lost on every replug or reboot: sudo chmod a+rw /dev/hidraw9 (the number can vary).
Writes every layer to a timestamped JSON file in the current folder.
cd Q60_HHKB python3 hhkb_q60.py backup
Every apply saves a backup first, so to undo it, restore the backup that run made. Backups are never overwritten.
python3 hhkb_q60.py restore q60_backup_<timestamp>.json
Saves a backup first, then writes the layout and reads it back to confirm.
python3 hhkb_q60.py apply
Open usevia.app in Chrome or Chromium, click Authorize device and pick the Q60. Layers 0 to 3 in VIA match this page: 0 Mac, 1 Windows, 2 Fn, 3 Fn + Right Shift. Changes save to the board as soon as you make them.