Apply these steps on each XIAO RP2040:
- Install CircuitPython:
- Following KMK's split keyboard drive name convention, rename the
CIRCUITPY
drive to indicate whether it's the left or right side:- Left:
JANUS_L
- Right:
JANUS_R
- Left:
- Copy KMK firmware files:
- Copy the custom files:
Now customize the layout and features in main.py
file, and save the updates on your board.
View the Janus default keymap on Keyboard Layout Editor
This default keymap is inspired by Callum's QMK keymap, with the following differences:
- Mods are moved to the bottom row on every layer, and are mirrored on both sides.
- Symbol layer only contains non-shifted symbol keys.
- General differences in key positions.
Both layouts use similar oneshot key implementations.
As part of the oneshot module's setup, the following two methods should be called:
set_ignore_keys(ignore_keys)
: Specify a list of keys which are not treated as oneshot interrupt keys
Oneshot keys behave as follows:
- When a oneshot key is pressed:
- Set oneshot status as "active"
- Send a key press event for its corresponding key
- When a oneshot key is released:
- If oneshot status is "active", then set this oneshot key's status as "queued"
- If oneshot status is not "active", send a key release event for its corresponding key
- When an interrupt key (i.e., not a oneshot key and not an ignored key) is pressed:
- Set oneshot status as "inactive"
- For every oneshot key with status "queued", send key release event for their corresponding key
- Clear all oneshot key statuses