VERSION 1 KEYSWITCH PREFIX_B 0 0 KEYSWITCH CTRL 1 0 KEYSWITCH SHIFT 1 1 KEYSWITCH H 2 0 KEYSWITCH J 2 1 KEYSWITCH K 2 2 # ============================================================================== NAME Prefix layer passthrough RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS H RUN 1 cycle EXPECT keyboard-report Key_LCtrl # press Ctrl EXPECT keyboard-report Key_LCtrl Key_B # press B, Ctrl held EXPECT keyboard-report Key_LCtrl # release B, Ctrl held EXPECT keyboard-report empty # release Ctrl EXPECT keyboard-report Key_H # press H RUN 4 ms RELEASE H RUN 1 cycle EXPECT keyboard-report empty # release H RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B # ============================================================================== NAME Prefix layer explicit RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS J RUN 1 cycle EXPECT keyboard-report Key_LCtrl # press Ctrl EXPECT keyboard-report Key_LCtrl Key_B # press B, Ctrl held EXPECT keyboard-report Key_LCtrl # release B, Ctrl held EXPECT keyboard-report empty # release Ctrl EXPECT keyboard-report Key_DownArrow # press J RUN 4 ms RELEASE J RUN 1 cycle EXPECT keyboard-report empty # release J RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B # ============================================================================== NAME Prefix layer masked RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS K RUN 1 cycle EXPECT no keyboard-report # press K (masked) RUN 4 ms RELEASE K RUN 1 cycle EXPECT no keyboard-report # release K (masked) RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B # ============================================================================== NAME Prefix layer same modifier first RUN 4 ms PRESS CTRL RUN 1 cycle EXPECT keyboard-report Key_LCtrl # press Ctrl RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS H RUN 1 cycle EXPECT keyboard-report Key_LCtrl Key_B # press B, Ctrl held EXPECT keyboard-report Key_LCtrl # release B, Ctrl held EXPECT keyboard-report empty # release Ctrl EXPECT keyboard-report Key_LCtrl # press Ctrl EXPECT keyboard-report Key_LCtrl Key_H # press H RUN 4 ms RELEASE H RUN 1 cycle EXPECT keyboard-report Key_LCtrl # release H RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B RUN 4 ms RELEASE CTRL RUN 1 cycle EXPECT keyboard-report empty # release Ctrl # ============================================================================== NAME Prefix layer same modifier second RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS CTRL RUN 1 cycle EXPECT keyboard-report Key_LCtrl # press Ctrl RUN 4 ms PRESS H RUN 1 cycle EXPECT keyboard-report Key_LCtrl Key_B # press B, Ctrl held EXPECT keyboard-report Key_LCtrl # release B, Ctrl held EXPECT keyboard-report empty # release Ctrl EXPECT keyboard-report Key_LCtrl # press Ctrl EXPECT keyboard-report Key_LCtrl Key_H # press H RUN 4 ms RELEASE H RUN 1 cycle EXPECT keyboard-report Key_LCtrl # release H RUN 4 ms RELEASE CTRL RUN 1 cycle EXPECT keyboard-report empty # release Ctrl RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B # ============================================================================== NAME Prefix layer different modifier first RUN 4 ms PRESS SHIFT RUN 1 cycle EXPECT keyboard-report Key_LShift # press Shift RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS H RUN 1 cycle EXPECT keyboard-report Key_LCtrl # release pressed Shift and press Ctrl EXPECT keyboard-report Key_LCtrl Key_B # press B, Ctrl held EXPECT keyboard-report Key_LCtrl # release B, Ctrl held EXPECT keyboard-report empty # release Ctrl EXPECT keyboard-report Key_LShift # restoring pressed Shift EXPECT keyboard-report Key_LShift Key_H # press H RUN 4 ms RELEASE H RUN 1 cycle EXPECT keyboard-report Key_LShift # release H RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B RUN 4 ms RELEASE SHIFT RUN 1 cycle EXPECT keyboard-report empty # release Ctrl # ============================================================================== NAME Prefix layer different modifier second RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS SHIFT RUN 1 cycle EXPECT keyboard-report Key_LShift # press Shift RUN 4 ms PRESS H RUN 1 cycle EXPECT keyboard-report Key_LCtrl # release pressed Shift and press Ctrl EXPECT keyboard-report Key_LCtrl Key_B # press B, Ctrl held EXPECT keyboard-report Key_LCtrl # release B, Ctrl held EXPECT keyboard-report empty # release Ctrl EXPECT keyboard-report Key_LShift # restoring pressed Shift EXPECT keyboard-report Key_LShift Key_H # press H RUN 4 ms RELEASE H RUN 1 cycle EXPECT keyboard-report Key_LShift # release H RUN 4 ms RELEASE SHIFT RUN 1 cycle EXPECT keyboard-report empty # release Ctrl RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B # ============================================================================== NAME Prefix layer rollover from letter RUN 4 ms PRESS K RUN 1 cycle EXPECT keyboard-report Key_K # press K RUN 4 ms PRESS PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after pressing PREFIX_B RUN 4 ms PRESS H RUN 1 cycle EXPECT keyboard-report Key_K Key_LCtrl # hold K and press Ctrl EXPECT keyboard-report Key_K Key_LCtrl Key_B # press B, hold K & Ctrl EXPECT keyboard-report Key_K Key_LCtrl # release B, hold K & Ctrl EXPECT keyboard-report Key_K # release Ctrl EXPECT keyboard-report Key_K Key_H # hold K, press H RUN 4 ms RELEASE K RUN 1 cycle EXPECT keyboard-report Key_H # release K RUN 4 ms RELEASE PREFIX_B RUN 1 cycle EXPECT no keyboard-report # no report after releasing PREFIX_B RUN 4 ms RELEASE H RUN 1 cycle EXPECT keyboard-report empty # release H