diff --git a/keyboards/keebio/nyquist/keymaps/vial/config.h b/keyboards/keebio/nyquist/keymaps/vial/config.h new file mode 100644 index 0000000000..1b9dda59ca --- /dev/null +++ b/keyboards/keebio/nyquist/keymaps/vial/config.h @@ -0,0 +1,58 @@ +#pragma once + +#define VIAL_KEYBOARD_UID {0xBB, 0xBB, 0xAD, 0x3D, 0x70, 0x81, 0xF6, 0x41} +#define VIAL_UNLOCK_COMBO_ROWS {0, 0} +#define VIAL_UNLOCK_COMBO_COLS {0, 1} + +#if defined(NYQUIST_REV1) + #define DYNAMIC_KEYMAP_LAYER_COUNT 6 + #define VIAL_MACRO_ENTRIES 16 + #define DYNAMIC_KEYMAP_MACRO_COUNT 16 + #define VIAL_TAP_DANCE_ENTRIES 8 + +#elif defined(NYQUIST_REV2) + #define DYNAMIC_KEYMAP_LAYER_COUNT 6 + #define VIAL_MACRO_ENTRIES 16 + #define DYNAMIC_KEYMAP_MACRO_COUNT 16 + #define VIAL_TAP_DANCE_ENTRIES 8 + +#elif defined(NYQUIST_REV3) + #define DYNAMIC_KEYMAP_LAYER_COUNT 6 + #define VIAL_MACRO_ENTRIES 32 + #define DYNAMIC_KEYMAP_MACRO_COUNT 32 + #define VIAL_COMBO_ENTRIES 16 + #define VIAL_TAP_DANCE_ENTRIES 8 + +#elif defined(NYQUIST_REV4) + #define DYNAMIC_KEYMAP_LAYER_COUNT 8 + #define VIAL_MACRO_ENTRIES 64 + #define DYNAMIC_KEYMAP_MACRO_COUNT 64 + #define VIAL_COMBO_ENTRIES 64 + #define VIAL_TAP_DANCE_ENTRIES 32 + +#elif defined(NYQUIST_REV5) + #define DYNAMIC_KEYMAP_LAYER_COUNT 8 + #define VIAL_MACRO_ENTRIES 64 + #define DYNAMIC_KEYMAP_MACRO_COUNT 64 + #define VIAL_COMBO_ENTRIES 64 + #define VIAL_TAP_DANCE_ENTRIES 32 + +#else + #error "Unknown revision - missing OPT_DEFS?" +#endif + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#ifdef RGBLIGHT_ENABLE +# undef RGBLIGHT_LED_COUNT +# define RGBLIGHT_ANIMATIONS +# define RGBLIGHT_LED_COUNT 60 +# undef RGBLED_SPLIT +# define RGBLED_SPLIT { 30, 30 } +# define RGBLIGHT_LIMIT_VAL 120 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +#endif diff --git a/keyboards/keebio/nyquist/keymaps/vial/keymap.c b/keyboards/keebio/nyquist/keymaps/vial/keymap.c new file mode 100644 index 0000000000..7b9a250b78 --- /dev/null +++ b/keyboards/keebio/nyquist/keymaps/vial/keymap.c @@ -0,0 +1,233 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_names { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK) +#define DVORAK DF(_DVORAK) +#define RAISE MO(_RAISE) +#define LOWER MO(_LOWER) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_5x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + BL_STEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME,KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_5x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT_ortho_5x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, QK_BOOT, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_colemak); + #endif + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_dvorak); + #endif + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_COLEMAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_DVORAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_LOWER] = { ENCODER_CCW_CW(RM_NEXT, RM_PREV), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [_RAISE] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/keebio/nyquist/keymaps/vial/rules.mk b/keyboards/keebio/nyquist/keymaps/vial/rules.mk new file mode 100644 index 0000000000..a61b936318 --- /dev/null +++ b/keyboards/keebio/nyquist/keymaps/vial/rules.mk @@ -0,0 +1,57 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes + +ENCODER_MAP_ENABLE = yes +MOUSEKEY_ENABLE = yes +MUSIC_ENABLE = no + +#REV1 +ifeq ($(KEYBOARD), keebio/nyquist/rev1) + OPT_DEFS += -DNYQUIST_REV1 + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = no + VIALRGB_ENABLE = no + COMBO_ENABLE = no + QMK_SETTINGS = no +endif + +#REV2 +ifeq ($(KEYBOARD), keebio/nyquist/rev2) + OPT_DEFS += -DNYQUIST_REV2 + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = no + VIALRGB_ENABLE = no + COMBO_ENABLE = no + QMK_SETTINGS = no +endif + +#REV3 +ifeq ($(KEYBOARD), keebio/nyquist/rev3) + OPT_DEFS += -DNYQUIST_REV3 + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = no + VIALRGB_ENABLE = no + COMBO_ENABLE = no + QMK_SETTINGS = no +endif + +#REV4 +ifeq ($(KEYBOARD), keebio/nyquist/rev4) + OPT_DEFS += -DNYQUIST_REV4 + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = yes + VIALRGB_ENABLE = yes + COMBO_ENABLE = yes + QMK_SETTINGS = yes +endif + +#REV5 +ifeq ($(KEYBOARD), keebio/nyquist/rev5) + OPT_DEFS += -DNYQUIST_REV5 + RGBLIGHT_ENABLE = no + RGB_MATRIX_ENABLE = yes + VIALRGB_ENABLE = yes + COMBO_ENABLE = yes + QMK_SETTINGS = yes +endif diff --git a/keyboards/keebio/nyquist/keymaps/vial/vial.json b/keyboards/keebio/nyquist/keymaps/vial/vial.json new file mode 100644 index 0000000000..61c07dba99 --- /dev/null +++ b/keyboards/keebio/nyquist/keymaps/vial/vial.json @@ -0,0 +1,17 @@ +{ + "lighting": "vialrgb", + "matrix": { "rows": 10, "cols": 6 }, + "layouts": { + "labels":[ + "4x12 (No bottom row)" + ], + "keymap": [ + ["0,0","0,1","0,2","0,3","0,4","0,5",{"x":1},"5,0","5,1","5,2","5,3","5,4","5,5"], + ["1,0","1,1","1,2","1,3","1,4","1,5",{"x":1},"6,0","6,1","6,2","6,3","6,4","6,5"], + ["2,0","2,1","2,2","2,3","2,4","2,5",{"x":1},"7,0","7,1","7,2","7,3","7,4","7,5"], + ["3,0","3,1","3,2","3,3","3,4","3,5",{"x":1},"8,0","8,1","8,2","8,3","8,4","8,5"], + ["4,0\n\n\n0,0","4,1\n\n\n0,0","4,2\n\n\n0,0","4,3\n\n\n0,0","4,4\n\n\n0,0","4,5\n\n\n0,0",{"x":1},"9,0\n\n\n0,0","9,1\n\n\n0,0","9,2\n\n\n0,0","9,3\n\n\n0,0","9,4\n\n\n0,0","9,5\n\n\n0,0"], + [{"d":true},"4,0\n\n\n0,1",{"d":true},"4,1\n\n\n0,1",{"d":true},"4,2\n\n\n0,1",{"d":true},"4,3\n\n\n0,1",{"d":true},"4,4\n\n\n0,1",{"d":true},"4,5\n\n\n0,1",{"x":1,"d":true},"9,0\n\n\n0,1",{"d":true},"9,1\n\n\n0,1",{"d":true},"9,2\n\n\n0,1",{"d":true},"9,3\n\n\n0,1",{"d":true},"9,4\n\n\n0,1",{"d":true},"9,5\n\n\n0,1"] + ] + } +}