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 <leah@splitkb.com>
Co-authored-by: harveysch <126267034+harvey-splitkb@users.noreply.github.com>
Co-authored-by: Thomas Baart <support@splitkb.com>
This commit is contained in:
VeyPatch 2025-04-11 04:38:02 +02:00 committed by GitHub
parent 8e6ba6b689
commit 437d0b68bb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 508 additions and 0 deletions

View file

@ -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 }

View file

@ -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

View file

@ -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

View file

@ -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"]
]
}
}