From b4586704792268dea0466a29126f86387f4abf43 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Wed, 23 Oct 2024 16:20:48 +0200
Subject: [PATCH 01/13] Add Halcyon Elora rev2
---
 .../halcyon/elora/keymaps/default/keymap.c    | 229 +++++++++++++++
 .../halcyon/elora/keymaps/default/readme.md   | 262 ++++++++++++++++++
 .../halcyon/elora/keymaps/vial/config.h       |  17 ++
 .../halcyon/elora/keymaps/vial/keymap.json    |  79 ++++++
 .../halcyon/elora/keymaps/vial/rules.mk       |   5 +
 .../halcyon/elora/keymaps/vial/vial.json      |  61 ++++
 6 files changed, 653 insertions(+)
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/default/readme.md
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/vial/config.h
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/vial/keymap.json
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/vial/vial.json
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c
new file mode 100644
index 00000000..d75ac928
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c
@@ -0,0 +1,229 @@
+// 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  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+ * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+ * |  Tab   |   Q  |   W  |   E  |   R  |   T  |                              |   Y  |   U  |   I  |   O  |   P  |  Bksp  |
+ * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+ * |Ctrl/Esc|   A  |   S  |   D  |   F  |   G  |                              |   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|      |      |  |      |      |      |      |      |
+ *                        `----------------------------------'  `----------------------------------'
+ */
+    [_QWERTY] = LAYOUT(
+     KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_Y,   KC_U ,  KC_I ,   KC_O ,  KC_P , KC_BSPC,
+     CTL_ESC , KC_A ,  KC_S   ,  KC_D  ,   KC_F ,   KC_G ,                                        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
+    ),
+
+/*
+ * Base Layer: Dvorak
+ *
+ * ,-------------------------------------------.                              ,-------------------------------------------.
+ * |  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+ * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+ * |  Tab   | ' "  | , <  | . >  |   P  |   Y  |                              |   F  |   G  |   C  |   R  |   L  |  Bksp  |
+ * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+ * |Ctrl/Esc|   A  |   O  |   E  |   U  |   I  |                              |   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|      |      |  |      |      |      |      |      |
+ *                        `----------------------------------'  `----------------------------------'
+ */
+    [_DVORAK] = LAYOUT(
+     KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_F,   KC_G ,  KC_C ,   KC_R ,  KC_L , KC_BSPC,
+     CTL_ESC , KC_A ,  KC_O   ,  KC_E  ,   KC_U ,   KC_I ,                                        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
+    ),
+
+/*
+ * Base Layer: Colemak DH
+ *
+ * ,-------------------------------------------.                              ,-------------------------------------------.
+ * |  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+ * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+ * |  Tab   |   Q  |   W  |   F  |   P  |   B  |                              |   J  |   L  |   U  |   Y  | ;  : |  Bksp  |
+ * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+ * |Ctrl/Esc|   A  |   R  |   S  |   T  |   G  |                              |   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|      |      |  |      |      |      |      |      |
+ *                        `----------------------------------'  `----------------------------------'
+ */
+    [_COLEMAK_DH] = LAYOUT(
+     KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_J,   KC_L ,  KC_U ,   KC_Y ,KC_SCLN, KC_BSPC,
+     CTL_ESC , KC_A ,  KC_R   ,  KC_S  ,   KC_T ,   KC_G ,                                        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
+    ),
+
+/*
+ * 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  |
+ * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+ *                        |      |      |      |      |      |  |      |      |      |      |      |
+ *                        |      |      |      |      |      |  |      |      |      |      |      |
+ *                        `----------------------------------'  `----------------------------------'
+ */
+    [_NAV] = LAYOUT(
+      _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
+      _______, _______, _______, _______, _______, _______,                                     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(
+      _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
+      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(
+      _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
+      _______,  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(
+      _______, _______, _______, _______, _______, _______,                                    _______, _______, _______, _______,  _______, _______,
+      _______, _______, _______, QWERTY , _______, _______,                                    _______, _______, _______, _______,  _______, _______,
+      _______, _______, _______, DVORAK , _______, _______,                                    RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI,  RGB_MOD, _______,
+      _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______,
+                                 _______, _______, _______,_______, _______, _______, _______, _______, _______, _______
+    ),
+
+// /*
+//  * Layer template
+//  *
+//  * ,-------------------------------------------.                              ,-------------------------------------------.
+//  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
+//  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+//  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
+//  * |--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+//  * |        |      |      |      |      |      |                              |      |      |      |      |      |        |
+//  * |--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+//  * |        |      |      |      |      |      |      |      |  |      |      |      |      |      |      |      |        |
+//  * `----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+//  *                        |      |      |      |      |      |  |      |      |      |      |      |
+//  *                        |      |      |      |      |      |  |      |      |      |      |      |
+//  *                        `----------------------------------'  `----------------------------------'
+//  */
+//     [_LAYERINDEX] = LAYOUT(
+//       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
+//       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
+//       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
+//       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+//                                  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+//     ),
+//
+};
\ No newline at end of file
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default/readme.md b/keyboards/splitkb/halcyon/elora/keymaps/default/readme.md
new file mode 100644
index 00000000..bd386bfa
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/default/readme.md
@@ -0,0 +1,262 @@
+# Halcyon Elora's Default Keymap
+
+The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys.
+Hardware features of the Elora such as rotary encoders and underglow are also supported.
+
+The Elora keymap is in essence identical to the Kyria keymap, just with an additional number row. A deep dive into the keymap is provided there.
+
+The five different layers are the following:
+1. Base layer (QWERTY, Colemak-DH or Dvorak)
+2. Navigation layer
+3. Symbols/Numbers layer
+4. Function layer
+5. Adjust layer
+
+## Base layer(s)
+```
+Base Layer: -
+
+,-------------------------------------------.                              ,-------------------------------------------.
+|  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|  Tab   |   -  |   -  |   -  |   -  |   -  |                              |   -  |   -  |   -  |   -  |   -  |  Bksp  |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|Ctrl/Esc|   -  |   -  |   -  |   -  |   -  |                              |   -  |   -  |   -  |   -  |   -  |Ctrl/ - |
+|--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+| LShift |   -  |   -  |   -  |   -  |   -  | [ {  |CapsLk|  |F-Keys|  ] } |   -  |   -  |   -  |   -  |   -  | RShift |
+`----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+                       |Adjust| LGUI | LAlt/| Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
+                       |      |      | Enter|      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer).
+
+For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”.
+
+```
+Base Layer: QWERTY
+
+,-------------------------------------------.                              ,-------------------------------------------.
+|  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|  Tab   |   Q  |   W  |   E  |   R  |   T  |                              |   Y  |   U  |   I  |   O  |   P  |  Bksp  |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|Ctrl/Esc|   A  |   S  |   D  |   F  |   G  |                              |   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|      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+
+Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar.
+
+
+
+
+After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Elora, as illustrated in the animation above, the result looks like this:
+
+```
+,-------------------------------------------.                              ,-------------------------------------------.
+|  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|  Tab   |   Q  |   W  |   E  |   R  |   T  |                              |   Y  |   U  |   I  |   O  |   P  |  Bksp  |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+| Cap Lk |   A  |   S  |   D  |   F  |   G  |                              |   H  |   J  |   K  |   L  | ;  : | '  "   |
+|--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+| LShift |   Z  |   X  |   C  |   V  |   B  |      |      |  |      |      |   N  |   M  | ,  < | . >  | /  ? | RShift |
+`----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+                       | LCtrl| LGUI | LAlt | Space|      |  |      | Space| AltGr| RGUI | Menu |
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       `----------------------------------'  '----------------------------------'
+```
+
+First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later.
+
+The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Elora users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. 
+
+We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key?
+
+All of this leaves us with three blank keys.
+
+```
+,-------------------------------------------.                              ,-------------------------------------------.
+|  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|  Tab   |   Q  |   W  |   E  |   R  |   T  |                              |   Y  |   U  |   I  |   O  |   P  |  Bksp  |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|Ctrl/Esc|   A  |   S  |   D  |   F  |   G  |                              |   H  |   J  |   K  |   L  | ;  : | '  "   |
+|--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+| LShift |   Z  |   X  |   C  |   V  |   B  | [ {  |      |  |      |  ] } |   N  |   M  | ,  < | . >  | /  ? | RShift |
+`--------+-------------+--------------------+------+------|  |------+------+--------------------+------+---------------'
+                       |      | LGUI | LAlt | Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       `----------------------------------'  '----------------------------------'
+```
+
+These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing.  They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action.
+
+```
+,-------------------------------------------.                              ,-------------------------------------------.
+|  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|  Tab   |   Q  |   W  |   E  |   R  |   T  |                              |   Y  |   U  |   I  |   O  |   P  |  Bksp  |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|Ctrl/Esc|   A  |   S  |   D  |   F  |   G  |                              |   H  |   J  |   K  |   L  | ;  : | '  "   |
+|--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+| LShift |   Z  |   X  |   C  |   V  |   B  | [ {  |CapsLk|  |F-keys|  ] } |   N  |   M  | ,  < | . >  | /  ? | RShift |
+`----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+                       |Adjust| LGUI | LAlt | Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+
+The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose.
+
+Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Elora.
+
+
+```
+,-------------------------------------------.                              ,-------------------------------------------.
+|  Esc   |   1  |   2  |   3  |   4  |   5  |                              |   6  |   7  |   8  |   9  |   0  |  Esc   |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|  Tab   |   Q  |   W  |   E  |   R  |   T  |                              |   Y  |   U  |   I  |   O  |   P  |  Bksp  |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|Ctrl/Esc|   A  |   S  |   D  |   F  |   G  |                              |   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|      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+
+ 
+
+## Navigation layer
+
+```
+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  |
+`----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+
+This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys.
+
+Useful mnemonics:
+- “GACS” to remember the order of the modifiers on the left-hand home row
+- Scroll Lock is on the same key as Caps Lock because they're both locks
+- Delete is on the same key as Backspace because they both erase characters
+- Home is the leftmost position on the current line so it is above ←. Same logic applies for End.
+- Media Previous = ⏮, Media Next = ⏭
+- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys.
+
+## Sym layer
+```
+Sym Layer: Numbers, symbols
+                                                                                                                         
+,-------------------------------------------.                              ,-------------------------------------------.
+|        |      |      |      |      |      |                              |      |      |      |      |      |        |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|    `   |  1   |  2   |  3   |  4   |  5   |                              |   6  |  7   |  8   |  9   |  0   |   =    |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|    ~   |  !   |  @   |  #   |  $   |  %   |                              |   ^  |  &   |  *   |  (   |  )   |   +    |
+|--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+|    |   |   \  |  :   |  ;   |  -   |  [   |  {   |      |  |      |   }  |   ]  |  _   |  ,   |  .   |  /   |   ?    |
+`----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols.
+
+The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row.
+
+The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. 
+
+Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|.
+
+In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit.
+
+## Function layer
+```
+Function Layer: Function keys
+                                                                                                                         
+,-------------------------------------------.                              ,-------------------------------------------.
+|        |      |      |      |      |      |                              |      |      |      |      |      |        |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|        |  F9  | F10  | F11  | F12  |      |                              |      |      |      |      |      |        |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|        |  F5  |  F6  |  F7  |  F8  |      |                              |      | Shift| Ctrl |  Alt |  GUI |        |
+|--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+|        |  F1  |  F2  |  F3  |  F4  |      |      |      |  |      |      |      |      |      |      |      |        |
+`----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers.
+
+The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer.
+
+Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement.
+
+
+## Adjust layer
+```
+Adjust Layer: Default layer settings, RGB
+                                                                                                                         
+,-------------------------------------------.                              ,-------------------------------------------.
+|        |      |      |      |      |      |                              |      |      |      |      |      |        |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|        |      |      |QWERTY|      |      |                              |      |      |      |      |      |        |
+|--------+------+------+------+------+------|                              |------+------+------+------+------+--------|
+|        |      |      |Dvorak|      |      |                              | TOG  | SAI  | HUI  | VAI  | MOD  |        |
+|--------+------+------+------+------+------+-------------.  ,-------------+------+------+------+------+------+--------|
+|        |      |      |Colmak|      |      |      |      |  |      |      |      | SAD  | HUD  | VAD  | RMOD |        |
+`----------------------+------+------+------+------+------|  |------+------+------+------+------+----------------------'
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       |      |      |      |      |      |  |      |      |      |      |      |
+                       `----------------------------------'  `----------------------------------'
+```
+
+Default layer settings on the left and various RGB underglow controls on the right.
+
+The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation.
+
+NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default:
+```c
+enum layers {
+    _DVORAK = 0,
+    _QWERTY,
+    _COLEMAK_DH,
+    _NAV,
+    _SYM,
+    _FUNCTION,
+    _ADJUST
+};
+```
+or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`.
+
+## Hardware Features
+
+### Rotary Encoder
+The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn.
+
+## Going further…
+
+This default keymap can be used as is, unchanged, as a daily driver for your Elora but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove.
+
+Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration.
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/config.h b/keyboards/splitkb/halcyon/elora/keymaps/vial/config.h
new file mode 100644
index 00000000..dae7a4ee
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial/config.h
@@ -0,0 +1,17 @@
+// Copyright 2024 splitkb.com (support@splitkb.com)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define VIAL_KEYBOARD_UID {0x91, 0xC0, 0x72, 0xB1, 0xEA, 0x3F, 0xF0, 0xBA}
+
+#define VIAL_UNLOCK_COMBO_ROWS { 0, 6 }
+#define VIAL_UNLOCK_COMBO_COLS { 1, 1 }
+
+// Increase the EEPROM size for layout options
+#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
+
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define RGB_MATRIX_KEYPRESSES
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 8
\ No newline at end of file
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/keymap.json b/keyboards/splitkb/halcyon/elora/keymaps/vial/keymap.json
new file mode 100644
index 00000000..2a70c9e4
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial/keymap.json
@@ -0,0 +1,79 @@
+{
+    "keyboard": "splitkb/halcyon/elora/rev2",
+    "keymap": "vial-halcyon",
+    "version": 1,
+    "layout": "LAYOUT_hlc",
+    "layers": [
+        ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "MT(MOD_RCTL, KC_QUOTE)", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
+        ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_F", "KC_G", "KC_C", "KC_R", "KC_L", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_O", "KC_E", "KC_U", "KC_I", "KC_D", "KC_H", "KC_T", "KC_N", "KC_S", "MT(MOD_RCTL, KC_MINUS)", "KC_LSFT", "KC_SCLN", "KC_Q", "KC_J", "KC_K", "KC_X", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_B", "KC_M", "KC_W", "KC_V", "KC_Z", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
+        ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_G", "KC_M", "KC_N", "KC_E", "KC_I", "KC_O", "MT(MOD_RCTL, KC_QUOTE)", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_D", "KC_V", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_K", "KC_H", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
+        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_HOME", "KC_UP", "KC_END", "KC_VOLU", "KC_DEL", "KC_TRNS", "KC_LGUI", "KC_LALT", "KC_LCTL", "KC_LSFT", "KC_TRNS", "KC_PGDN", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_VOLD", "KC_INS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_SCRL", "KC_TRNS", "KC_TRNS", "KC_PAUSE", "KC_MPRV", "KC_MPLY", "KC_MNXT", "KC_MUTE", "KC_PSCR", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
+        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "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_TRNS", "KC_TRNS", "KC_RCBR", "KC_RBRC", "KC_UNDS", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_QUES", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
+        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_TRNS", "KC_TRNS", "KC_RSFT", "KC_RCTL", "KC_LALT", "KC_RGUI", "KC_TRNS", "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
+        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(0)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(1)", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_SAI", "RGB_HUI", "RGB_VAI", "RGB_MOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(2)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAD", "RGB_HUD", "RGB_VAD", "RGB_RMOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"]
+    ],
+    "encoders": [
+        [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
+        [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
+        [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
+        [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
+        [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
+        [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
+        [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}]
+    ],
+    "config": {
+        "rgb_matrix": {
+            "animations": {
+                "solid_color": true,
+                "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,
+                "flower_blooming": 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,
+                "starlight": true,
+                "starlight_dual_hue": true,
+                "starlight_dual_sat": true,
+                "riverflow": true
+            }
+        }
+    }
+}
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk b/keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk
new file mode 100644
index 00000000..7df278d5
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk
@@ -0,0 +1,5 @@
+VIA_ENABLE = yes
+VIAL_ENABLE = yes
+VIALRGB_ENABLE = yes
+
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/vial.json b/keyboards/splitkb/halcyon/elora/keymaps/vial/vial.json
new file mode 100644
index 00000000..26fac39f
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial/vial.json
@@ -0,0 +1,61 @@
+{
+    "lighting": "vialrgb",
+    "matrix": {
+        "rows": 12,
+        "cols": 7
+    },
+    "layouts": {
+        "labels": [
+          "Soldered encoder left",
+          [
+              "Halcyon module left",
+              "None",
+              "Encoder"
+          ],
+          "Soldered encoder right",
+          [
+              "Halcyon module right",
+              "None",
+              "Encoder"
+          ]
+        ],
+        "keymap": [
+          [{"y":0.25,"x":3},"0,3",{"x":9},"6,3"],
+          [{"y":-0.75,"x":2},"0,4",{"x":1},"0,2",{"x":7},"6,2",{"x":1},"6,4"],
+          [{"y":-0.875,"x":5},"0,1",{"x":5},"6,1"],
+          [{"y":-0.625},"0,6","0,5",{"x":13},"6,5","6,6"],
+          [{"y":-0.75,"x":3},"1,3",{"x":9},"7,3"],
+          [{"y":-0.75,"x":2},"1,4",{"x":1},"1,2",{"x":7},"7,2",{"x":1},"7,4"],
+          [{"y":-0.875,"x":5},"1,1"],
+          [{"y":-0.995,"x":11},"7,1"],
+          [{"y":-0.63},"1,6","1,5",{"x":13},"7,5","7,6"],
+          [{"y":-0.75,"x":3},"2,3",{"x":9},"8,3"],
+          [{"y":-0.75,"x":2},"2,4",{"x":1},"2,2",{"x":7},"8,2",{"x":1},"8,4"],
+          [{"y":-0.875,"x":5},"2,1",{"x":5},"8,1"],
+          [{"y":-0.625},"2,6","2,5",{"x":13},"8,5","8,6"],
+          [{"y":-0.75,"x":3},"3,3",{"x":9},"9,3"],
+          [{"y":-0.75,"x":2},"3,4",{"x":1},"3,2",{"x":7},"9,2",{"x":1},"9,4"],
+          [{"y":-0.87,"x":5},"3,1",{"x":5},"9,1"],
+          [{"y":-0.63},"3,6","3,5",{"x":13},"9,5","9,6"],
+          [{"y":-0.5,"x":2.5},"4,4",{"x":10},"10,4"],
+          [{"y":1.5,"x":1,"d":true},"5,2\n\n\n1,0",{"x":2,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":1.75,"d":true},"11,2\n\n\n3,0"],
+          [{"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"x":-1,"d":true},"5,1\n\n\n1,0",{"d":true},"5,0\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":-1,"d":true},"5,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"11,1\n\n\n3,0",{"x":-1,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"11,0\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne",{"x":-1,"d":true},"11,3\n\n\n3,0"],
+          [{"x":1,"d":true},"5,4\n\n\n1,0",{"x":13,"d":true},"11,4\n\n\n3,0"],
+          [{"y":0.5,"x":1,"d":true},"5,2\n\n\n1,1",{"x":13,"d":true},"11,2\n\n\n3,1"],
+          ["1,0\n\n\n1,1\n\n\n\n\n\ne",{"x":-1,"d":true},"5,1\n\n\n1,1","5,0\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":-1,"d":true},"5,3\n\n\n1,1",{"x":11,"d":true},"11,1\n\n\n3,1",{"x":-1},"3,0\n\n\n3,1\n\n\n\n\n\ne","11,0\n\n\n3,1",{"d":true},"11,3\n\n\n3,1",{"x":-1},"3,1\n\n\n3,1\n\n\n\n\n\ne"],
+          [{"x":1,"d":true},"5,4\n\n\n1,1",{"x":13,"d":true},"11,4\n\n\n3,1"],
+          [{"rx":4,"ry":8.175,"y":-3.675,"x":-0.5},"4,2"],
+          [{"rx":13,"y":-3.675,"x":-0.5},"10,2"],
+          [{"r":15,"rx":4,"ry":9.175,"y":-4.675,"x":-0.5},"4,1"],
+          [{"r":30,"y":-2,"x":-0.5},"4,3"],
+          [{"x":-0.5},"4,5"],
+          [{"r":45,"y":-2,"x":-0.5},"3,0"],
+          [{"x":-0.5},"4,0"],
+          [{"r":-45,"rx":13,"y":-5.675,"x":-0.5},"9,0"],
+          [{"x":-0.5},"10,0"],
+          [{"r":-30,"y":-2,"x":-0.5},"10,3"],
+          [{"x":-0.5},"10,5"],
+          [{"r":-15,"y":-1,"x":-0.5},"10,1"]          
+        ]
+    }
+}
From 706540d4cbad82b58e598cbf77a4efdb1c014f24 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Wed, 23 Oct 2024 16:28:13 +0200
Subject: [PATCH 02/13] Fix target
---
 .github/workflows/build_binaries.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/build_binaries.yaml b/.github/workflows/build_binaries.yaml
index c96421a1..652588cc 100755
--- a/.github/workflows/build_binaries.yaml
+++ b/.github/workflows/build_binaries.yaml
@@ -11,7 +11,7 @@ jobs:
     uses: qmk/.github/.github/workflows/qmk_userspace_build.yml@main
     with:
       qmk_repo: splitkb/vial-qmk
-      qmk_ref: halcyon-kyria
+      qmk_ref: halcyon
 
   publish:
     name: 'QMK Userspace Publish'
From aed32e83387a3e08c65fc8f1c41f6dda38005109 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Wed, 23 Oct 2024 17:00:14 +0200
Subject: [PATCH 03/13] Add elora specific options
---
 .../keymaps/{default => default_hlc}/keymap.c |  64 ++++++---
 .../{default => default_hlc}/readme.md        |   0
 .../elora/keymaps/default_hlc/rules.mk        |   2 +
 .../halcyon/elora/keymaps/vial/rules.mk       |   5 -
 .../elora/keymaps/{vial => vial_hlc}/config.h |   0
 .../keymaps/{vial => vial_hlc}/keymap.json    |   4 +-
 .../halcyon/elora/keymaps/vial_hlc/rules.mk   |   8 ++
 .../keymaps/{vial => vial_hlc}/vial.json      |   0
 qmk.json                                      | 128 +++++++++---------
 users/halcyon_modules/config.h                |  24 ++++
 users/halcyon_modules/halcyon.c               |  42 ++++++
 11 files changed, 190 insertions(+), 87 deletions(-)
 rename keyboards/splitkb/halcyon/elora/keymaps/{default => default_hlc}/keymap.c (78%)
 rename keyboards/splitkb/halcyon/elora/keymaps/{default => default_hlc}/readme.md (100%)
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/default_hlc/rules.mk
 delete mode 100644 keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk
 rename keyboards/splitkb/halcyon/elora/keymaps/{vial => vial_hlc}/config.h (100%)
 rename keyboards/splitkb/halcyon/elora/keymaps/{vial => vial_hlc}/keymap.json (99%)
 create mode 100644 keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/rules.mk
 rename keyboards/splitkb/halcyon/elora/keymaps/{vial => vial_hlc}/vial.json (100%)
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/keymap.c
similarity index 78%
rename from keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c
rename to keyboards/splitkb/halcyon/elora/keymaps/default_hlc/keymap.c
index d75ac928..bbde0cdb 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c
+++ b/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/keymap.c
@@ -49,13 +49,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                        |Adjust| LGUI | LAlt/| Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
  *                        |      |      | Enter|      |      |  |      |      |      |      |      |
  *                        `----------------------------------'  `----------------------------------'
+ * ,-----------------------------------.                                              ,-----------------------------------.
+ * | MUTE | ____ | _____ | ____ | ____ |                                              | MUTE | ____ | _____ | ____ | ____ |
+ * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_QWERTY] = LAYOUT(
+    [_QWERTY] = LAYOUT_split_4x6_5_hlc(
      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_Y,   KC_U ,  KC_I ,   KC_O ,  KC_P , KC_BSPC,
      CTL_ESC , KC_A ,  KC_S   ,  KC_D  ,   KC_F ,   KC_G ,                                        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
+                                ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV   ,     SYM    , KC_SPC ,KC_RALT, KC_RGUI, KC_APP,
+     KC_MUTE, KC_NO,  KC_NO, KC_NO, KC_NO,                                                                KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO
     ),
 
 /*
@@ -73,13 +77,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                        |Adjust| LGUI | LAlt/| Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
  *                        |      |      | Enter|      |      |  |      |      |      |      |      |
  *                        `----------------------------------'  `----------------------------------'
+ * ,-----------------------------------.                                              ,-----------------------------------.
+ * | MUTE | ____ | _____ | ____ | ____ |                                              | MUTE | ____ | _____ | ____ | ____ |
+ * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_DVORAK] = LAYOUT(
+    [_DVORAK] = LAYOUT_split_4x6_5_hlc(
      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_F,   KC_G ,  KC_C ,   KC_R ,  KC_L , KC_BSPC,
      CTL_ESC , KC_A ,  KC_O   ,  KC_E  ,   KC_U ,   KC_I ,                                        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
+                                 ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV   ,     SYM    , KC_SPC ,KC_RALT, KC_RGUI, KC_APP,
+     KC_MUTE, KC_NO,  KC_NO, KC_NO, KC_NO,                                                                KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO
     ),
 
 /*
@@ -97,13 +105,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                        |Adjust| LGUI | LAlt/| Space| Nav  |  | Sym  | Space| AltGr| RGUI | Menu |
  *                        |      |      | Enter|      |      |  |      |      |      |      |      |
  *                        `----------------------------------'  `----------------------------------'
+ * ,-----------------------------------.                                              ,-----------------------------------.
+ * | MUTE | ____ | _____ | ____ | ____ |                                              | MUTE | ____ | _____ | ____ | ____ |
+ * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_COLEMAK_DH] = LAYOUT(
+    [_COLEMAK_DH] = LAYOUT_split_4x6_5_hlc(
      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_J,   KC_L ,  KC_U ,   KC_Y ,KC_SCLN, KC_BSPC,
      CTL_ESC , KC_A ,  KC_R   ,  KC_S  ,   KC_T ,   KC_G ,                                        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
+                                 ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV   ,     SYM    , KC_SPC ,KC_RALT, KC_RGUI, KC_APP,
+     KC_MUTE, KC_NO,  KC_NO, KC_NO, KC_NO,                                                                KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO
     ),
 
 /*
@@ -121,13 +133,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        `----------------------------------'  `----------------------------------'
+ * ,-----------------------------------.                                              ,-----------------------------------.
+ * |      |      |       |      |      |                                              |      |      |       |      |      |
+ * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_NAV] = LAYOUT(
+    [_NAV] = LAYOUT_split_4x6_5_hlc(
       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
       _______, _______, _______, _______, _______, _______,                                     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,
-                                 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+                                 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+     _______, _______,  _______, _______, _______,                                                       _______, _______, _______, _______, _______
     ),
 
 /*
@@ -145,13 +161,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        `----------------------------------'  `----------------------------------'
+ * ,-----------------------------------.                                              ,-----------------------------------.
+ * |      |      |       |      |      |                                              |      |      |       |      |      |
+ * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_SYM] = LAYOUT(
+    [_SYM] = LAYOUT_split_4x6_5_hlc(
       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
       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,
-                                 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+                                 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+     _______, _______,  _______, _______, _______,                                                       _______, _______, _______, _______, _______
     ),
 
 /*
@@ -169,13 +189,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        `----------------------------------'  `----------------------------------'
+ * ,-----------------------------------.                                              ,-----------------------------------.
+ * |      |      |       |      |      |                                              |      |      |       |      |      |
+ * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_FUNCTION] = LAYOUT(
+    [_FUNCTION] = LAYOUT_split_4x6_5_hlc(
       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
       _______,  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 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-                                 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+                                 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+     _______, _______,  _______, _______, _______,                                                       _______, _______, _______, _______, _______
     ),
 
 /*
@@ -193,13 +217,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        |      |      |      |      |      |  |      |      |      |      |      |
  *                        `----------------------------------'  `----------------------------------'
+ * ,-----------------------------------.                                              ,-----------------------------------.
+ * |      |      |       |      |      |                                              |      |      |       |      |      |
+ * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_ADJUST] = LAYOUT(
+    [_ADJUST] = LAYOUT_split_4x6_5_hlc(
       _______, _______, _______, _______, _______, _______,                                    _______, _______, _______, _______,  _______, _______,
       _______, _______, _______, QWERTY , _______, _______,                                    _______, _______, _______, _______,  _______, _______,
       _______, _______, _______, DVORAK , _______, _______,                                    RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI,  RGB_MOD, _______,
       _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______,
-                                 _______, _______, _______,_______, _______, _______, _______, _______, _______, _______
+                                 _______, _______, _______,_______, _______, _______, _______, _______, _______, _______,
+     _______, _______,  _______, _______, _______,                                                       _______, _______, _______, _______, _______
     ),
 
 // /*
@@ -217,13 +245,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 //  *                        |      |      |      |      |      |  |      |      |      |      |      |
 //  *                        |      |      |      |      |      |  |      |      |      |      |      |
 //  *                        `----------------------------------'  `----------------------------------'
+//  * ,-----------------------------------.                                              ,-----------------------------------.
+//  * |      |      |       |      |      |                                              |      |      |       |      |      |
+//  * `-----------------------------------'                                              `-----------------------------------' 
 //  */
-//     [_LAYERINDEX] = LAYOUT(
+//     [_LAYERINDEX] = LAYOUT_split_4x6_5_hlc(
 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
 //       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-//                                  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+//                                  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+//      _______, _______,  _______, _______, _______,                                                       _______, _______, _______, _______, _______
 //     ),
 //
 };
\ No newline at end of file
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default/readme.md b/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/readme.md
similarity index 100%
rename from keyboards/splitkb/halcyon/elora/keymaps/default/readme.md
rename to keyboards/splitkb/halcyon/elora/keymaps/default_hlc/readme.md
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/rules.mk b/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/rules.mk
new file mode 100644
index 00000000..70ffc544
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/rules.mk
@@ -0,0 +1,2 @@
+# This adds module functionality to your keyboard (files found in users/halcyon_modules)
+USER_NAME := halcyon_modules
\ No newline at end of file
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk b/keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk
deleted file mode 100644
index 7df278d5..00000000
--- a/keyboards/splitkb/halcyon/elora/keymaps/vial/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-VIA_ENABLE = yes
-VIAL_ENABLE = yes
-VIALRGB_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/config.h b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/config.h
similarity index 100%
rename from keyboards/splitkb/halcyon/elora/keymaps/vial/config.h
rename to keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/config.h
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/keymap.json b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
similarity index 99%
rename from keyboards/splitkb/halcyon/elora/keymaps/vial/keymap.json
rename to keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
index 2a70c9e4..dff72814 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/vial/keymap.json
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
@@ -1,8 +1,8 @@
 {
     "keyboard": "splitkb/halcyon/elora/rev2",
-    "keymap": "vial-halcyon",
+    "keymap": "vial-hlc",
     "version": 1,
-    "layout": "LAYOUT_hlc",
+    "layout": "LAYOUT_split_4x6_5_hlc",
     "layers": [
         ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "MT(MOD_RCTL, KC_QUOTE)", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
         ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_F", "KC_G", "KC_C", "KC_R", "KC_L", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_O", "KC_E", "KC_U", "KC_I", "KC_D", "KC_H", "KC_T", "KC_N", "KC_S", "MT(MOD_RCTL, KC_MINUS)", "KC_LSFT", "KC_SCLN", "KC_Q", "KC_J", "KC_K", "KC_X", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_B", "KC_M", "KC_W", "KC_V", "KC_Z", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/rules.mk b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/rules.mk
new file mode 100644
index 00000000..b8636a7a
--- /dev/null
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/rules.mk
@@ -0,0 +1,8 @@
+VIA_ENABLE = yes
+VIAL_ENABLE = yes
+VIALRGB_ENABLE = yes
+
+ENCODER_MAP_ENABLE = yes
+
+# This adds module functionality to your keyboard (files found in users/halcyon_modules)
+USER_NAME := halcyon_modules
\ No newline at end of file
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial/vial.json b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
similarity index 100%
rename from keyboards/splitkb/halcyon/elora/keymaps/vial/vial.json
rename to keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
diff --git a/qmk.json b/qmk.json
index 49a7f4c5..886fb669 100644
--- a/qmk.json
+++ b/qmk.json
@@ -1,69 +1,69 @@
 {
     "userspace_version": "1.1",
     "build_targets": [
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "vial_hlc",
-            {
-                "HLC_TFT_DISPLAY": "1",
-                "TARGET": "halcyon_kyria_rev4_vial_hlc_display"
-            }
-        ],
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "vial_hlc",
-            {
-                "HLC_ENCODER": "1",
-                "TARGET": "halcyon_kyria_rev4_vial_hlc_encoder"
-            }
-        ],
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "vial_hlc",
-            {
-                "HLC_CIRQUE_TRACKPAD": "1",
-                "TARGET": "halcyon_kyria_rev4_vial_hlc_cirque_trackpad"
-            }
-        ],
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "vial_hlc",
-            {
-                "HLC_NONE": "1",
-                "TARGET": "halcyon_kyria_rev4_vial_hlc"
-            }
-        ],
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "default_hlc",
-            {
-                "HLC_TFT_DISPLAY": "1",
-                "TARGET": "halcyon_kyria_rev4_default_hlc_display"
-            }
-        ],
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "default_hlc",
-            {
-                "HLC_ENCODER": "1",
-                "TARGET": "halcyon_kyria_rev4_default_hlc_encoder"
-            }
-        ],
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "default_hlc",
-            {
-                "HLC_CIRQUE_TRACKPAD": "1",
-                "TARGET": "halcyon_kyria_rev4_default_hlc_cirque_trackpad"
-            }
-        ],
-        [
-            "splitkb/halcyon/kyria/rev4",
-            "default_hlc",
-            {
-                "HLC_NONE": "1",
-                "TARGET": "halcyon_kyria_rev4_default_hlc"
-            }
-        ]
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "vial_hlc",
+        //     {
+        //         "HLC_TFT_DISPLAY": "1",
+        //         "TARGET": "halcyon_elora_rev2_vial_hlc_display"
+        //     }
+        // ],
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "vial_hlc",
+        //     {
+        //         "HLC_ENCODER": "1",
+        //         "TARGET": "halcyon_elora_rev2_vial_hlc_encoder"
+        //     }
+        // ],
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "vial_hlc",
+        //     {
+        //         "HLC_CIRQUE_TRACKPAD": "1",
+        //         "TARGET": "halcyon_elora_rev2_vial_hlc_cirque_trackpad"
+        //     }
+        // ],
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "vial_hlc",
+        //     {
+        //         "HLC_NONE": "1",
+        //         "TARGET": "halcyon_elora_rev2_vial_hlc"
+        //     }
+        // ],
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "default_hlc",
+        //     {
+        //         "HLC_TFT_DISPLAY": "1",
+        //         "TARGET": "halcyon_elora_rev2_default_hlc_display"
+        //     }
+        // ],
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "default_hlc",
+        //     {
+        //         "HLC_ENCODER": "1",
+        //         "TARGET": "halcyon_elora_rev2_default_hlc_encoder"
+        //     }
+        // ],
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "default_hlc",
+        //     {
+        //         "HLC_CIRQUE_TRACKPAD": "1",
+        //         "TARGET": "halcyon_elora_rev2_default_hlc_cirque_trackpad"
+        //     }
+        // ],
+        // [
+        //     "splitkb/halcyon/elora/rev2",
+        //     "default_hlc",
+        //     {
+        //         "HLC_NONE": "1",
+        //         "TARGET": "halcyon_elora_rev2_default_hlc"
+        //     }
+        // ]
     ]
 }
\ No newline at end of file
diff --git a/users/halcyon_modules/config.h b/users/halcyon_modules/config.h
index 7ed00fd5..2363438d 100644
--- a/users/halcyon_modules/config.h
+++ b/users/halcyon_modules/config.h
@@ -79,4 +79,28 @@
         {k8A, k8B, k8C, k8D, k8E, k8F, KC_NO}, \
         {k9A, k9B, k9C, k9D, k9E, KC_NO, KC_NO} \
     }
+#endif
+
+// Elora 
+#if PRODUCT_ID == 0xA392
+    #undef ENCODER_A_PINS
+    #define ENCODER_A_PINS { GP22, HLC_ENCODER_A }
+    #undef ENCODER_B_PINS
+    #define ENCODER_B_PINS { GP18, HLC_ENCODER_B }
+    #undef MATRIX_ROWS
+    #define MATRIX_ROWS 12
+    #define LAYOUT_split_4x6_5_hlc(k0G, k0F, k0E, k0D, k0C, k0B, k6B, k6C, k6D, k6E, k6F, k6G, k1G, k1F, k1E, k1D, k1C, k1B, k7B, k7C, k7D, k7E, k7F, k7G, k2G, k2F, k2E, k2D, k2C, k2B, k8B, k8C, k8D, k8E, k8F, k8G, k3G, k3F, k3E, k3D, k3C, k3B, k4D, k3A, k9A, k10D, k9B, k9C, k9D, k9E, k9F, k9G, k4E, k4C, k4B, k4F, k4A, k10A, k10F, k10B, k10C, k10E, k5A, k5B, k5C, k5D, k5E, k11A, k11B, k11C, k11D, k11E) { \
+	 {KC_NO, k0B, k0C, k0D, k0E, k0F, k0G}, \
+	 {KC_NO, k1B, k1C, k1D, k1E, k1F, k1G}, \
+	 {KC_NO, k2B, k2C, k2D, k2E, k2F, k2G}, \
+	 {k3A, k3B, k3C, k3D, k3E, k3F, k3G}, \
+	 {k4A, k4B, k4C, k4D, k4E, k4F, KC_NO}, \
+     {k5A, k5B, k5C, k5D, k5E, KC_NO, KC_NO}, \
+	 {KC_NO, k6B, k6C, k6D, k6E, k6F, k6G}, \
+	 {KC_NO, k7B, k7C, k7D, k7E, k7F, k7G}, \
+	 {KC_NO, k8B, k8C, k8D, k8E, k8F, k8G}, \
+	 {k9A, k9B, k9C, k9D, k9E, k9F, k9G}, \
+	 {k10A, k10B, k10C, k10D, k10E, k10F, KC_NO}, \
+     {k11A, k11B, k11C, k11D, k11E, KC_NO, KC_NO} \
+}
 #endif
\ No newline at end of file
diff --git a/users/halcyon_modules/halcyon.c b/users/halcyon_modules/halcyon.c
index 8b00e678..d5593378 100644
--- a/users/halcyon_modules/halcyon.c
+++ b/users/halcyon_modules/halcyon.c
@@ -129,4 +129,46 @@ const matrix_row_t matrix_mask[] = {
     0b0011111,
 };
 #endif
+#endif
+
+// Elora
+#if PRODUCT_ID == 0xA392
+#ifdef RGB_MATRIX_ENABLE
+#include "rgb_matrix.h"
+led_config_t g_led_config = {
+  {
+    { NO_LED, 31, 32, 33, 34, 35, 36 },
+    { NO_LED, 25, 26, 27, 28, 29, 30 },
+    { NO_LED, 19, 20, 21, 22, 23, 24 },
+    { 11, 13, 14, 15, 16, 17, 18 },
+    { 6, 8, 9, 12, 10, 7, NO_LED },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+    { NO_LED, 68, 69, 70, 71, 72, 73 },
+    { NO_LED, 62, 63, 64, 65, 66, 67 },
+    { NO_LED, 56, 57, 58, 59, 60, 61 },
+    { 48, 50, 51, 52, 53, 54, 55 },
+    { 43, 45, 46, 49, 47, 44, NO_LED },
+    { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+  },
+  { {75, 2}, {50, 1}, {14, 4}, {25, 45}, {58, 49}, {94, 53}, {94, 64}, {79, 61}, {65, 55}, {51, 52}, {36, 52}, {101, 52}, {87, 49}, {72, 43}, {58, 40}, {43, 37}, {29, 40}, {14, 46}, {0, 46}, {72, 30}, {58, 27}, {43, 24}, {29, 27}, {14, 34}, {0, 34}, {72, 18}, {58, 15}, {43, 12}, {29, 15}, {14, 21}, {0, 21}, {72, 6}, {48, 3}, {43, 0}, {29, 3}, {14, 9}, {0, 9}, {149, 2}, {174, 1}, {210, 4}, {199, 45}, {166, 49}, {130, 53}, {130, 64}, {145, 61}, {159, 55}, {173, 52}, {188, 52}, {123, 52}, {137, 49}, {152, 43}, {166, 40}, {181, 37}, {195, 40}, {210, 46}, {224, 46}, {152, 30}, {166, 27}, {181, 24}, {195, 27}, {210, 34}, {224, 34}, {152, 18}, {166, 15}, {181, 12}, {195, 15}, {210, 21}, {224, 21}, {152, 6}, {166, 3}, {181, 0}, {195, 3}, {210, 9}, {224, 9} },
+  { 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
+};
+#endif
+
+#ifdef MATRIX_MASKED
+const matrix_row_t matrix_mask[] = {
+    0b1111110,
+    0b1111110,
+    0b1111110,
+    0b1111111,
+    0b0111111,
+    0b0011111,
+    0b1111110,
+    0b1111110,
+    0b1111110,
+    0b1111111,
+    0b0111111,
+    0b0011111,
+};
+#endif
 #endif
\ No newline at end of file
From 6985f0b96d88a5d5226e4e5050d98526f9677fc9 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Tue, 29 Oct 2024 15:03:07 +0100
Subject: [PATCH 04/13] fix changes
---
 users/halcyon_modules/config.h | 1 -
 users/halcyon_modules/rules.mk | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/users/halcyon_modules/config.h b/users/halcyon_modules/config.h
index 2363438d..f266b985 100644
--- a/users/halcyon_modules/config.h
+++ b/users/halcyon_modules/config.h
@@ -49,7 +49,6 @@
 
 // Always the same
 #define SPLIT_MODS_ENABLE
-#define SPLIT_TRANSPORT_MIRROR
 #define SPLIT_LED_STATE_ENABLE
 #define SPLIT_LAYER_STATE_ENABLE
 #ifndef HLC_ENCODER_A
diff --git a/users/halcyon_modules/rules.mk b/users/halcyon_modules/rules.mk
index 7ca0f087..61729127 100644
--- a/users/halcyon_modules/rules.mk
+++ b/users/halcyon_modules/rules.mk
@@ -2,6 +2,8 @@ CURRENT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
 
 SRC += halcyon.c
 
+LTO_ENABLE ?= yes
+
 ifndef HLC_CIRQUE_TRACKPAD #add any other pointing devices here
   # Needed otherwise pointing devices will not work
   POINTING_DEVICE_ENABLE = yes
From 0f80781cc6ab1eaab69f94540ad9ab0dce224784 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Thu, 7 Nov 2024 17:31:08 +0100
Subject: [PATCH 05/13] update halcyon vial encoder position
---
 .../halcyon/elora/keymaps/vial_hlc/vial.json  | 72 +++++++++----------
 1 file changed, 36 insertions(+), 36 deletions(-)
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
index 26fac39f..2eac7e8d 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
@@ -20,42 +20,42 @@
           ]
         ],
         "keymap": [
-          [{"y":0.25,"x":3},"0,3",{"x":9},"6,3"],
-          [{"y":-0.75,"x":2},"0,4",{"x":1},"0,2",{"x":7},"6,2",{"x":1},"6,4"],
-          [{"y":-0.875,"x":5},"0,1",{"x":5},"6,1"],
-          [{"y":-0.625},"0,6","0,5",{"x":13},"6,5","6,6"],
-          [{"y":-0.75,"x":3},"1,3",{"x":9},"7,3"],
-          [{"y":-0.75,"x":2},"1,4",{"x":1},"1,2",{"x":7},"7,2",{"x":1},"7,4"],
-          [{"y":-0.875,"x":5},"1,1"],
-          [{"y":-0.995,"x":11},"7,1"],
-          [{"y":-0.63},"1,6","1,5",{"x":13},"7,5","7,6"],
-          [{"y":-0.75,"x":3},"2,3",{"x":9},"8,3"],
-          [{"y":-0.75,"x":2},"2,4",{"x":1},"2,2",{"x":7},"8,2",{"x":1},"8,4"],
-          [{"y":-0.875,"x":5},"2,1",{"x":5},"8,1"],
-          [{"y":-0.625},"2,6","2,5",{"x":13},"8,5","8,6"],
-          [{"y":-0.75,"x":3},"3,3",{"x":9},"9,3"],
-          [{"y":-0.75,"x":2},"3,4",{"x":1},"3,2",{"x":7},"9,2",{"x":1},"9,4"],
-          [{"y":-0.87,"x":5},"3,1",{"x":5},"9,1"],
-          [{"y":-0.63},"3,6","3,5",{"x":13},"9,5","9,6"],
-          [{"y":-0.5,"x":2.5},"4,4",{"x":10},"10,4"],
-          [{"y":1.5,"x":1,"d":true},"5,2\n\n\n1,0",{"x":2,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":1.75,"d":true},"11,2\n\n\n3,0"],
-          [{"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"x":-1,"d":true},"5,1\n\n\n1,0",{"d":true},"5,0\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":-1,"d":true},"5,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"11,1\n\n\n3,0",{"x":-1,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"11,0\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne",{"x":-1,"d":true},"11,3\n\n\n3,0"],
-          [{"x":1,"d":true},"5,4\n\n\n1,0",{"x":13,"d":true},"11,4\n\n\n3,0"],
-          [{"y":0.5,"x":1,"d":true},"5,2\n\n\n1,1",{"x":13,"d":true},"11,2\n\n\n3,1"],
-          ["1,0\n\n\n1,1\n\n\n\n\n\ne",{"x":-1,"d":true},"5,1\n\n\n1,1","5,0\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":-1,"d":true},"5,3\n\n\n1,1",{"x":11,"d":true},"11,1\n\n\n3,1",{"x":-1},"3,0\n\n\n3,1\n\n\n\n\n\ne","11,0\n\n\n3,1",{"d":true},"11,3\n\n\n3,1",{"x":-1},"3,1\n\n\n3,1\n\n\n\n\n\ne"],
-          [{"x":1,"d":true},"5,4\n\n\n1,1",{"x":13,"d":true},"11,4\n\n\n3,1"],
-          [{"rx":4,"ry":8.175,"y":-3.675,"x":-0.5},"4,2"],
-          [{"rx":13,"y":-3.675,"x":-0.5},"10,2"],
-          [{"r":15,"rx":4,"ry":9.175,"y":-4.675,"x":-0.5},"4,1"],
-          [{"r":30,"y":-2,"x":-0.5},"4,3"],
-          [{"x":-0.5},"4,5"],
-          [{"r":45,"y":-2,"x":-0.5},"3,0"],
-          [{"x":-0.5},"4,0"],
-          [{"r":-45,"rx":13,"y":-5.675,"x":-0.5},"9,0"],
-          [{"x":-0.5},"10,0"],
-          [{"r":-30,"y":-2,"x":-0.5},"10,3"],
-          [{"x":-0.5},"10,5"],
-          [{"r":-15,"y":-1,"x":-0.5},"10,1"]          
+            [{"y":0.25,"x":3},"0,3",{"x":9},"6,3"],
+            [{"y":-0.75,"x":2},"0,4",{"x":1},"0,2",{"x":7},"6,2",{"x":1},"6,4"],
+            [{"y":-0.875,"x":5},"0,1",{"x":5},"6,1"],
+            [{"y":-0.625},"0,6","0,5",{"x":13},"6,5","6,6"],
+            [{"y":-0.75,"x":3},"1,3",{"x":9},"7,3"],
+            [{"y":-0.75,"x":2},"1,4",{"x":1},"1,2",{"x":7},"7,2",{"x":1},"7,4"],
+            [{"y":-0.875,"x":5},"1,1"],
+            [{"y":-0.995,"x":11},"7,1"],
+            [{"y":-0.63},"1,6","1,5",{"x":13},"7,5","7,6"],
+            [{"y":-0.75,"x":3},"2,3",{"x":9},"8,3"],
+            [{"y":-0.75,"x":2},"2,4",{"x":1},"2,2",{"x":7},"8,2",{"x":1},"8,4"],
+            [{"y":-0.875,"x":5},"2,1",{"x":5},"8,1"],
+            [{"y":-0.625},"2,6","2,5",{"x":13},"8,5","8,6"],
+            [{"y":-0.75,"x":3},"3,3",{"x":9},"9,3"],
+            [{"y":-0.75,"x":2},"3,4",{"x":1},"3,2",{"x":7},"9,2",{"x":1},"9,4"],
+            [{"y":-0.87,"x":5},"3,1",{"x":5},"9,1"],
+            [{"y":-0.63},"3,6","3,5",{"x":13},"9,5","9,6"],
+            [{"y":-0.5,"x":2.5},"4,4",{"x":10},"10,4"],
+            [{"rx":4,"ry":8.175,"y":-3.675,"x":-0.5},"4,2"],
+            [{"rx":10.5,"ry":4.1,"y":3.25,"x":-10.5,"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"d":true},"5,2\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":1,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":0.75,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"11,2\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne"],
+            [{"x":-10.5,"d":true},"5,1\n\n\n1,0",{"d":true},"5,0\n\n\n1,0",{"d":true},"5,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"11,1\n\n\n3,0",{"d":true},"11,0\n\n\n3,0",{"d":true},"11,3\n\n\n3,0"],
+            [{"x":-9.5,"d":true},"5,4\n\n\n1,0",{"x":13,"d":true},"11,4\n\n\n3,0"],
+            [{"y":0.5,"x":-10.5},"1,0\n\n\n1,1\n\n\n\n\n\ne",{"d":true},"5,2\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":11},"3,0\n\n\n3,1\n\n\n\n\n\ne",{"d":true},"11,2\n\n\n3,1","3,1\n\n\n3,1\n\n\n\n\n\ne"],
+            [{"x":-10.5,"d":true},"5,1\n\n\n1,1","5,0\n\n\n1,1",{"d":true},"5,3\n\n\n1,1",{"x":11,"d":true},"11,1\n\n\n3,1","11,0\n\n\n3,1",{"d":true},"11,3\n\n\n3,1"],
+            [{"x":-9.5,"d":true},"5,4\n\n\n1,1",{"x":13,"d":true},"11,4\n\n\n3,1"],
+            [{"rx":13,"ry":8.175,"y":-3.675,"x":-0.5},"10,2"],
+            [{"r":15,"rx":4,"ry":9.175,"y":-4.675,"x":-0.5},"4,1"],
+            [{"r":30,"y":-2,"x":-0.5},"4,3"],
+            [{"x":-0.5},"4,5"],
+            [{"r":45,"y":-2,"x":-0.5},"3,0"],
+            [{"x":-0.5},"4,0"],
+            [{"r":-45,"rx":13,"y":-5.675,"x":-0.5},"9,0"],
+            [{"x":-0.5},"10,0"],
+            [{"r":-30,"y":-2,"x":-0.5},"10,3"],
+            [{"x":-0.5},"10,5"],
+            [{"r":-15,"y":-1,"x":-0.5},"10,1"]                    
         ]
     }
 }
From 6bb578b379112a763c8ec8fd96e3e313ab944af9 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Thu, 7 Nov 2024 17:46:08 +0100
Subject: [PATCH 06/13] tidy elora vial layout
---
 .../halcyon/elora/keymaps/vial_hlc/vial.json     | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
index 2eac7e8d..747451fe 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
@@ -38,14 +38,14 @@
             [{"y":-0.87,"x":5},"3,1",{"x":5},"9,1"],
             [{"y":-0.63},"3,6","3,5",{"x":13},"9,5","9,6"],
             [{"y":-0.5,"x":2.5},"4,4",{"x":10},"10,4"],
+            [{"ry":9.175,"y":-2,"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"d":true},"4,2\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":1,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":0.75,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"9,2\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne"],
+            [{"d":true},"4,1\n\n\n1,0",{"d":true},"4,0\n\n\n1,0",{"d":true},"4,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"9,1\n\n\n3,0",{"d":true},"9,0\n\n\n3,0",{"d":true},"9,3\n\n\n3,0"],
+            [{"x":1,"d":true},"4,4\n\n\n1,0",{"x":13,"d":true},"9,4\n\n\n3,0"],
+            [{"y":0.5},"1,0\n\n\n1,1\n\n\n\n\n\ne",{"d":true},"4,2\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":11},"3,0\n\n\n3,1\n\n\n\n\n\ne",{"d":true},"9,2\n\n\n3,1","3,1\n\n\n3,1\n\n\n\n\n\ne"],
+            [{"d":true},"4,1\n\n\n1,1","4,0\n\n\n1,1",{"d":true},"4,3\n\n\n1,1",{"x":11,"d":true},"9,1\n\n\n3,1","9,0\n\n\n3,1",{"d":true},"9,3\n\n\n3,1"],
+            [{"x":1,"d":true},"4,4\n\n\n1,1",{"x":13,"d":true},"9,4\n\n\n3,1"],
             [{"rx":4,"ry":8.175,"y":-3.675,"x":-0.5},"4,2"],
-            [{"rx":10.5,"ry":4.1,"y":3.25,"x":-10.5,"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"d":true},"5,2\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":1,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":0.75,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"11,2\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne"],
-            [{"x":-10.5,"d":true},"5,1\n\n\n1,0",{"d":true},"5,0\n\n\n1,0",{"d":true},"5,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"11,1\n\n\n3,0",{"d":true},"11,0\n\n\n3,0",{"d":true},"11,3\n\n\n3,0"],
-            [{"x":-9.5,"d":true},"5,4\n\n\n1,0",{"x":13,"d":true},"11,4\n\n\n3,0"],
-            [{"y":0.5,"x":-10.5},"1,0\n\n\n1,1\n\n\n\n\n\ne",{"d":true},"5,2\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":11},"3,0\n\n\n3,1\n\n\n\n\n\ne",{"d":true},"11,2\n\n\n3,1","3,1\n\n\n3,1\n\n\n\n\n\ne"],
-            [{"x":-10.5,"d":true},"5,1\n\n\n1,1","5,0\n\n\n1,1",{"d":true},"5,3\n\n\n1,1",{"x":11,"d":true},"11,1\n\n\n3,1","11,0\n\n\n3,1",{"d":true},"11,3\n\n\n3,1"],
-            [{"x":-9.5,"d":true},"5,4\n\n\n1,1",{"x":13,"d":true},"11,4\n\n\n3,1"],
-            [{"rx":13,"ry":8.175,"y":-3.675,"x":-0.5},"10,2"],
+            [{"rx":13,"y":-3.675,"x":-0.5},"10,2"],
             [{"r":15,"rx":4,"ry":9.175,"y":-4.675,"x":-0.5},"4,1"],
             [{"r":30,"y":-2,"x":-0.5},"4,3"],
             [{"x":-0.5},"4,5"],
@@ -55,7 +55,7 @@
             [{"x":-0.5},"10,0"],
             [{"r":-30,"y":-2,"x":-0.5},"10,3"],
             [{"x":-0.5},"10,5"],
-            [{"r":-15,"y":-1,"x":-0.5},"10,1"]                    
+            [{"r":-15,"y":-1,"x":-0.5},"10,1"]
         ]
     }
 }
From 446a3ab623656c5e6cb3f29fcb3afc0f15b08e92 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Fri, 8 Nov 2024 13:29:28 +0100
Subject: [PATCH 07/13] fix halcyon button mapping
---
 .../splitkb/halcyon/elora/keymaps/vial_hlc/vial.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
index 747451fe..763c0424 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/vial.json
@@ -38,12 +38,12 @@
             [{"y":-0.87,"x":5},"3,1",{"x":5},"9,1"],
             [{"y":-0.63},"3,6","3,5",{"x":13},"9,5","9,6"],
             [{"y":-0.5,"x":2.5},"4,4",{"x":10},"10,4"],
-            [{"ry":9.175,"y":-2,"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"d":true},"4,2\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":1,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":0.75,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"9,2\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne"],
-            [{"d":true},"4,1\n\n\n1,0",{"d":true},"4,0\n\n\n1,0",{"d":true},"4,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"9,1\n\n\n3,0",{"d":true},"9,0\n\n\n3,0",{"d":true},"9,3\n\n\n3,0"],
-            [{"x":1,"d":true},"4,4\n\n\n1,0",{"x":13,"d":true},"9,4\n\n\n3,0"],
-            [{"y":0.5},"1,0\n\n\n1,1\n\n\n\n\n\ne",{"d":true},"4,2\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":11},"3,0\n\n\n3,1\n\n\n\n\n\ne",{"d":true},"9,2\n\n\n3,1","3,1\n\n\n3,1\n\n\n\n\n\ne"],
-            [{"d":true},"4,1\n\n\n1,1","4,0\n\n\n1,1",{"d":true},"4,3\n\n\n1,1",{"x":11,"d":true},"9,1\n\n\n3,1","9,0\n\n\n3,1",{"d":true},"9,3\n\n\n3,1"],
-            [{"x":1,"d":true},"4,4\n\n\n1,1",{"x":13,"d":true},"9,4\n\n\n3,1"],
+            [{"ry":9.175,"y":-2,"d":true},"1,0\n\n\n1,0\n\n\n\n\n\ne",{"d":true},"5,2\n\n\n1,0",{"d":true},"1,1\n\n\n1,0\n\n\n\n\n\ne",{"x":1,"d":true},"0,0\n\n\n0,0\n\n\n\n\n\ne",{"d":true},"0,1\n\n\n0,0\n\n\n\n\n\ne",{"x":5.25,"d":true},"2,0\n\n\n2,0\n\n\n\n\n\ne",{"d":true},"2,1\n\n\n2,0\n\n\n\n\n\ne",{"x":0.75,"d":true},"3,0\n\n\n3,0\n\n\n\n\n\ne",{"d":true},"11,2\n\n\n3,0",{"d":true},"3,1\n\n\n3,0\n\n\n\n\n\ne"],
+            [{"d":true},"5,1\n\n\n1,0",{"d":true},"5,0\n\n\n1,0",{"d":true},"5,3\n\n\n1,0",{"x":1},"0,0\n\n\n0,1\n\n\n\n\n\ne","0,1\n\n\n0,1\n\n\n\n\n\ne",{"x":5.25},"2,0\n\n\n2,1\n\n\n\n\n\ne","2,1\n\n\n2,1\n\n\n\n\n\ne",{"x":0.75,"d":true},"11,1\n\n\n3,0",{"d":true},"11,0\n\n\n3,0",{"d":true},"11,3\n\n\n3,0"],
+            [{"x":1,"d":true},"5,4\n\n\n1,0",{"x":13,"d":true},"11,4\n\n\n3,0"],
+            [{"y":0.5},"1,0\n\n\n1,1\n\n\n\n\n\ne",{"d":true},"5,2\n\n\n1,1","1,1\n\n\n1,1\n\n\n\n\n\ne",{"x":11},"3,0\n\n\n3,1\n\n\n\n\n\ne",{"d":true},"11,2\n\n\n3,1","3,1\n\n\n3,1\n\n\n\n\n\ne"],
+            [{"d":true},"5,1\n\n\n1,1","5,0\n\n\n1,1",{"d":true},"5,3\n\n\n1,1",{"x":11,"d":true},"11,1\n\n\n3,1","11,0\n\n\n3,1",{"d":true},"11,3\n\n\n3,1"],
+            [{"x":1,"d":true},"5,4\n\n\n1,1",{"x":13,"d":true},"11,4\n\n\n3,1"],
             [{"rx":4,"ry":8.175,"y":-3.675,"x":-0.5},"4,2"],
             [{"rx":13,"y":-3.675,"x":-0.5},"10,2"],
             [{"r":15,"rx":4,"ry":9.175,"y":-4.675,"x":-0.5},"4,1"],
From b57f230debcd65f8f27c97b94a9ab55f81766c0d Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Tue, 10 Dec 2024 16:20:17 +0100
Subject: [PATCH 08/13] update formatting
---
 .../elora/keymaps/vial_hlc/keymap.json        | 120 +++++++++---------
 1 file changed, 57 insertions(+), 63 deletions(-)
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
index dff72814..d28d0eac 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
@@ -4,13 +4,62 @@
     "version": 1,
     "layout": "LAYOUT_split_4x6_5_hlc",
     "layers": [
-        ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "MT(MOD_RCTL, KC_QUOTE)", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
-        ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_F", "KC_G", "KC_C", "KC_R", "KC_L", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_O", "KC_E", "KC_U", "KC_I", "KC_D", "KC_H", "KC_T", "KC_N", "KC_S", "MT(MOD_RCTL, KC_MINUS)", "KC_LSFT", "KC_SCLN", "KC_Q", "KC_J", "KC_K", "KC_X", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_B", "KC_M", "KC_W", "KC_V", "KC_Z", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
-        ["KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "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_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSPC", "MT(MOD_LCTL, KC_ESC)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_G", "KC_M", "KC_N", "KC_E", "KC_I", "KC_O", "MT(MOD_RCTL, KC_QUOTE)", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_D", "KC_V", "KC_LBRC", "KC_CAPS", "MO(5)", "KC_RBRC", "KC_K", "KC_H", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(6)", "KC_LGUI", "MT(MOD_LALT, KC_ENT)", "KC_SPC", "MO(3)", "MO(4)", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
-        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_HOME", "KC_UP", "KC_END", "KC_VOLU", "KC_DEL", "KC_TRNS", "KC_LGUI", "KC_LALT", "KC_LCTL", "KC_LSFT", "KC_TRNS", "KC_PGDN", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_VOLD", "KC_INS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_SCRL", "KC_TRNS", "KC_TRNS", "KC_PAUSE", "KC_MPRV", "KC_MPLY", "KC_MNXT", "KC_MUTE", "KC_PSCR", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
-        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "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_TRNS", "KC_TRNS", "KC_RCBR", "KC_RBRC", "KC_UNDS", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_QUES", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
-        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_TRNS", "KC_TRNS", "KC_RSFT", "KC_RCTL", "KC_LALT", "KC_RGUI", "KC_TRNS", "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"], 
-        ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(0)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(1)", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_SAI", "RGB_HUI", "RGB_VAI", "RGB_MOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "DF(2)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAD", "RGB_HUD", "RGB_VAD", "RGB_RMOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MUTE", "KC_NO",  "KC_NO", "KC_NO", "KC_NO", "KC_MUTE", "KC_NO", "KC_NO", "KC_NO", "KC_NO"]
+        [
+            "KC_ESC"               , "KC_1"    , "KC_2"    , "KC_3"    , "KC_4"                 , "KC_5"    ,                                                 "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_Y"    , "KC_U"    , "KC_I"    , "KC_O"    , "KC_P"    , "KC_BSPC"                ,
+            "MT(MOD_LCTL, KC_ESC)" , "KC_A"    , "KC_S"    , "KC_D"    , "KC_F"                 , "KC_G"    ,                                                 "KC_H"    , "KC_J"    , "KC_K"    , "KC_L"    , "KC_SCLN" , "MT(MOD_RCTL, KC_QUOTE)" ,
+            "KC_LSFT"              , "KC_Z"    , "KC_X"    , "KC_C"    , "KC_V"                 , "KC_B"    , "KC_LBRC" , "KC_CAPS" , "MO(5)"   , "KC_RBRC" , "KC_N"    , "KC_M"    , "KC_COMM" , "KC_DOT"  , "KC_SLSH" , "KC_RSFT"                ,
+                                                 "MO(6)"   , "KC_LGUI" , "MT(MOD_LALT, KC_ENT)" , "KC_SPC"  , "MO(3)"   , "MO(4)"   , "KC_SPC"  , "KC_RALT" , "KC_RGUI" , "KC_APP"  ,
+                                                 "KC_MUTE" , "KC_NO"   , "KC_NO"                , "KC_NO"   , "KC_NO"   , "KC_MUTE" , "KC_NO"   , "KC_NO"   , "KC_NO"   , "KC_NO"
+        ],
+        [
+            "KC_ESC"               , "KC_1"    , "KC_2"    , "KC_3"    , "KC_4"                 , "KC_5"    ,                                                 "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_F"    , "KC_G"    , "KC_C"    , "KC_R"    , "KC_L"    , "KC_BSPC"                ,
+            "MT(MOD_LCTL, KC_ESC)" , "KC_A"    , "KC_O"    , "KC_E"    , "KC_U"                 , "KC_I"    ,                                                 "KC_D"    , "KC_H"    , "KC_T"    , "KC_N"    , "KC_S"    , "MT(MOD_RCTL, KC_MINUS)" ,
+            "KC_LSFT"              , "KC_SCLN" , "KC_Q"    , "KC_J"    , "KC_K"                 , "KC_X"    , "KC_LBRC" , "KC_CAPS" , "MO(5)"   , "KC_RBRC" , "KC_B"    , "KC_M"    , "KC_W"    , "KC_V"    , "KC_Z"    , "KC_RSFT"                ,
+                                                 "MO(6)"   , "KC_LGUI" , "MT(MOD_LALT, KC_ENT)" , "KC_SPC"  , "MO(3)"   , "MO(4)"   , "KC_SPC"  , "KC_RALT" , "KC_RGUI" , "KC_APP"  ,
+                                                 "KC_MUTE" , "KC_NO"   , "KC_NO"                , "KC_NO"   , "KC_NO"   , "KC_MUTE" , "KC_NO"   , "KC_NO"   , "KC_NO"   , "KC_NO"
+        ],
+        [
+            "KC_ESC"               , "KC_1"    , "KC_2"    , "KC_3"    , "KC_4"                 , "KC_5"    ,                                                 "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_J"    , "KC_L"    , "KC_U"    , "KC_Y"    , "KC_SCLN" , "KC_BSPC"                ,
+            "MT(MOD_LCTL, KC_ESC)" , "KC_A"    , "KC_R"    , "KC_S"    , "KC_T"                 , "KC_G"    ,                                                 "KC_M"    , "KC_N"    , "KC_E"    , "KC_I"    , "KC_O"    , "MT(MOD_RCTL, KC_QUOTE)" ,
+            "KC_LSFT"              , "KC_Z"    , "KC_X"    , "KC_C"    , "KC_D"                 , "KC_V"    , "KC_LBRC" , "KC_CAPS" , "MO(5)"   , "KC_RBRC" , "KC_K"    , "KC_H"    , "KC_COMM" , "KC_DOT"  , "KC_SLSH" , "KC_RSFT"                ,
+                                                 "MO(6)"   , "KC_LGUI" , "MT(MOD_LALT, KC_ENT)" , "KC_SPC"  , "MO(3)"   , "MO(4)"   , "KC_SPC"  , "KC_RALT" , "KC_RGUI" , "KC_APP"  ,
+                                                 "KC_MUTE" , "KC_NO"   , "KC_NO"                , "KC_NO"   , "KC_NO"   , "KC_MUTE" , "KC_NO"   , "KC_NO"   , "KC_NO"   , "KC_NO"
+        ],
+        [
+            "_______"              , "_______" , "_______" , "_______" , "_______"             , "_______" ,                                                 "_______" , "_______" , "_______" , "_______" , "_______" , "_______"                ,
+            "_______"              , "_______" , "_______" , "_______" , "_______"             , "_______" ,                                                 "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"                ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
+        ],
+        [
+            "_______"              , "_______" , "_______" , "_______" , "_______"             , "_______" ,                                                 "_______" , "_______" , "_______" , "_______" , "_______" , "_______"                ,
+            "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"                ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
+        ],
+        [
+            "_______"              , "_______" , "_______" , "_______" , "_______"             , "_______" ,                                                 "_______" , "_______" , "_______" , "_______" , "_______" , "_______"                ,
+            "_______"              , "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"               , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"                ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
+        ],
+        [
+            "_______"              , "_______" , "_______" , "_______" , "_______"             , "_______" ,                                                 "_______" , "_______" , "_______" , "_______" , "_______" , "_______"                ,
+            "_______"              , "_______" , "_______" , "DF(0)"   , "_______"             , "_______" ,                                                 "_______" , "_______" , "_______" , "_______" , "_______" , "_______"                ,
+            "_______"              , "_______" , "_______" , "DF(1)"   , "_______"             , "_______" ,                                                 "RGB_TOG" , "RGB_SAI" , "RGB_HUI" , "RGB_VAI" , "RGB_MOD" , "_______"                ,
+            "_______"              , "_______" , "_______" , "DF(2)"   , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "RGB_SAD" , "RGB_HUD" , "RGB_VAD" , "RGB_RMOD", "_______"                ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ,
+                                                 "_______" , "_______" , "_______"             , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______"
+        ]
     ],
     "encoders": [
         [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
@@ -20,60 +69,5 @@
         [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
         [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}],
         [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "KC_PGUP", "cw": "KC_PGDN"} ,{"ccw": "KC_PGUP", "cw": "KC_PGDN"}]
-    ],
-    "config": {
-        "rgb_matrix": {
-            "animations": {
-                "solid_color": true,
-                "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,
-                "flower_blooming": 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,
-                "starlight": true,
-                "starlight_dual_hue": true,
-                "starlight_dual_sat": true,
-                "riverflow": true
-            }
-        }
-    }
+    ]
 }
From 25d24155de899148209560ccb4f50097d36d4b39 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Tue, 10 Dec 2024 16:23:49 +0100
Subject: [PATCH 09/13] Update qmk.json
---
 qmk.json | 194 ++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 129 insertions(+), 65 deletions(-)
diff --git a/qmk.json b/qmk.json
index 886fb669..f21f320f 100644
--- a/qmk.json
+++ b/qmk.json
@@ -1,69 +1,133 @@
 {
     "userspace_version": "1.1",
     "build_targets": [
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "vial_hlc",
-        //     {
-        //         "HLC_TFT_DISPLAY": "1",
-        //         "TARGET": "halcyon_elora_rev2_vial_hlc_display"
-        //     }
-        // ],
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "vial_hlc",
-        //     {
-        //         "HLC_ENCODER": "1",
-        //         "TARGET": "halcyon_elora_rev2_vial_hlc_encoder"
-        //     }
-        // ],
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "vial_hlc",
-        //     {
-        //         "HLC_CIRQUE_TRACKPAD": "1",
-        //         "TARGET": "halcyon_elora_rev2_vial_hlc_cirque_trackpad"
-        //     }
-        // ],
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "vial_hlc",
-        //     {
-        //         "HLC_NONE": "1",
-        //         "TARGET": "halcyon_elora_rev2_vial_hlc"
-        //     }
-        // ],
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "default_hlc",
-        //     {
-        //         "HLC_TFT_DISPLAY": "1",
-        //         "TARGET": "halcyon_elora_rev2_default_hlc_display"
-        //     }
-        // ],
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "default_hlc",
-        //     {
-        //         "HLC_ENCODER": "1",
-        //         "TARGET": "halcyon_elora_rev2_default_hlc_encoder"
-        //     }
-        // ],
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "default_hlc",
-        //     {
-        //         "HLC_CIRQUE_TRACKPAD": "1",
-        //         "TARGET": "halcyon_elora_rev2_default_hlc_cirque_trackpad"
-        //     }
-        // ],
-        // [
-        //     "splitkb/halcyon/elora/rev2",
-        //     "default_hlc",
-        //     {
-        //         "HLC_NONE": "1",
-        //         "TARGET": "halcyon_elora_rev2_default_hlc"
-        //     }
-        // ]
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "vial_hlc",
+            {
+                "HLC_TFT_DISPLAY": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_vial_hlc_display"
+            }
+        ],
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "vial_hlc",
+            {
+                "HLC_ENCODER": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_vial_hlc_encoder"
+            }
+        ],
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "vial_hlc",
+            {
+                "HLC_CIRQUE_TRACKPAD": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_vial_hlc_cirque_trackpad"
+            }
+        ],
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "vial_hlc",
+            {
+                "HLC_NONE": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_vial_hlc"
+            }
+        ],
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "default_hlc",
+            {
+                "HLC_TFT_DISPLAY": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_default_hlc_display"
+            }
+        ],
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "default_hlc",
+            {
+                "HLC_ENCODER": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_default_hlc_encoder"
+            }
+        ],
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "default_hlc",
+            {
+                "HLC_CIRQUE_TRACKPAD": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_default_hlc_cirque_trackpad"
+            }
+        ],
+        [
+            "splitkb/halcyon/kyria/rev4",
+            "default_hlc",
+            {
+                "HLC_NONE": "1",
+                "TARGET": "splitkb_halcyon_kyria_rev4_default_hlc"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "vial_hlc",
+            {
+                "HLC_TFT_DISPLAY": "1",
+                "TARGET": "halcyon_elora_rev2_vial_hlc_display"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "vial_hlc",
+            {
+                "HLC_ENCODER": "1",
+                "TARGET": "halcyon_elora_rev2_vial_hlc_encoder"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "vial_hlc",
+            {
+                "HLC_CIRQUE_TRACKPAD": "1",
+                "TARGET": "halcyon_elora_rev2_vial_hlc_cirque_trackpad"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "vial_hlc",
+            {
+                "HLC_NONE": "1",
+                "TARGET": "halcyon_elora_rev2_vial_hlc"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "default_hlc",
+            {
+                "HLC_TFT_DISPLAY": "1",
+                "TARGET": "halcyon_elora_rev2_default_hlc_display"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "default_hlc",
+            {
+                "HLC_ENCODER": "1",
+                "TARGET": "halcyon_elora_rev2_default_hlc_encoder"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "default_hlc",
+            {
+                "HLC_CIRQUE_TRACKPAD": "1",
+                "TARGET": "halcyon_elora_rev2_default_hlc_cirque_trackpad"
+            }
+        ],
+        [
+            "splitkb/halcyon/elora/rev2",
+            "default_hlc",
+            {
+                "HLC_NONE": "1",
+                "TARGET": "halcyon_elora_rev2_default_hlc"
+            }
+        ]
     ]
-}
\ No newline at end of file
+}
From a77705afe45f8f76e2aad812a8b225080f245c33 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Tue, 14 Jan 2025 14:16:55 +0100
Subject: [PATCH 10/13] [fix] readability
---
 users/halcyon_modules/rules.mk          | 3 ++-
 users/halcyon_modules/splitkb/config.h  | 2 +-
 users/halcyon_modules/splitkb/halcyon.c | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/users/halcyon_modules/rules.mk b/users/halcyon_modules/rules.mk
index a8c7c54c..77c0c5fe 100644
--- a/users/halcyon_modules/rules.mk
+++ b/users/halcyon_modules/rules.mk
@@ -1,4 +1,5 @@
 # Add this to your existing rules.mk if you have one
-ifneq ($(filter $(strip $(KEYBOARD)), splitkb/halcyon/kyria/rev4),)
+ifneq ($(filter $(strip $(KEYBOARD)), splitkb/halcyon/kyria/rev4 \
+									  splitkb/halcyon/elora/rev2),)
 	include $(USER_PATH)/splitkb/rules.mk
 endif
diff --git a/users/halcyon_modules/splitkb/config.h b/users/halcyon_modules/splitkb/config.h
index 0f241da5..f81adc42 100644
--- a/users/halcyon_modules/splitkb/config.h
+++ b/users/halcyon_modules/splitkb/config.h
@@ -49,7 +49,7 @@
 #endif
 
 // Elora
-#if PRODUCT_ID == 0xA392
+#if defined(KEYBOARD_splitkb_halcyon_elora_rev2)
     #undef ENCODER_A_PINS
     #define ENCODER_A_PINS { GP22, HLC_ENCODER_A }
     #undef ENCODER_B_PINS
diff --git a/users/halcyon_modules/splitkb/halcyon.c b/users/halcyon_modules/splitkb/halcyon.c
index d2cd76b7..f2a278ef 100644
--- a/users/halcyon_modules/splitkb/halcyon.c
+++ b/users/halcyon_modules/splitkb/halcyon.c
@@ -179,7 +179,7 @@ const matrix_row_t matrix_mask[] = {
 #endif
 
 // Elora
-#if PRODUCT_ID == 0xA392
+#if defined(KEYBOARD_splitkb_halcyon_elora_rev2)
 #ifdef RGB_MATRIX_ENABLE
 #include "rgb_matrix.h"
 led_config_t g_led_config = {
From b5e932adc0988ad9fecdbb9531a6ac449abf0470 Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Tue, 14 Jan 2025 14:26:44 +0100
Subject: [PATCH 11/13] [fix] Rename targets
---
 qmk.json | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/qmk.json b/qmk.json
index f21f320f..9f174463 100644
--- a/qmk.json
+++ b/qmk.json
@@ -70,7 +70,7 @@
             "vial_hlc",
             {
                 "HLC_TFT_DISPLAY": "1",
-                "TARGET": "halcyon_elora_rev2_vial_hlc_display"
+                "TARGET": "splitkb_halcyon_elora_rev2_vial_hlc_display"
             }
         ],
         [
@@ -78,7 +78,7 @@
             "vial_hlc",
             {
                 "HLC_ENCODER": "1",
-                "TARGET": "halcyon_elora_rev2_vial_hlc_encoder"
+                "TARGET": "splitkb_halcyon_elora_rev2_vial_hlc_encoder"
             }
         ],
         [
@@ -86,7 +86,7 @@
             "vial_hlc",
             {
                 "HLC_CIRQUE_TRACKPAD": "1",
-                "TARGET": "halcyon_elora_rev2_vial_hlc_cirque_trackpad"
+                "TARGET": "splitkb_halcyon_elora_rev2_vial_hlc_cirque_trackpad"
             }
         ],
         [
@@ -94,7 +94,7 @@
             "vial_hlc",
             {
                 "HLC_NONE": "1",
-                "TARGET": "halcyon_elora_rev2_vial_hlc"
+                "TARGET": "splitkb_halcyon_elora_rev2_vial_hlc"
             }
         ],
         [
@@ -102,7 +102,7 @@
             "default_hlc",
             {
                 "HLC_TFT_DISPLAY": "1",
-                "TARGET": "halcyon_elora_rev2_default_hlc_display"
+                "TARGET": "splitkb_halcyon_elora_rev2_default_hlc_display"
             }
         ],
         [
@@ -110,7 +110,7 @@
             "default_hlc",
             {
                 "HLC_ENCODER": "1",
-                "TARGET": "halcyon_elora_rev2_default_hlc_encoder"
+                "TARGET": "splitkb_halcyon_elora_rev2_default_hlc_encoder"
             }
         ],
         [
@@ -118,7 +118,7 @@
             "default_hlc",
             {
                 "HLC_CIRQUE_TRACKPAD": "1",
-                "TARGET": "halcyon_elora_rev2_default_hlc_cirque_trackpad"
+                "TARGET": "splitkb_halcyon_elora_rev2_default_hlc_cirque_trackpad"
             }
         ],
         [
@@ -126,7 +126,7 @@
             "default_hlc",
             {
                 "HLC_NONE": "1",
-                "TARGET": "halcyon_elora_rev2_default_hlc"
+                "TARGET": "splitkb_halcyon_elora_rev2_default_hlc"
             }
         ]
     ]
From 861a9286cc9e1bf8b69b834c3c83db62eecc173a Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Thu, 16 Jan 2025 14:09:07 +0100
Subject: [PATCH 12/13] Add halcyon_info.json layout
---
 halcyon_info.json                             | 76 +++++++++++++++++++
 .../elora/keymaps/default_hlc/keymap.c        | 20 ++---
 .../elora/keymaps/vial_hlc/keymap.json        |  2 +-
 users/halcyon_modules/splitkb/config.h        |  2 +-
 4 files changed, 88 insertions(+), 12 deletions(-)
diff --git a/halcyon_info.json b/halcyon_info.json
index 788919b8..7a4bbab4 100644
--- a/halcyon_info.json
+++ b/halcyon_info.json
@@ -63,6 +63,82 @@
                 {"matrix": [9, 3], "x": 12.5, "y": 6},
                 {"matrix": [9, 4], "x": 11.5, "y": 6}
             ]
+        },
+        "LAYOUT_elora_hlc": {
+            "layout": [
+                {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75},
+                {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75},
+                {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25},
+                {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
+                {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25},
+                {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5},
+                {"label": "R01", "matrix": [6, 1], "x": 10.5, "y": 0.5},
+                {"label": "R02", "matrix": [6, 2], "x": 11.5, "y": 0.25},
+                {"label": "R03", "matrix": [6, 3], "x": 12.5, "y": 0},
+                {"label": "R04", "matrix": [6, 4], "x": 13.5, "y": 0.25},
+                {"label": "R05", "matrix": [6, 5], "x": 14.5, "y": 0.75},
+                {"label": "R06", "matrix": [6, 6], "x": 15.5, "y": 0.75},
+                {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75},
+                {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75},
+                {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25},
+                {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1},
+                {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25},
+                {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5},
+                {"label": "R07", "matrix": [7, 1], "x": 10.5, "y": 1.5},
+                {"label": "R08", "matrix": [7, 2], "x": 11.5, "y": 1.25},
+                {"label": "R09", "matrix": [7, 3], "x": 12.5, "y": 1},
+                {"label": "R10", "matrix": [7, 4], "x": 13.5, "y": 1.25},
+                {"label": "R11", "matrix": [7, 5], "x": 14.5, "y": 1.75},
+                {"label": "R12", "matrix": [7, 6], "x": 15.5, "y": 1.75},
+                {"label": "L18", "matrix": [2, 6], "x": 0, "y": 2.75},
+                {"label": "L17", "matrix": [2, 5], "x": 1, "y": 2.75},
+                {"label": "L16", "matrix": [2, 4], "x": 2, "y": 2.25},
+                {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2},
+                {"label": "L14", "matrix": [2, 2], "x": 4, "y": 2.25},
+                {"label": "L13", "matrix": [2, 1], "x": 5, "y": 2.5},
+                {"label": "R13", "matrix": [8, 1], "x": 10.5, "y": 2.5},
+                {"label": "R14", "matrix": [8, 2], "x": 11.5, "y": 2.25},
+                {"label": "R15", "matrix": [8, 3], "x": 12.5, "y": 2},
+                {"label": "R16", "matrix": [8, 4], "x": 13.5, "y": 2.25},
+                {"label": "R17", "matrix": [8, 5], "x": 14.5, "y": 2.75},
+                {"label": "R18", "matrix": [8, 6], "x": 15.5, "y": 2.75},
+                {"label": "L26", "matrix": [3, 6], "x": 0, "y": 3.75},
+                {"label": "L25", "matrix": [3, 5], "x": 1, "y": 3.75},
+                {"label": "L24", "matrix": [3, 4], "x": 2, "y": 3.25},
+                {"label": "L23", "matrix": [3, 3], "x": 3, "y": 3},
+                {"label": "L22", "matrix": [3, 2], "x": 4, "y": 3.25},
+                {"label": "L21", "matrix": [3, 1], "x": 5, "y": 3.5},
+                {"label": "L20", "matrix": [4, 3], "x": 6, "y": 4},
+                {"label": "L19", "matrix": [3, 0], "x": 7, "y": 4.25},
+                {"label": "R19", "matrix": [9, 0], "x": 8.5, "y": 4.25},
+                {"label": "R20", "matrix": [10, 3], "x": 9.5, "y": 4},
+                {"label": "R21", "matrix": [9, 1], "x": 10.5, "y": 3.5},
+                {"label": "R22", "matrix": [9, 2], "x": 11.5, "y": 3.25},
+                {"label": "R23", "matrix": [9, 3], "x": 12.5, "y": 3},
+                {"label": "R24", "matrix": [9, 4], "x": 13.5, "y": 3.25},
+                {"label": "R26", "matrix": [9, 5], "x": 14.5, "y": 3.75},
+                {"label": "R27", "matrix": [9, 6], "x": 15.5, "y": 3.75},
+                {"label": "L31", "matrix": [4, 4], "x": 2.5, "y": 4.25},
+                {"label": "L30", "matrix": [4, 2], "x": 3.5, "y": 4.25},
+                {"label": "L29", "matrix": [4, 1], "x": 4.5, "y": 4.5},
+                {"label": "L28", "matrix": [4, 5], "x": 5.5, "y": 5},
+                {"label": "L27", "matrix": [4, 0], "x": 6.5, "y": 5.25},
+                {"label": "R27", "matrix": [10, 0], "x": 9, "y": 5.25},
+                {"label": "R28", "matrix": [10, 5], "x": 10, "y": 5},
+                {"label": "R29", "matrix": [10, 1], "x": 11, "y": 4.5},
+                {"label": "R30", "matrix": [10, 2], "x": 12, "y": 4.25},
+                {"label": "R31", "matrix": [10, 4], "x": 13, "y": 4.25},
+                {"matrix": [5, 0], "x": 0, "y": 7},
+                {"matrix": [5, 1], "x": 1, "y": 7},
+                {"matrix": [5, 2], "x": 2, "y": 7},
+                {"matrix": [5, 3], "x": 3, "y": 7},
+                {"matrix": [5, 4], "x": 4, "y": 7},
+                {"matrix": [11, 0], "x": 15.5, "y": 7},
+                {"matrix": [11, 1], "x": 14.5, "y": 7},
+                {"matrix": [11, 2], "x": 13.5, "y": 7},
+                {"matrix": [11, 3], "x": 12.5, "y": 7},
+                {"matrix": [11, 4], "x": 11.5, "y": 7}
+            ]
         }
     }
 }
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/keymap.c b/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/keymap.c
index bbde0cdb..1cbc5f20 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/keymap.c
+++ b/keyboards/splitkb/halcyon/elora/keymaps/default_hlc/keymap.c
@@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * | MUTE | ____ | _____ | ____ | ____ |                                              | MUTE | ____ | _____ | ____ | ____ |
  * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_QWERTY] = LAYOUT_split_4x6_5_hlc(
+    [_QWERTY] = LAYOUT_elora_hlc(
      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_Y,   KC_U ,  KC_I ,   KC_O ,  KC_P , KC_BSPC,
      CTL_ESC , KC_A ,  KC_S   ,  KC_D  ,   KC_F ,   KC_G ,                                        KC_H,   KC_J ,  KC_K ,   KC_L ,KC_SCLN,CTL_QUOT,
@@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * | MUTE | ____ | _____ | ____ | ____ |                                              | MUTE | ____ | _____ | ____ | ____ |
  * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_DVORAK] = LAYOUT_split_4x6_5_hlc(
+    [_DVORAK] = LAYOUT_elora_hlc(
      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_F,   KC_G ,  KC_C ,   KC_R ,  KC_L , KC_BSPC,
      CTL_ESC , KC_A ,  KC_O   ,  KC_E  ,   KC_U ,   KC_I ,                                        KC_D,   KC_H ,  KC_T ,   KC_N ,  KC_S , CTL_MINS,
@@ -109,7 +109,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * | MUTE | ____ | _____ | ____ | ____ |                                              | MUTE | ____ | _____ | ____ | ____ |
  * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_COLEMAK_DH] = LAYOUT_split_4x6_5_hlc(
+    [_COLEMAK_DH] = LAYOUT_elora_hlc(
      KC_ESC  , KC_1 ,  KC_2   ,  KC_3  ,   KC_4 ,   KC_5 ,                                        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_J,   KC_L ,  KC_U ,   KC_Y ,KC_SCLN, KC_BSPC,
      CTL_ESC , KC_A ,  KC_R   ,  KC_S  ,   KC_T ,   KC_G ,                                        KC_M,   KC_N ,  KC_E ,   KC_I ,  KC_O , CTL_QUOT,
@@ -137,7 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |       |      |      |                                              |      |      |       |      |      |
  * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_NAV] = LAYOUT_split_4x6_5_hlc(
+    [_NAV] = LAYOUT_elora_hlc(
       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
       _______, _______, _______, _______, _______, _______,                                     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,
@@ -165,7 +165,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |       |      |      |                                              |      |      |       |      |      |
  * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_SYM] = LAYOUT_split_4x6_5_hlc(
+    [_SYM] = LAYOUT_elora_hlc(
       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
       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,
@@ -193,7 +193,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |       |      |      |                                              |      |      |       |      |      |
  * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_FUNCTION] = LAYOUT_split_4x6_5_hlc(
+    [_FUNCTION] = LAYOUT_elora_hlc(
       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
       _______,  KC_F9 ,  KC_F10,  KC_F11,  KC_F12, _______,                                     _______, _______, _______, _______, _______, _______,
       _______,  KC_F5 ,  KC_F6 ,  KC_F7 ,  KC_F8 , _______,                                     _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______,
@@ -221,7 +221,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |       |      |      |                                              |      |      |       |      |      |
  * `-----------------------------------'                                              `-----------------------------------'
  */
-    [_ADJUST] = LAYOUT_split_4x6_5_hlc(
+    [_ADJUST] = LAYOUT_elora_hlc(
       _______, _______, _______, _______, _______, _______,                                    _______, _______, _______, _______,  _______, _______,
       _______, _______, _______, QWERTY , _______, _______,                                    _______, _______, _______, _______,  _______, _______,
       _______, _______, _______, DVORAK , _______, _______,                                    RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI,  RGB_MOD, _______,
@@ -247,9 +247,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 //  *                        `----------------------------------'  `----------------------------------'
 //  * ,-----------------------------------.                                              ,-----------------------------------.
 //  * |      |      |       |      |      |                                              |      |      |       |      |      |
-//  * `-----------------------------------'                                              `-----------------------------------' 
+//  * `-----------------------------------'                                              `-----------------------------------'
 //  */
-//     [_LAYERINDEX] = LAYOUT_split_4x6_5_hlc(
+//     [_LAYERINDEX] = LAYOUT_elora_hlc(
 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
 //       _______, _______, _______, _______, _______, _______,                                     _______, _______, _______, _______, _______, _______,
@@ -258,4 +258,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 //      _______, _______,  _______, _______, _______,                                                       _______, _______, _______, _______, _______
 //     ),
 //
-};
\ No newline at end of file
+};
diff --git a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
index d28d0eac..3275d84a 100644
--- a/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
+++ b/keyboards/splitkb/halcyon/elora/keymaps/vial_hlc/keymap.json
@@ -2,7 +2,7 @@
     "keyboard": "splitkb/halcyon/elora/rev2",
     "keymap": "vial-hlc",
     "version": 1,
-    "layout": "LAYOUT_split_4x6_5_hlc",
+    "layout": "LAYOUT_elora_hlc",
     "layers": [
         [
             "KC_ESC"               , "KC_1"    , "KC_2"    , "KC_3"    , "KC_4"                 , "KC_5"    ,                                                 "KC_6"    , "KC_7"    , "KC_8"    , "KC_9"    , "KC_0"    , "KC_ESC"                 ,
diff --git a/users/halcyon_modules/splitkb/config.h b/users/halcyon_modules/splitkb/config.h
index f81adc42..08aee454 100644
--- a/users/halcyon_modules/splitkb/config.h
+++ b/users/halcyon_modules/splitkb/config.h
@@ -56,7 +56,7 @@
     #define ENCODER_B_PINS { GP18, HLC_ENCODER_B }
     #undef MATRIX_ROWS
     #define MATRIX_ROWS 12
-    #define LAYOUT_split_4x6_5_hlc(k0G, k0F, k0E, k0D, k0C, k0B, k6B, k6C, k6D, k6E, k6F, k6G, k1G, k1F, k1E, k1D, k1C, k1B, k7B, k7C, k7D, k7E, k7F, k7G, k2G, k2F, k2E, k2D, k2C, k2B, k8B, k8C, k8D, k8E, k8F, k8G, k3G, k3F, k3E, k3D, k3C, k3B, k4D, k3A, k9A, k10D, k9B, k9C, k9D, k9E, k9F, k9G, k4E, k4C, k4B, k4F, k4A, k10A, k10F, k10B, k10C, k10E, k5A, k5B, k5C, k5D, k5E, k11A, k11B, k11C, k11D, k11E) { \
+    #define LAYOUT_elora_hlc(k0G, k0F, k0E, k0D, k0C, k0B, k6B, k6C, k6D, k6E, k6F, k6G, k1G, k1F, k1E, k1D, k1C, k1B, k7B, k7C, k7D, k7E, k7F, k7G, k2G, k2F, k2E, k2D, k2C, k2B, k8B, k8C, k8D, k8E, k8F, k8G, k3G, k3F, k3E, k3D, k3C, k3B, k4D, k3A, k9A, k10D, k9B, k9C, k9D, k9E, k9F, k9G, k4E, k4C, k4B, k4F, k4A, k10A, k10F, k10B, k10C, k10E, k5A, k5B, k5C, k5D, k5E, k11A, k11B, k11C, k11D, k11E) { \
 	 {KC_NO, k0B, k0C, k0D, k0E, k0F, k0G}, \
 	 {KC_NO, k1B, k1C, k1D, k1E, k1F, k1G}, \
 	 {KC_NO, k2B, k2C, k2D, k2E, k2F, k2G}, \
From fcb1fd11c145c0ff5a31948357129058ce3c8c5f Mon Sep 17 00:00:00 2001
From: VeyPatch <126267034+VeyPatch@users.noreply.github.com>
Date: Thu, 16 Jan 2025 14:28:29 +0100
Subject: [PATCH 13/13] [fix] move hlc layout to seperate file
---
 halcyon_info.json => layouts/elora.json | 224 +++++++++---------------
 1 file changed, 80 insertions(+), 144 deletions(-)
 rename halcyon_info.json => layouts/elora.json (53%)
diff --git a/halcyon_info.json b/layouts/elora.json
similarity index 53%
rename from halcyon_info.json
rename to layouts/elora.json
index 7a4bbab4..c52a8808 100644
--- a/halcyon_info.json
+++ b/layouts/elora.json
@@ -1,144 +1,80 @@
-{
-    "layouts": {
-        "LAYOUT_split_3x6_5_hlc": {
-            "layout": [
-                {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75},
-                {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75},
-                {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25},
-                {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
-                {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25},
-                {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5},
-                {"label": "R01", "matrix": [5, 1], "x": 10.5, "y": 0.5},
-                {"label": "R02", "matrix": [5, 2], "x": 11.5, "y": 0.25},
-                {"label": "R03", "matrix": [5, 3], "x": 12.5, "y": 0},
-                {"label": "R04", "matrix": [5, 4], "x": 13.5, "y": 0.25},
-                {"label": "R05", "matrix": [5, 5], "x": 14.5, "y": 0.75},
-                {"label": "R06", "matrix": [5, 6], "x": 15.5, "y": 0.75},
-                {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75},
-                {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75},
-                {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25},
-                {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1},
-                {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25},
-                {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5},
-                {"label": "R07", "matrix": [6, 1], "x": 10.5, "y": 1.5},
-                {"label": "R08", "matrix": [6, 2], "x": 11.5, "y": 1.25},
-                {"label": "R09", "matrix": [6, 3], "x": 12.5, "y": 1},
-                {"label": "R10", "matrix": [6, 4], "x": 13.5, "y": 1.25},
-                {"label": "R11", "matrix": [6, 5], "x": 14.5, "y": 1.75},
-                {"label": "R12", "matrix": [6, 6], "x": 15.5, "y": 1.75},
-                {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75},
-                {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75},
-                {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25},
-                {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2},
-                {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25},
-                {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5},
-                {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3},
-                {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25},
-                {"label": "R13", "matrix": [7, 0], "x": 8.5, "y": 3.25},
-                {"label": "R14", "matrix": [8, 3], "x": 9.5, "y": 3},
-                {"label": "R15", "matrix": [7, 1], "x": 10.5, "y": 2.5},
-                {"label": "R16", "matrix": [7, 2], "x": 11.5, "y": 2.25},
-                {"label": "R17", "matrix": [7, 3], "x": 12.5, "y": 2},
-                {"label": "R18", "matrix": [7, 4], "x": 13.5, "y": 2.25},
-                {"label": "R19", "matrix": [7, 5], "x": 14.5, "y": 2.75},
-                {"label": "R20", "matrix": [7, 6], "x": 15.5, "y": 2.75},
-                {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25},
-                {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25},
-                {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5},
-                {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4},
-                {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25},
-                {"label": "R21", "matrix": [8, 0], "x": 9, "y": 4.25},
-                {"label": "R22", "matrix": [8, 5], "x": 10, "y": 4},
-                {"label": "R23", "matrix": [8, 1], "x": 11, "y": 3.5},
-                {"label": "R24", "matrix": [8, 2], "x": 12, "y": 3.25},
-                {"label": "R25", "matrix": [8, 4], "x": 13, "y": 3.25},
-                {"matrix": [4, 0], "x": 0, "y": 6},
-                {"matrix": [4, 1], "x": 1, "y": 6},
-                {"matrix": [4, 2], "x": 2, "y": 6},
-                {"matrix": [4, 3], "x": 3, "y": 6},
-                {"matrix": [4, 4], "x": 4, "y": 6},
-                {"matrix": [9, 0], "x": 15.5, "y": 6},
-                {"matrix": [9, 1], "x": 14.5, "y": 6},
-                {"matrix": [9, 2], "x": 13.5, "y": 6},
-                {"matrix": [9, 3], "x": 12.5, "y": 6},
-                {"matrix": [9, 4], "x": 11.5, "y": 6}
-            ]
-        },
-        "LAYOUT_elora_hlc": {
-            "layout": [
-                {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75},
-                {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75},
-                {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25},
-                {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
-                {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25},
-                {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5},
-                {"label": "R01", "matrix": [6, 1], "x": 10.5, "y": 0.5},
-                {"label": "R02", "matrix": [6, 2], "x": 11.5, "y": 0.25},
-                {"label": "R03", "matrix": [6, 3], "x": 12.5, "y": 0},
-                {"label": "R04", "matrix": [6, 4], "x": 13.5, "y": 0.25},
-                {"label": "R05", "matrix": [6, 5], "x": 14.5, "y": 0.75},
-                {"label": "R06", "matrix": [6, 6], "x": 15.5, "y": 0.75},
-                {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75},
-                {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75},
-                {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25},
-                {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1},
-                {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25},
-                {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5},
-                {"label": "R07", "matrix": [7, 1], "x": 10.5, "y": 1.5},
-                {"label": "R08", "matrix": [7, 2], "x": 11.5, "y": 1.25},
-                {"label": "R09", "matrix": [7, 3], "x": 12.5, "y": 1},
-                {"label": "R10", "matrix": [7, 4], "x": 13.5, "y": 1.25},
-                {"label": "R11", "matrix": [7, 5], "x": 14.5, "y": 1.75},
-                {"label": "R12", "matrix": [7, 6], "x": 15.5, "y": 1.75},
-                {"label": "L18", "matrix": [2, 6], "x": 0, "y": 2.75},
-                {"label": "L17", "matrix": [2, 5], "x": 1, "y": 2.75},
-                {"label": "L16", "matrix": [2, 4], "x": 2, "y": 2.25},
-                {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2},
-                {"label": "L14", "matrix": [2, 2], "x": 4, "y": 2.25},
-                {"label": "L13", "matrix": [2, 1], "x": 5, "y": 2.5},
-                {"label": "R13", "matrix": [8, 1], "x": 10.5, "y": 2.5},
-                {"label": "R14", "matrix": [8, 2], "x": 11.5, "y": 2.25},
-                {"label": "R15", "matrix": [8, 3], "x": 12.5, "y": 2},
-                {"label": "R16", "matrix": [8, 4], "x": 13.5, "y": 2.25},
-                {"label": "R17", "matrix": [8, 5], "x": 14.5, "y": 2.75},
-                {"label": "R18", "matrix": [8, 6], "x": 15.5, "y": 2.75},
-                {"label": "L26", "matrix": [3, 6], "x": 0, "y": 3.75},
-                {"label": "L25", "matrix": [3, 5], "x": 1, "y": 3.75},
-                {"label": "L24", "matrix": [3, 4], "x": 2, "y": 3.25},
-                {"label": "L23", "matrix": [3, 3], "x": 3, "y": 3},
-                {"label": "L22", "matrix": [3, 2], "x": 4, "y": 3.25},
-                {"label": "L21", "matrix": [3, 1], "x": 5, "y": 3.5},
-                {"label": "L20", "matrix": [4, 3], "x": 6, "y": 4},
-                {"label": "L19", "matrix": [3, 0], "x": 7, "y": 4.25},
-                {"label": "R19", "matrix": [9, 0], "x": 8.5, "y": 4.25},
-                {"label": "R20", "matrix": [10, 3], "x": 9.5, "y": 4},
-                {"label": "R21", "matrix": [9, 1], "x": 10.5, "y": 3.5},
-                {"label": "R22", "matrix": [9, 2], "x": 11.5, "y": 3.25},
-                {"label": "R23", "matrix": [9, 3], "x": 12.5, "y": 3},
-                {"label": "R24", "matrix": [9, 4], "x": 13.5, "y": 3.25},
-                {"label": "R26", "matrix": [9, 5], "x": 14.5, "y": 3.75},
-                {"label": "R27", "matrix": [9, 6], "x": 15.5, "y": 3.75},
-                {"label": "L31", "matrix": [4, 4], "x": 2.5, "y": 4.25},
-                {"label": "L30", "matrix": [4, 2], "x": 3.5, "y": 4.25},
-                {"label": "L29", "matrix": [4, 1], "x": 4.5, "y": 4.5},
-                {"label": "L28", "matrix": [4, 5], "x": 5.5, "y": 5},
-                {"label": "L27", "matrix": [4, 0], "x": 6.5, "y": 5.25},
-                {"label": "R27", "matrix": [10, 0], "x": 9, "y": 5.25},
-                {"label": "R28", "matrix": [10, 5], "x": 10, "y": 5},
-                {"label": "R29", "matrix": [10, 1], "x": 11, "y": 4.5},
-                {"label": "R30", "matrix": [10, 2], "x": 12, "y": 4.25},
-                {"label": "R31", "matrix": [10, 4], "x": 13, "y": 4.25},
-                {"matrix": [5, 0], "x": 0, "y": 7},
-                {"matrix": [5, 1], "x": 1, "y": 7},
-                {"matrix": [5, 2], "x": 2, "y": 7},
-                {"matrix": [5, 3], "x": 3, "y": 7},
-                {"matrix": [5, 4], "x": 4, "y": 7},
-                {"matrix": [11, 0], "x": 15.5, "y": 7},
-                {"matrix": [11, 1], "x": 14.5, "y": 7},
-                {"matrix": [11, 2], "x": 13.5, "y": 7},
-                {"matrix": [11, 3], "x": 12.5, "y": 7},
-                {"matrix": [11, 4], "x": 11.5, "y": 7}
-            ]
-        }
-    }
-}
+{
+    "layouts": {
+        "LAYOUT_elora_hlc": {
+            "layout": [
+                {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75},
+                {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75},
+                {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25},
+                {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
+                {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25},
+                {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5},
+                {"label": "R01", "matrix": [6, 1], "x": 10.5, "y": 0.5},
+                {"label": "R02", "matrix": [6, 2], "x": 11.5, "y": 0.25},
+                {"label": "R03", "matrix": [6, 3], "x": 12.5, "y": 0},
+                {"label": "R04", "matrix": [6, 4], "x": 13.5, "y": 0.25},
+                {"label": "R05", "matrix": [6, 5], "x": 14.5, "y": 0.75},
+                {"label": "R06", "matrix": [6, 6], "x": 15.5, "y": 0.75},
+                {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75},
+                {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75},
+                {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25},
+                {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1},
+                {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25},
+                {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5},
+                {"label": "R07", "matrix": [7, 1], "x": 10.5, "y": 1.5},
+                {"label": "R08", "matrix": [7, 2], "x": 11.5, "y": 1.25},
+                {"label": "R09", "matrix": [7, 3], "x": 12.5, "y": 1},
+                {"label": "R10", "matrix": [7, 4], "x": 13.5, "y": 1.25},
+                {"label": "R11", "matrix": [7, 5], "x": 14.5, "y": 1.75},
+                {"label": "R12", "matrix": [7, 6], "x": 15.5, "y": 1.75},
+                {"label": "L18", "matrix": [2, 6], "x": 0, "y": 2.75},
+                {"label": "L17", "matrix": [2, 5], "x": 1, "y": 2.75},
+                {"label": "L16", "matrix": [2, 4], "x": 2, "y": 2.25},
+                {"label": "L15", "matrix": [2, 3], "x": 3, "y": 2},
+                {"label": "L14", "matrix": [2, 2], "x": 4, "y": 2.25},
+                {"label": "L13", "matrix": [2, 1], "x": 5, "y": 2.5},
+                {"label": "R13", "matrix": [8, 1], "x": 10.5, "y": 2.5},
+                {"label": "R14", "matrix": [8, 2], "x": 11.5, "y": 2.25},
+                {"label": "R15", "matrix": [8, 3], "x": 12.5, "y": 2},
+                {"label": "R16", "matrix": [8, 4], "x": 13.5, "y": 2.25},
+                {"label": "R17", "matrix": [8, 5], "x": 14.5, "y": 2.75},
+                {"label": "R18", "matrix": [8, 6], "x": 15.5, "y": 2.75},
+                {"label": "L26", "matrix": [3, 6], "x": 0, "y": 3.75},
+                {"label": "L25", "matrix": [3, 5], "x": 1, "y": 3.75},
+                {"label": "L24", "matrix": [3, 4], "x": 2, "y": 3.25},
+                {"label": "L23", "matrix": [3, 3], "x": 3, "y": 3},
+                {"label": "L22", "matrix": [3, 2], "x": 4, "y": 3.25},
+                {"label": "L21", "matrix": [3, 1], "x": 5, "y": 3.5},
+                {"label": "L20", "matrix": [4, 3], "x": 6, "y": 4},
+                {"label": "L19", "matrix": [3, 0], "x": 7, "y": 4.25},
+                {"label": "R19", "matrix": [9, 0], "x": 8.5, "y": 4.25},
+                {"label": "R20", "matrix": [10, 3], "x": 9.5, "y": 4},
+                {"label": "R21", "matrix": [9, 1], "x": 10.5, "y": 3.5},
+                {"label": "R22", "matrix": [9, 2], "x": 11.5, "y": 3.25},
+                {"label": "R23", "matrix": [9, 3], "x": 12.5, "y": 3},
+                {"label": "R24", "matrix": [9, 4], "x": 13.5, "y": 3.25},
+                {"label": "R26", "matrix": [9, 5], "x": 14.5, "y": 3.75},
+                {"label": "R27", "matrix": [9, 6], "x": 15.5, "y": 3.75},
+                {"label": "L31", "matrix": [4, 4], "x": 2.5, "y": 4.25},
+                {"label": "L30", "matrix": [4, 2], "x": 3.5, "y": 4.25},
+                {"label": "L29", "matrix": [4, 1], "x": 4.5, "y": 4.5},
+                {"label": "L28", "matrix": [4, 5], "x": 5.5, "y": 5},
+                {"label": "L27", "matrix": [4, 0], "x": 6.5, "y": 5.25},
+                {"label": "R27", "matrix": [10, 0], "x": 9, "y": 5.25},
+                {"label": "R28", "matrix": [10, 5], "x": 10, "y": 5},
+                {"label": "R29", "matrix": [10, 1], "x": 11, "y": 4.5},
+                {"label": "R30", "matrix": [10, 2], "x": 12, "y": 4.25},
+                {"label": "R31", "matrix": [10, 4], "x": 13, "y": 4.25},
+                {"matrix": [5, 0], "x": 0, "y": 7},
+                {"matrix": [5, 1], "x": 1, "y": 7},
+                {"matrix": [5, 2], "x": 2, "y": 7},
+                {"matrix": [5, 3], "x": 3, "y": 7},
+                {"matrix": [5, 4], "x": 4, "y": 7},
+                {"matrix": [11, 0], "x": 15.5, "y": 7},
+                {"matrix": [11, 1], "x": 14.5, "y": 7},
+                {"matrix": [11, 2], "x": 13.5, "y": 7},
+                {"matrix": [11, 3], "x": 12.5, "y": 7},
+                {"matrix": [11, 4], "x": 11.5, "y": 7}
+            ]
+        }
+    }
+}