Updated the nyquist keymap as a temporary replacement for my broken boards

This commit is contained in:
Drew Whitney 2025-12-28 17:49:01 -07:00
commit 3519d9013d
5 changed files with 440 additions and 0 deletions

View file

@ -0,0 +1,64 @@
#include "./combos.h"
#include "../alias.h"
#include "../layers/layers.h"
uint16_t get_combo_term(uint16_t combo_index, combo_t* combo) {
switch (combo_index) {
case NumCombo:
return 150; // make a larger window for triggering the combo
break;
}
return COMBO_TERM;
}
// necessary to make sure the layers are turned off for the NUM layer combo, since the original
// layer keys are consumed by the combo activation
bool process_combo_key_release(
uint16_t combo_index, combo_t* combo, uint8_t key_index, uint16_t keycode
) {
switch (combo_index) {
case NumCombo:
// whenever one of the layer keys is released, turn off that layer (this will
// automatically turn off the NUM layer because of the layer_state_set_user() callback)
switch (keycode) {
case SYM_BSPC:
layer_off(_SYM);
break;
case NAV_TAB:
layer_off(_NAV);
break;
}
break;
}
return false;
}
// necessary for the NUM layer combo, since it shouldn't trigger on a tap
bool get_combo_must_hold(uint16_t combo_index, combo_t* combo) {
switch (combo_index) {
case NumCombo: // make the NUM layer combo hold-only
return true;
break;
}
return false;
}
bool process_combo_key_repress(
uint16_t combo_index, combo_t* combo, uint8_t key_index, uint16_t keycode
) {
switch (combo_index) {
case WinSwapCombo:
// implement the tab left and tab right part of alt-tab
switch (keycode) {
case TAB_LEFT:
tap_code16(S(KC_TAB));
break;
case TAB_RIGHT:
tap_code(KC_TAB);
break;
}
return true;
break;
}
return false;
}

View file

@ -0,0 +1,8 @@
#pragma once
#include QMK_KEYBOARD_H
enum Combos {
NumCombo,
WinSwapCombo,
};

View file

@ -0,0 +1,324 @@
{
"keyboard_name": "Nyquist Rev. 4",
"usb": {
"pid": "0x4156",
"device_version": "4.0.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"mousekey": true,
"extrakey": true,
"rgb_matrix": true
},
"split": {
"enabled": true,
"encoder": {
"right": {
"rotary": [
{"pin_a": "GP1", "pin_b": "GP0" }
]
}
},
"handedness": {
"pin": "GP23"
},
"matrix_pins": {
"right":{
"cols": ["GP25", "GP29", "GP20", "GP11", "GP3", "GP2"],
"rows": ["GP24", "GP17", "GP15", "GP14", "GP12"]
}
},
"serial": {
"driver": "vendor"
},
"transport": {
"sync" :{
"matrix_state": true
}
}
},
"matrix_pins": {
"cols": ["GP29", "GP22", "GP0", "GP3", "GP11", "GP6"],
"rows": ["GP2", "GP1", "GP17", "GP25", "GP24"]
},
"encoder": {
"enabled": true,
"rotary": [
{"pin_a": "GP26", "pin_b": "GP27" }
]
},
"ws2812": {
"driver": "vendor",
"pin": "GP28"
},
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [5, 0], "x": 7, "y": 0},
{"matrix": [5, 1], "x": 8, "y": 0},
{"matrix": [5, 2], "x": 9, "y": 0},
{"matrix": [5, 3], "x": 10, "y": 0},
{"matrix": [5, 4], "x": 11, "y": 0},
{"matrix": [5, 5], "x": 12, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [6, 0], "x": 7, "y": 1},
{"matrix": [6, 1], "x": 8, "y": 1},
{"matrix": [6, 2], "x": 9, "y": 1},
{"matrix": [6, 3], "x": 10, "y": 1},
{"matrix": [6, 4], "x": 11, "y": 1},
{"matrix": [6, 5], "x": 12, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [7, 0], "x": 7, "y": 2},
{"matrix": [7, 1], "x": 8, "y": 2},
{"matrix": [7, 2], "x": 9, "y": 2},
{"matrix": [7, 3], "x": 10, "y": 2},
{"matrix": [7, 4], "x": 11, "y": 2},
{"matrix": [7, 5], "x": 12, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [8, 0], "x": 7, "y": 3},
{"matrix": [8, 1], "x": 8, "y": 3},
{"matrix": [8, 2], "x": 9, "y": 3},
{"matrix": [8, 3], "x": 10, "y": 3},
{"matrix": [8, 4], "x": 11, "y": 3},
{"matrix": [8, 5], "x": 12, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 4},
{"matrix": [4, 5], "x": 5, "y": 4},
{"matrix": [9, 0], "x": 7, "y": 4},
{"matrix": [9, 1], "x": 8, "y": 4},
{"matrix": [9, 2], "x": 9, "y": 4},
{"matrix": [9, 3], "x": 10, "y": 4},
{"matrix": [9, 4], "x": 11, "y": 4},
{"matrix": [9, 5], "x": 12, "y": 4}
]
},
"LAYOUT_ortho_4x12": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [5, 0], "x": 7, "y": 0},
{"matrix": [5, 1], "x": 8, "y": 0},
{"matrix": [5, 2], "x": 9, "y": 0},
{"matrix": [5, 3], "x": 10, "y": 0},
{"matrix": [5, 4], "x": 11, "y": 0},
{"matrix": [5, 5], "x": 12, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [6, 0], "x": 7, "y": 1},
{"matrix": [6, 1], "x": 8, "y": 1},
{"matrix": [6, 2], "x": 9, "y": 1},
{"matrix": [6, 3], "x": 10, "y": 1},
{"matrix": [6, 4], "x": 11, "y": 1},
{"matrix": [6, 5], "x": 12, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [7, 0], "x": 7, "y": 2},
{"matrix": [7, 1], "x": 8, "y": 2},
{"matrix": [7, 2], "x": 9, "y": 2},
{"matrix": [7, 3], "x": 10, "y": 2},
{"matrix": [7, 4], "x": 11, "y": 2},
{"matrix": [7, 5], "x": 12, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [8, 0], "x": 7, "y": 3},
{"matrix": [8, 1], "x": 8, "y": 3},
{"matrix": [8, 2], "x": 9, "y": 3},
{"matrix": [8, 3], "x": 10, "y": 3},
{"matrix": [8, 4], "x": 11, "y": 3},
{"matrix": [8, 5], "x": 12, "y": 3}
]
}
},
"rgb_matrix": {
"driver": "ws2812",
"split_count": [36, 36],
"max_brightness": 120,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"layout": [
{ "flags": 4, "matrix": [0, 0], "x": 9, "y": 6 },
{ "flags": 4, "matrix": [0, 1], "x": 28, "y": 6 },
{ "flags": 4, "matrix": [0, 2], "x": 46, "y": 6 },
{ "flags": 2, "x": 56, "y": 6 },
{ "flags": 4, "matrix": [0, 3], "x": 65, "y": 6 },
{ "flags": 4, "matrix": [0, 4], "x": 84, "y": 6 },
{ "flags": 4, "matrix": [0, 5], "x": 102, "y": 6 },
{ "flags": 4, "matrix": [1, 5], "x": 102, "y": 19 },
{ "flags": 2, "x": 93, "y": 12 },
{ "flags": 4, "matrix": [1, 4], "x": 84, "y": 19 },
{ "flags": 4, "matrix": [1, 3], "x": 65, "y": 19 },
{ "flags": 4, "matrix": [1, 2], "x": 46, "y": 19 },
{ "flags": 4, "matrix": [1, 1], "x": 28, "y": 19 },
{ "flags": 2, "x": 18, "y": 12 },
{ "flags": 4, "matrix": [1, 0], "x": 9, "y": 19 },
{ "flags": 4, "matrix": [2, 0], "x": 9, "y": 32 },
{ "flags": 4, "matrix": [2, 1], "x": 28, "y": 32 },
{ "flags": 4, "matrix": [2, 2], "x": 46, "y": 32 },
{ "flags": 4, "matrix": [2, 3], "x": 65, "y": 32 },
{ "flags": 4, "matrix": [2, 4], "x": 84, "y": 32 },
{ "flags": 4, "matrix": [2, 5], "x": 102, "y": 32 },
{ "flags": 4, "matrix": [3, 5], "x": 102, "y": 44 },
{ "flags": 2, "x": 93, "y": 44 },
{ "flags": 4, "matrix": [3, 4], "x": 84, "y": 44 },
{ "flags": 4, "matrix": [3, 3], "x": 65, "y": 44 },
{ "flags": 2, "x": 56, "y": 44 },
{ "flags": 4, "matrix": [3, 2], "x": 46, "y": 44 },
{ "flags": 4, "matrix": [3, 1], "x": 28, "y": 44 },
{ "flags": 2, "x": 18, "y": 44 },
{ "flags": 4, "matrix": [3, 0], "x": 9, "y": 44 },
{ "flags": 4, "matrix": [4, 0], "x": 9, "y": 57 },
{ "flags": 4, "matrix": [4, 1], "x": 28, "y": 57 },
{ "flags": 4, "matrix": [4, 2], "x": 46, "y": 57 },
{ "flags": 4, "matrix": [4, 3], "x": 65, "y": 57 },
{ "flags": 4, "matrix": [4, 4], "x": 81, "y": 57 },
{ "flags": 4, "matrix": [4, 5], "x": 105, "y": 57 },
{ "flags": 4, "matrix": [5, 0], "x": 121, "y": 6 },
{ "flags": 4, "matrix": [5, 1], "x": 140, "y": 6 },
{ "flags": 4, "matrix": [5, 2], "x": 158, "y": 6 },
{ "flags": 2, "x": 168, "y": 6 },
{ "flags": 4, "matrix": [5, 3], "x": 177, "y": 6 },
{ "flags": 4, "matrix": [5, 4], "x": 196, "y": 6 },
{ "flags": 4, "matrix": [5, 5], "x": 214, "y": 6 },
{ "flags": 4, "matrix": [6, 5], "x": 214, "y": 19 },
{ "flags": 2, "x": 205, "y": 12 },
{ "flags": 4, "matrix": [6, 4], "x": 196, "y": 19 },
{ "flags": 4, "matrix": [6, 3], "x": 177, "y": 19 },
{ "flags": 4, "matrix": [6, 2], "x": 158, "y": 19 },
{ "flags": 4, "matrix": [6, 1], "x": 140, "y": 19 },
{ "flags": 2, "x": 130, "y": 12 },
{ "flags": 4, "matrix": [6, 0], "x": 121, "y": 19 },
{ "flags": 4, "matrix": [7, 0], "x": 121, "y": 32 },
{ "flags": 4, "matrix": [7, 1], "x": 140, "y": 32 },
{ "flags": 4, "matrix": [7, 2], "x": 158, "y": 32 },
{ "flags": 4, "matrix": [7, 3], "x": 177, "y": 32 },
{ "flags": 4, "matrix": [7, 4], "x": 196, "y": 32 },
{ "flags": 4, "matrix": [7, 5], "x": 214, "y": 32 },
{ "flags": 4, "matrix": [8, 5], "x": 214, "y": 44 },
{ "flags": 2, "x": 205, "y": 44 },
{ "flags": 4, "matrix": [8, 4], "x": 196, "y": 44 },
{ "flags": 4, "matrix": [8, 3], "x": 177, "y": 44 },
{ "flags": 2, "x": 168, "y": 44 },
{ "flags": 4, "matrix": [8, 2], "x": 158, "y": 44 },
{ "flags": 4, "matrix": [8, 1], "x": 140, "y": 44 },
{ "flags": 2, "x": 130, "y": 44 },
{ "flags": 4, "matrix": [8, 0], "x": 121, "y": 44 },
{ "flags": 4, "matrix": [9, 0], "x": 121, "y": 57 },
{ "flags": 4, "matrix": [9, 1], "x": 140, "y": 57 },
{ "flags": 4, "matrix": [9, 2], "x": 158, "y": 57 },
{ "flags": 4, "matrix": [9, 3], "x": 177, "y": 57 },
{ "flags": 4, "matrix": [9, 4], "x": 196, "y": 57 },
{ "flags": 4, "matrix": [9, 5], "x": 214, "y": 57 }
],
"sleep": true
}
}

View file

@ -0,0 +1,28 @@
#include "./layers.h"
bool NUM_latched = false;
layer_state_t layer_state_set_user(layer_state_t state) {
// // NUM latching
// if (NUM_latched) {
// if (IS_LAYER_ON_STATE(state, _SYM) && IS_LAYER_ON_STATE(state, _NAV)) {
// state |= 1 << _NUM; // turn on NUM
// } else {
// // if both NAV and SYM are off, de-latch NUM
// if (!IS_LAYER_ON_STATE(state, _SYM) && !IS_LAYER_ON_STATE(state, _NAV)) {
// NUM_latched = false;
// }
// // since both layers aren't held, turn off NUM
// state &= ~(1 << _NUM);
// }
// } else if (IS_LAYER_ON_STATE(state, _NUM)) {
// NUM_latched = true;
// // turn on NAV and SYM too, since the layer keys were consumed by the combo activation
// state |= 1 << _NAV | 1 << _SYM;
// }
// return state;
return update_tri_layer_state(state, _SYM, _NAV, _NUM);
}

View file

@ -0,0 +1,16 @@
#pragma once
#include QMK_KEYBOARD_H
#include <stdbool.h>
enum {
_BASE,
_GAME,
_SH_ARROW,
_SYM,
_NAV,
_NUM,
_FUNC,
};
extern bool NUM_latched;