Skip to content

Latest commit

 

History

History

kmk

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Janus KMK Firmware

Installation instructions

Apply these steps on each XIAO RP2040:

  1. Install CircuitPython:
  2. 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
  3. Copy KMK firmware files:
  4. Copy the custom files:

Now customize the layout and features in main.py file, and save the updates on your board.

Default keymap

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.

Custom oneshot module

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