From 437d0b68bb1523181d626ccb421e240b90460db2 Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Fri, 11 Apr 2025 04:38:02 +0200 Subject: [PATCH] Add Splitkb.com Elora rev1 (#866) * Add splitkb's Elora * Add Vial support for splitkb.com's Elora * Add selectable labels * Add Joystick * Increase the EEPROM size for layout options and share the encoder button with the joystick button so it can be set * fix missing call to keyboard init user for elora * snapshot * Fixed joystick and RGB Joystick now works on slave side, RGB convert to RGB matrix and now sync correctly when replugging TODO: Fix OLED not working when only connected on the slave side * Add slave only OLED support * Add fixes * Cleaning up * Add encoder quadrature and update files * merge 'splitkb/qmk_firmware/elora` * disable lto * Update RGB keycodes --------- Co-authored-by: Leah Post Co-authored-by: harveysch <126267034+harvey-splitkb@users.noreply.github.com> Co-authored-by: Thomas Baart --- keyboards/splitkb/elora/keymaps/vial/config.h | 23 + keyboards/splitkb/elora/keymaps/vial/keymap.c | 401 ++++++++++++++++++ keyboards/splitkb/elora/keymaps/vial/rules.mk | 11 + .../splitkb/elora/keymaps/vial/vial.json | 73 ++++ 4 files changed, 508 insertions(+) create mode 100644 keyboards/splitkb/elora/keymaps/vial/config.h create mode 100644 keyboards/splitkb/elora/keymaps/vial/keymap.c create mode 100644 keyboards/splitkb/elora/keymaps/vial/rules.mk create mode 100644 keyboards/splitkb/elora/keymaps/vial/vial.json diff --git a/keyboards/splitkb/elora/keymaps/vial/config.h b/keyboards/splitkb/elora/keymaps/vial/config.h new file mode 100644 index 0000000000..a271c9423d --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/vial/config.h @@ -0,0 +1,23 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Myriad boilerplate +#define MYRIAD_ENABLE + +/// Vial-specific settings + +// Increase the EEPROM size for layout options +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 + +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +// Default is 2, needed because keymap has 7 layers +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 + +#define VIAL_KEYBOARD_UID {0xB3, 0x8D, 0x94, 0xDA, 0xB3, 0xD7, 0xDC, 0x3D} + +#define VIAL_UNLOCK_COMBO_ROWS { 3, 9 } +#define VIAL_UNLOCK_COMBO_COLS { 2, 5 } diff --git a/keyboards/splitkb/elora/keymaps/vial/keymap.c b/keyboards/splitkb/elora/keymaps/vial/keymap.c new file mode 100644 index 0000000000..df0fd4bcba --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/vial/keymap.c @@ -0,0 +1,401 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST, +}; + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released). + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | |LCtrl | | RCtrl| | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | LAlt | | RAlt | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_QWERTY] = LAYOUT_myr( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_LCTL, KC_RCTL, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_LALT, KC_RALT, KC_H , KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N , KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + + KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | Tab | ' " | , < | . > | P | Y | |LCtrl | | RCtrl| | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | LAlt | | RAlt | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_DVORAK] = LAYOUT_myr( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_LCTL, KC_RCTL, KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_LALT, KC_RALT, KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + + KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE + ), + +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | Tab | Q | W | F | P | B | |LCtrl | | RCtrl| | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | R | S | T | G | | LAlt | | RAlt | | M | N | E | I | O |Ctrl/' "| + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_COLEMAK_DH] = LAYOUT_myr( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_LCTL, KC_RCTL, KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_LALT, KC_RALT, KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + + KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | | | | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | | | | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_NAV] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | ` | 1 | 2 | 3 | 4 | 5 | | | | | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | | | | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,-----------------------------. ,------. ,---------------------------. ,------. + * | | | | | | | | | | | | | | + * `-----------------------------' `------' `---------------------------' '------' + */ + [_SYM] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | | | | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,-----------------------------. ,------. ,---------------------------. ,------. + * | | | | | | | | | | | | | | + * `-----------------------------' `------' `---------------------------' '------' + */ + [_FUNCTION] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | | |QWERTY| | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | | | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,-----------------------------. ,------. ,---------------------------. ,------. + * | | | | | | | | | | | | | | + * `-----------------------------' `------' `---------------------------' '------' + */ + [_ADJUST] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVORAK , _______, _______, _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + + ), + +// /* +// * Layer template - LAYOUT +// * +// * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), + +// /* +// * Layer template - LAYOUT_myr +// * +// * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// * +// * ,-----------------------------. ,------. ,---------------------------. ,------. +// * | | | | | | | | | | | | | | +// * `-----------------------------' `------' `---------------------------' '------' +// */ +// [_LAYERINDEX] = LAYOUT_myr( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +}; + +/* The default OLED and rotary encoder code can be found at the bottom of qmk_firmware/keyboards/splitkb/elora/rev1/rev1.c + * These default settings can be overriden by your own settings in your keymap.c + * DO NOT edit the rev1.c file; instead override the weakly defined default functions by your own. + */ + +/* DELETE THIS LINE TO UNCOMMENT (1/2) +#ifdef OLED_ENABLE +bool oled_task_user(void) { + // Your code goes here +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // Your code goes here +} +#endif +DELETE THIS LINE TO UNCOMMENT (2/2) */ + +// Vial-specific encoder code + +#if defined(ENCODER_MAP_ENABLE) +bool encoder_update_user(uint8_t index, bool clockwise) { + return false; +} + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [1] = { + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [2] = { + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [3] = { + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [4] = { + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [5] = { + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [6] = { + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + } +}; +#endif diff --git a/keyboards/splitkb/elora/keymaps/vial/rules.mk b/keyboards/splitkb/elora/keymaps/vial/rules.mk new file mode 100644 index 0000000000..236f77f192 --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/vial/rules.mk @@ -0,0 +1,11 @@ +# Copyright 2024 splitkb.com (support@splitkb.com) +# SPDX-License-Identifier: GPL-2.0-or-later + +LTO_ENABLE = no + +## Vial-specific settings + +VIA_ENABLE = yes +VIAL_ENABLE = yes +VIALRGB_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/splitkb/elora/keymaps/vial/vial.json b/keyboards/splitkb/elora/keymaps/vial/vial.json new file mode 100644 index 0000000000..22ba232ffd --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/vial/vial.json @@ -0,0 +1,73 @@ +{ + "name": "Elora", + "vendorId":"0x8D1D", + "productId":"0x9D9D", + "lighting": "vialrgb", + "matrix":{ + "rows":12, + "cols":8 + }, + "layouts":{ + "labels": [ + [ + "Myriad card left", + "None", + "Macropad", + "Encoder", + "Joystick" + ], + [ + "Myriad card right", + "None", + "Macropad", + "Encoder", + "Joystick" + ], + "Encoder 1 Left", + "Encoder 2 Left", + "Encoder 3 Left", + "Encoder 1 Right", + "Encoder 2 Right", + "Encoder 3 Right", + "Foot pedal 1 Left", + "Foot pedal 2 Left", + "Foot pedal 3 Left", + "Foot pedal 1 Right", + "Foot pedal 2 Right", + "Foot pedal 3 Right" + ], + "keymap": [ + [{"x":6.5},"0,0\n\n\n2,1\n\n\n\n\n\ne","0,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.5},"0,1\n\n\n8,1",{"x":0.5},"6,6\n\n\n11,1",{"x":0.5},"4,0\n\n\n5,1\n\n\n\n\n\ne","4,1\n\n\n5,1\n\n\n\n\n\ne"], + [{"x":6.5},"1,0\n\n\n3,1\n\n\n\n\n\ne","1,1\n\n\n3,1\n\n\n\n\n\ne",{"x":0.5},"0,2\n\n\n9,1",{"x":0.5},"6,5\n\n\n12,1",{"x":0.5},"5,0\n\n\n6,1\n\n\n\n\n\ne","5,1\n\n\n6,1\n\n\n\n\n\ne"], + [{"x":6.5},"2,0\n\n\n4,1\n\n\n\n\n\ne","2,1\n\n\n4,1\n\n\n\n\n\ne",{"x":0.5},"0,3\n\n\n10,1",{"x":0.5},"6,4\n\n\n13,1",{"x":0.5},"6,0\n\n\n7,1\n\n\n\n\n\ne","6,1\n\n\n7,1\n\n\n\n\n\ne"], + [{"y":-0.25,"x":3},"3,2",{"x":13},"9,5"], + [{"y":-0.75,"x":2},"3,1",{"x":1},"2,1",{"x":11},"8,6",{"x":1},"9,6"], + [{"y":-0.75,"x":5},"2,2",{"x":0.5,"d":true},"0,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n2,0\n\n\n\n\n\ne",{"x":0.5,"d":true},"0,1\n\n\n8,0",{"x":0.5,"d":true},"6,6\n\n\n11,0",{"x":0.5,"d":true},"4,0\n\n\n5,0\n\n\n\n\n\ne",{"d":true},"4,1\n\n\n5,0\n\n\n\n\n\ne",{"x":1},"8,5"], + [{"y":-0.75},"4,1","4,2",{"x":17},"10,5","10,6"], + [{"y":-0.75,"x":3},"3,3",{"x":13},"9,4"], + [{"y":-0.75,"x":2},"3,0",{"x":1},"2,0",{"x":11},"8,7",{"x":1},"9,7"], + [{"y":-0.75,"x":5},"2,3",{"x":0.5,"d":true},"1,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"1,1\n\n\n3,0\n\n\n\n\n\ne",{"x":0.5,"d":true},"0,2\n\n\n9,0",{"x":0.5,"d":true},"6,5\n\n\n12,0",{"x":0.5,"d":true},"5,0\n\n\n6,0\n\n\n\n\n\ne",{"d":true},"5,1\n\n\n6,0\n\n\n\n\n\ne",{"x":1},"8,4"], + [{"y":-0.75},"4,0","4,3",{"x":17},"10,4","10,7"], + [{"y":-0.75,"x":3},"3,4",{"x":13},"9,3"], + [{"y":-0.75,"x":2},"3,7",{"x":1},"2,7",{"x":11},"8,0",{"x":1},"9,0"], + [{"y":-0.75,"x":5},"2,4",{"x":0.5,"d":true},"2,0\n\n\n4,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n4,0\n\n\n\n\n\ne",{"x":0.5,"d":true},"0,3\n\n\n10,0",{"x":0.5,"d":true},"6,4\n\n\n13,0",{"x":0.5,"d":true},"6,0\n\n\n7,0\n\n\n\n\n\ne",{"d":true},"6,1\n\n\n7,0\n\n\n\n\n\ne",{"x":1},"8,3"], + [{"y":-0.75},"4,7","4,4",{"x":17},"10,3","10,0"], + [{"y":-0.75,"x":3},"3,5",{"x":13},"9,2"], + [{"y":-0.75,"x":2},"3,6",{"x":1},"2,6",{"x":11},"8,1",{"x":1},"9,1"], + [{"y":-0.75,"x":5},"2,5",{"x":9},"8,2"], + [{"y":-0.75},"4,6","4,5",{"x":17},"10,2","10,1"], + [{"y":-0.25,"x":2.5},"1,7","1,6",{"x":1.25},"0,0",{"x":7.5},"6,7",{"x":1.25},"7,1","7,0"], + [{"y":-0.5,"x":4.5},"1,5",{"x":1.25},"0,4",{"x":5.5},"6,3",{"x":1.25},"7,2"], + [{"y":-0.5,"x":5.5},"1,4",{"x":8},"7,3"], + [{"y":-0.5,"x":6.5},"0,5",{"x":6},"6,2"], + [{"y":-0.5,"d":true},"5,0\n\n\n0,0",{"d":true},"5,1\n\n\n0,0",{"x":0.5,"d":true},"3,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"3,1\n\n\n0,0\n\n\n\n\n\ne",{"x":12,"d":true},"11,0\n\n\n1,0",{"d":true},"11,1\n\n\n1,0",{"x":0.5,"d":true},"7,0\n\n\n1,0\n\n\n\n\n\ne",{"d":true},"7,1\n\n\n1,0\n\n\n\n\n\ne"], + [{"d":true},"5,2\n\n\n0,0",{"d":true},"5,3\n\n\n0,0",{"x":1,"d":true},"5,4\n\n\n0,0",{"x":12.5,"d":true},"11,2\n\n\n1,0",{"d":true},"11,3\n\n\n1,0",{"x":1,"d":true},"11,4\n\n\n1,0"], + [{"y":0.25},"5,0\n\n\n0,1","5,1\n\n\n0,1",{"x":0.5,"d":true},"3,0\n\n\n0,1\n\n\n\n\n\ne",{"d":true},"3,1\n\n\n0,1\n\n\n\n\n\ne",{"x":12},"11,0\n\n\n1,1","11,1\n\n\n1,1",{"x":0.5,"d":true},"7,0\n\n\n1,1\n\n\n\n\n\ne",{"d":true},"7,1\n\n\n1,1\n\n\n\n\n\ne"], + ["5,2\n\n\n0,1","5,3\n\n\n0,1",{"x":1,"d":true},"5,4\n\n\n0,1",{"x":12.5},"11,2\n\n\n1,1","11,3\n\n\n1,1",{"x":1,"d":true},"11,4\n\n\n1,1"], + [{"y":0.25,"d":true},"5,0\n\n\n0,2",{"d":true},"5,1\n\n\n0,2",{"x":0.5},"3,0\n\n\n0,2\n\n\n\n\n\ne","3,1\n\n\n0,2\n\n\n\n\n\ne",{"x":12,"d":true},"11,0\n\n\n1,2",{"d":true},"11,1\n\n\n1,2",{"x":0.5},"7,0\n\n\n1,2\n\n\n\n\n\ne","7,1\n\n\n1,2\n\n\n\n\n\ne"], + [{"d":true},"5,2\n\n\n0,2",{"d":true},"5,3\n\n\n0,2",{"x":1},"5,4\n\n\n0,2",{"x":12.5,"d":true},"11,2\n\n\n1,2",{"d":true},"11,3\n\n\n1,2",{"x":1},"11,4\n\n\n1,2"], + [{"y":0.25,"d":true},"5,0\n\n\n0,3",{"d":true},"5,1\n\n\n0,3",{"x":0.5,"d":true},"3,0\n\n\n0,3\n\n\n\n\n\ne",{"d":true},"3,1\n\n\n0,3\n\n\n\n\n\ne",{"x":12,"d":true},"11,0\n\n\n1,3",{"d":true},"11,1\n\n\n1,3",{"x":0.5,"d":true},"7,0\n\n\n1,3\n\n\n\n\n\ne",{"d":true},"7,1\n\n\n1,3\n\n\n\n\n\ne"], + [{"d":true},"5,2\n\n\n0,3",{"d":true},"5,3\n\n\n0,3",{"x":1},"5,4\n\n\n0,3",{"x":12.5,"d":true},"11,2\n\n\n1,3",{"d":true},"11,3\n\n\n1,3",{"x":1},"11,4\n\n\n1,3"] + ] + } +}