master
Mark 2023-12-19 09:03:31 -08:00
parent 87029d00c1
commit 7cb29a6bba
No known key found for this signature in database
GPG Key ID: B4DF96450FAAD9F2
14 changed files with 761 additions and 711 deletions

View File

@ -1,23 +1,3 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
Copyright 2015 ZSA Technology Labs Inc (@zsa)
Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "betalupi_ergodox.h"
#include "features/beta_rawhid.h"
@ -66,16 +46,16 @@ void matrix_init_kb(void) {
PORTE |= (1<<6);
keyboard_config.raw = eeconfig_read_kb();
#ifdef RGB_MATRIX_ENABLE
#ifdef RGB_MATRIX_ENABLE
if (keyboard_config.rgb_matrix_enable) {
rgb_matrix_set_flags(LED_FLAG_ALL);
} else {
rgb_matrix_set_flags(LED_FLAG_NONE);
}
#endif
#endif
ergodox_blink_all_leds();
matrix_init_user();
}
@ -144,139 +124,6 @@ out:
}
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
// swap-hands action needs a matrix to define the swap
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
/* Left hand, matrix positions */
{{0,13}, {1,13}, {2,13}, {3,13}, {4,13}, {5,13}},
{{0,12}, {1,12}, {2,12}, {3,12}, {4,12}, {5,12}},
{{0,11}, {1,11}, {2,11}, {3,11}, {4,11}, {5,11}},
{{0,10}, {1,10}, {2,10}, {3,10}, {4,10}, {5,10}},
{{0,9}, {1,9}, {2,9}, {3,9}, {4,9}, {5,9}},
{{0,8}, {1,8}, {2,8}, {3,8}, {4,8}, {5,8}},
{{0,7}, {1,7}, {2,7}, {3,7}, {4,7}, {5,7}},
/* Right hand, matrix positions */
{{0,6}, {1,6}, {2,6}, {3,6}, {4,6}, {5,6}},
{{0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5}},
{{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}},
{{0,3}, {1,3}, {2,3}, {3,3}, {4,3}, {5,3}},
{{0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {5,2}},
{{0,1}, {1,1}, {2,1}, {3,1}, {4,1}, {5,1}},
{{0,0}, {1,0}, {2,0}, {3,0}, {4,0}, {5,0}},
};
#endif
#ifdef RGB_MATRIX_ENABLE
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
//{driver, R location, G location, B location}
{0, C3_1, C2_1, C4_1}, // LED1 on right
{0, C6_1, C5_1, C7_1}, // LED2
{0, C4_2, C3_2, C5_2}, // LED3
{0, C7_2, C6_2, C8_2}, // LED4
{0, C2_3, C1_3, C3_3}, // LED5
{0, C5_3, C4_3, C6_3}, // LED6
{0, C8_3, C7_3, C9_3}, // LED7
{0, C2_4, C1_4, C3_4}, // LED8
{0, C6_4, C5_4, C7_4}, // LED9
{0, C2_5, C1_5, C3_5}, // LED10
{0, C7_5, C6_5, C8_5}, // LED11
{0, C2_6, C1_6, C3_6}, // LED12
{0, C5_6, C4_6, C6_6}, // LED13
{0, C8_6, C7_6, C9_6}, // LED14
{0, C2_7, C1_7, C3_7}, // LED15
{0, C5_7, C4_7, C6_7}, // LED16
{0, C2_8, C1_8, C3_8}, // LED17
{0, C5_8, C4_8, C6_8}, // LED18
{0, C3_9, C2_9, C4_9}, // LED19
{0, C6_9, C5_9, C7_9}, // LED20
{0, C4_10, C3_10, C5_10}, // LED21
{0, C7_10, C6_10, C8_10}, // LED22
{0, C2_11, C1_11, C3_11}, // LED23
{0, C5_11, C4_11, C6_11}, // LED24
{1, C3_1, C2_1, C4_1}, // LED1 on left
{1, C6_1, C5_1, C7_1}, // LED2
{1, C4_2, C3_2, C5_2}, // LED3
{1, C7_2, C6_2, C8_2}, // LED4
{1, C2_3, C1_3, C3_3}, // LED5
{1, C5_3, C4_3, C6_3}, // LED6
{1, C8_3, C7_3, C9_3}, // LED7
{1, C2_4, C1_4, C3_4}, // LED8
{1, C6_4, C5_4, C7_4}, // LED9
{1, C2_5, C1_5, C3_5}, // LED10
{1, C7_5, C6_5, C8_5}, // LED11
{1, C2_6, C1_6, C3_6}, // LED12
{1, C5_6, C4_6, C6_6}, // LED13
{1, C8_6, C7_6, C9_6}, // LED14
{1, C2_7, C1_7, C3_7}, // LED15
{1, C5_7, C4_7, C6_7}, // LED16
{1, C2_8, C1_8, C3_8}, // LED17
{1, C5_8, C4_8, C6_8}, // LED18
{1, C3_9, C2_9, C4_9}, // LED19
{1, C6_9, C5_9, C7_9}, // LED20
{1, C4_10, C3_10, C5_10}, // LED21
{1, C7_10, C6_10, C8_10}, // LED22
{1, C2_11, C1_11, C3_11}, // LED23
{1, C5_11, C4_11, C6_11} // LED24
};
led_config_t g_led_config = { {
// Key matrix to LED index
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ 28, 33, 38, 43, 47, NO_LED },
{ 27, 32, 37, 42, 46, NO_LED },
{ 26, 31, 36, 41, 45, NO_LED },
{ 25, 30, 35, 40, 44, NO_LED },
{ 24, 29, 34, 39, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ 0, 5, 10, 15, NO_LED, NO_LED },
{ 1, 6, 11, 16, 20, NO_LED },
{ 2, 7, 12, 17, 21, NO_LED },
{ 3, 8, 13, 18, 22, NO_LED },
{ 4, 9, 14, 19, 23, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
}, {
// LED index to physical position
{ 137, 0 }, { 154, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 137, 12 },
{ 154, 12 }, { 172, 12 }, { 189, 12 }, { 206, 12 }, { 137, 25 }, { 154, 25 },
{ 172, 25 }, { 189, 25 }, { 206, 25 }, { 137, 38 }, { 154, 38 }, { 172, 38 },
{ 189, 38 }, { 206, 38 }, { 154, 51 }, { 172, 51 }, { 189, 51 }, { 206, 51 },
{ 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 86, 12 },
{ 68, 12 }, { 51, 12 }, { 34, 12 }, { 17, 12 }, { 86, 25 }, { 68, 25 },
{ 51, 25 }, { 34, 25 }, { 17, 25 }, { 86, 38 }, { 68, 38 }, { 51, 38 },
{ 34, 38 }, { 17, 38 }, { 68, 51 }, { 51, 51 }, { 34, 51 }, { 17, 51 }
}, {
// LED index to flag
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 1, 1, 1, 1,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 1, 1, 1, 1
} };
#endif
void keyboard_post_init_kb(void) {
// Start with matrix enabled
@ -295,196 +142,6 @@ void keyboard_post_init_kb(void) {
keyboard_post_init_user();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LED_LEVEL:
if (record->event.pressed) {
keyboard_config.led_level++;
if (keyboard_config.led_level > 4) {
keyboard_config.led_level = 0;
}
ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 );
eeconfig_update_kb(keyboard_config.raw);
layer_state_set_kb(layer_state);
}
break;
#ifdef RGB_MATRIX_ENABLE
case TOGGLE_LAYER_COLOR:
if (record->event.pressed) {
keyboard_config.disable_layer_led ^= 1;
if (keyboard_config.disable_layer_led) {
rgb_matrix_set_color_all(0, 0, 0);
}
eeconfig_update_kb(keyboard_config.raw);
}
break;
case RGB_TOG:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
keyboard_config.rgb_matrix_enable = false;
rgb_matrix_set_color_all(0, 0, 0);
}
break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
keyboard_config.rgb_matrix_enable = true;
}
break;
}
eeconfig_update_kb(keyboard_config.raw);
}
hid_send_state();
return false;
case RGB_MOD:
// Tell the host whenever we change animation mode.
hid_send_state();
return true;
#endif
// Custom RGBLIGHT macros
#ifdef RGBLIGHT_ENABLE
#ifdef RGBLIGHT_NO_EEPROM
case LIGHT_TOG:
if (record->event.pressed) {
rgblight_toggle_noeeprom();
}
break;
case LIGHT_MOD:
if (record->event.pressed) {
rgblight_step_noeeprom();
}
break;
case LIGHT_HUI:
if (record->event.pressed) {
rgblight_increase_hue_noeeprom();
}
break;
case LIGHT_HUD:
if (record->event.pressed) {
rgblight_decrease_hue_noeeprom();
}
break;
case LIGHT_SAI:
if (record->event.pressed) {
rgblight_increase_sat_noeeprom();
}
break;
case LIGHT_SAD:
if (record->event.pressed) {
rgblight_decrease_sat_noeeprom();
}
break;
case LIGHT_VAI:
if (record->event.pressed) {
rgblight_increase_val_noeeprom();
}
break;
case LIGHT_VAD:
if (record->event.pressed) {
rgblight_decrease_val_noeeprom();
}
break;
case LIGHT_SPI:
if (record->event.pressed) {
rgblight_increase_speed_noeeprom();
}
break;
case LIGHT_SPD:
if (record->event.pressed) {
rgblight_decrease_speed_noeeprom();
}
break;
#else
case LIGHT_TOG:
if (record->event.pressed) {
rgblight_toggle();
}
break;
case LIGHT_MOD:
if (record->event.pressed) {
rgblight_step();
}
break;
case LIGHT_HUI:
if (record->event.pressed) {
rgblight_increase_hue();
}
break;
case LIGHT_HUD:
if (record->event.pressed) {
rgblight_decrease_hue();
}
break;
case LIGHT_SAI:
if (record->event.pressed) {
rgblight_increase_sat();
}
break;
case LIGHT_SAD:
if (record->event.pressed) {
rgblight_decrease_sat();
}
break;
case LIGHT_VAI:
if (record->event.pressed) {
rgblight_increase_val();
}
break;
case LIGHT_VAD:
if (record->event.pressed) {
rgblight_decrease_val();
}
break;
case LIGHT_SPI:
if (record->event.pressed) {
rgblight_increase_speed();
}
break;
case LIGHT_SPD:
if (record->event.pressed) {
rgblight_decrease_speed();
}
break;
#endif
#endif
}
return process_record_user(keycode, record);
}
layer_state_t layer_state_set_kb(layer_state_t state) {
//uint8_t layer = biton32(state);
hid_send_state(
.state = state
);
return layer_state_set_user(state);
};
// EEPROM is getting reset!
void eeconfig_init_kb(void) {
keyboard_config.raw = 0;
@ -495,11 +152,19 @@ void eeconfig_init_kb(void) {
}
layer_state_t layer_state_set_kb(layer_state_t state) {
//uint8_t layer = biton32(state);
hid_send_state(
.state = state
);
return layer_state_set_user(state);
};
void matrix_scan_kb(void) {
#ifdef CAPS_LOCK_STATUS
#ifdef CAPS_LOCK_STATUS
led_t led_state = host_keyboard_led_state();
if(led_state.caps_lock) {
ergodox_right_led_3_on();
@ -510,7 +175,7 @@ void matrix_scan_kb(void) {
ergodox_right_led_3_off();
}
}
#endif
#endif
matrix_scan_user();
}

View File

@ -1,29 +1,10 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
Copyright 2015 ZSA Technology Labs Inc (@zsa)
Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
#include <stdint.h>
#include <stdbool.h>
#include "i2c_master.h"
#include "hardware/macros.h"
// I2C aliases and register addresses (see "mcp23018.md")
#define I2C_ADDR 0b0100000
@ -122,186 +103,3 @@ typedef union {
} keyboard_config_t;
extern keyboard_config_t keyboard_config;
// Turns {h, s, v} triples into a macro, so that
// the LEDS_ergodox macro can take them as inputs.
#define LC_HSV(h, s, v) {h, s, v}
// Rearrange a human-readable LED layout into the correct Ergodox order.
// LEDS_ergodox ONLY WORKS WITH MACROS.
// Don't input a standalone triple {h, s, v};
// Use LC_HSV if you need a single-instance color.
#define LEDS_ergodox( \
l01,l02,l03,l04,l05, \
l06,l07,l08,l09,l10, \
l11,l12,l13,l14,l15, \
l16,l17,l18,l19,l20, \
l21,l22,l23,l24, \
\
l25,l26,l27,l28,l29, \
l30,l31,l32,l33,l34, \
l35,l36,l37,l38,l39, \
l40,l41,l42,l43,l44, \
l45,l46,l47,l48 \
) \
{ \
l25,l26,l27,l28,l29, \
l30,l31,l32,l33,l34, \
l35,l36,l37,l38,l39, \
l40,l41,l42,l43,l44, \
l45,l46,l47,l48, \
\
l05,l04,l03,l02,l01, \
l10,l09,l08,l07,l06, \
l15,l14,l13,l12,l11, \
l20,l19,l18,l17,l16, \
l24,l23,l22,l21 \
}
/*
LEFT HAND: LINES 115-122
RIGHT HAND: LINES 124-131
*/
#define LAYOUT_ergodox( \
\
k00,k01,k02,k03,k04,k05,k06, \
k10,k11,k12,k13,k14,k15,k16, \
k20,k21,k22,k23,k24,k25, \
k30,k31,k32,k33,k34,k35,k36, \
k40,k41,k42,k43,k44, \
k55,k56, \
k54, \
k53,k52,k51, \
\
k07,k08,k09,k0A,k0B,k0C,k0D, \
k17,k18,k19,k1A,k1B,k1C,k1D, \
k28,k29,k2A,k2B,k2C,k2D, \
k37,k38,k39,k3A,k3B,k3C,k3D, \
k49,k4A,k4B,k4C,k4D, \
k57,k58, \
k59, \
k5C,k5B,k5A ) \
\
/* matrix positions */ \
{ \
{ k00, k10, k20, k30, k40, KC_NO }, \
{ k01, k11, k21, k31, k41, k51 }, \
{ k02, k12, k22, k32, k42, k52 }, \
{ k03, k13, k23, k33, k43, k53 }, \
{ k04, k14, k24, k34, k44, k54 }, \
{ k05, k15, k25, k35, KC_NO, k55 }, \
{ k06, k16, KC_NO, k36, KC_NO, k56 }, \
\
{ k07, k17, KC_NO, k37,KC_NO, k57 }, \
{ k08, k18, k28, k38,KC_NO, k58 }, \
{ k09, k19, k29, k39, k49, k59 }, \
{ k0A, k1A, k2A, k3A, k4A, k5A }, \
{ k0B, k1B, k2B, k3B, k4B, k5B }, \
{ k0C, k1C, k2C, k3C, k4C, k5C }, \
{ k0D, k1D, k2D, k3D, k4D, KC_NO } \
}
/*
LEFT HAND: LINES 158-165
RIGHT HAND: LINES 167-174
*/
#define LAYOUT_ergodox_80( \
\
k00,k01,k02,k03,k04,k05,k06, \
k10,k11,k12,k13,k14,k15,k16, \
k20,k21,k22,k23,k24,k25, \
k30,k31,k32,k33,k34,k35,k36, \
k40,k41,k42,k43,k44, \
k55,k56, \
k45,k46,k54, \
k53,k52,k51, \
\
k07,k08,k09,k0A,k0B,k0C,k0D, \
k17,k18,k19,k1A,k1B,k1C,k1D, \
k28,k29,k2A,k2B,k2C,k2D, \
k37,k38,k39,k3A,k3B,k3C,k3D, \
k49,k4A,k4B,k4C,k4D, \
k57,k58, \
k59,k47,k48, \
k5C,k5B,k5A ) \
\
/* matrix positions */ \
{ \
{ k00, k10, k20, k30, k40, KC_NO }, \
{ k01, k11, k21, k31, k41, k51 }, \
{ k02, k12, k22, k32, k42, k52 }, \
{ k03, k13, k23, k33, k43, k53 }, \
{ k04, k14, k24, k34, k44, k54 }, \
{ k05, k15, k25, k35, k45, k55 }, \
{ k06, k16, KC_NO, k36, k46, k56 }, \
\
{ k07, k17, KC_NO, k37, k47, k57 }, \
{ k08, k18, k28, k38, k48, k58 }, \
{ k09, k19, k29, k39, k49, k59 }, \
{ k0A, k1A, k2A, k3A, k4A, k5A }, \
{ k0B, k1B, k2B, k3B, k4B, k5B }, \
{ k0C, k1C, k2C, k3C, k4C, k5C }, \
{ k0D, k1D, k2D, k3D, k4D, KC_NO } \
}
/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
#define LAYOUT_ergodox_pretty( \
L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \
L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \
L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \
L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \
L55,L56, R50,R51, \
L54, R52, \
L53,L52,L51, R55,R54,R53 ) \
\
/* matrix positions */ \
{ \
{ L00, L10, L20, L30, L40, KC_NO }, \
{ L01, L11, L21, L31, L41, L51 }, \
{ L02, L12, L22, L32, L42, L52 }, \
{ L03, L13, L23, L33, L43, L53 }, \
{ L04, L14, L24, L34, L44, L54 }, \
{ L05, L15, L25, L35, KC_NO, L55 }, \
{ L06, L16, KC_NO, L36, KC_NO, L56 }, \
\
{ R00, R10, KC_NO, R30,KC_NO, R50 }, \
{ R01, R11, R21, R31,KC_NO, R51 }, \
{ R02, R12, R22, R32, R42, R52 }, \
{ R03, R13, R23, R33, R43, R53 }, \
{ R04, R14, R24, R34, R44, R54 }, \
{ R05, R15, R25, R35, R45, R55 }, \
{ R06, R16, R26, R36, R46, KC_NO } \
}
/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
#define LAYOUT_ergodox_pretty_80( \
L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \
L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \
L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \
L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \
L55,L56, R50,R51, \
L45,L46,L54, R52,R40,R41, \
L53,L52,L51, R55,R54,R53 ) \
\
/* matrix positions */ \
{ \
{ L00, L10, L20, L30, L40, KC_NO }, \
{ L01, L11, L21, L31, L41, L51 }, \
{ L02, L12, L22, L32, L42, L52 }, \
{ L03, L13, L23, L33, L43, L53 }, \
{ L04, L14, L24, L34, L44, L54 }, \
{ L05, L15, L25, L35, L45, L55 }, \
{ L06, L16, KC_NO, L36, L46, L56 }, \
\
{ R00, R10, KC_NO, R30, R40, R50 }, \
{ R01, R11, R21, R31, R41, R51 }, \
{ R02, R12, R22, R32, R42, R52 }, \
{ R03, R13, R23, R33, R43, R53 }, \
{ R04, R14, R24, R34, R44, R54 }, \
{ R05, R15, R25, R35, R45, R55 }, \
{ R06, R16, R26, R36, R46, KC_NO } \
}

View File

@ -0,0 +1,34 @@
// Turns {h, s, v} triples into a macro, so that
// the LEDS_ergodox macro can take them as inputs.
#define LC_HSV(h, s, v) {h, s, v}
// Rearrange a human-readable LED layout into the correct Ergodox order.
// LEDS_ergodox ONLY WORKS WITH MACROS.
// Don't input a standalone triple {h, s, v};
// Use LC_HSV if you need a single-instance color.
#define LEDS_ergodox( \
l01,l02,l03,l04,l05, \
l06,l07,l08,l09,l10, \
l11,l12,l13,l14,l15, \
l16,l17,l18,l19,l20, \
l21,l22,l23,l24, \
\
l25,l26,l27,l28,l29, \
l30,l31,l32,l33,l34, \
l35,l36,l37,l38,l39, \
l40,l41,l42,l43,l44, \
l45,l46,l47,l48 \
) \
{ \
l25,l26,l27,l28,l29, \
l30,l31,l32,l33,l34, \
l35,l36,l37,l38,l39, \
l40,l41,l42,l43,l44, \
l45,l46,l47,l48, \
\
l05,l04,l03,l02,l01, \
l10,l09,l08,l07,l06, \
l15,l14,l13,l12,l11, \
l20,l19,l18,l17,l16, \
l24,l23,l22,l21 \
}

View File

@ -0,0 +1,133 @@
#include "betalupi_ergodox.h"
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
// swap-hands action needs a matrix to define the swap
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
/* Left hand, matrix positions */
{{0,13}, {1,13}, {2,13}, {3,13}, {4,13}, {5,13}},
{{0,12}, {1,12}, {2,12}, {3,12}, {4,12}, {5,12}},
{{0,11}, {1,11}, {2,11}, {3,11}, {4,11}, {5,11}},
{{0,10}, {1,10}, {2,10}, {3,10}, {4,10}, {5,10}},
{{0,9}, {1,9}, {2,9}, {3,9}, {4,9}, {5,9}},
{{0,8}, {1,8}, {2,8}, {3,8}, {4,8}, {5,8}},
{{0,7}, {1,7}, {2,7}, {3,7}, {4,7}, {5,7}},
/* Right hand, matrix positions */
{{0,6}, {1,6}, {2,6}, {3,6}, {4,6}, {5,6}},
{{0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5}},
{{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}},
{{0,3}, {1,3}, {2,3}, {3,3}, {4,3}, {5,3}},
{{0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {5,2}},
{{0,1}, {1,1}, {2,1}, {3,1}, {4,1}, {5,1}},
{{0,0}, {1,0}, {2,0}, {3,0}, {4,0}, {5,0}},
};
#endif
#ifdef RGB_MATRIX_ENABLE
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
//{driver, R location, G location, B location}
{0, C3_1, C2_1, C4_1}, // LED1 on right
{0, C6_1, C5_1, C7_1}, // LED2
{0, C4_2, C3_2, C5_2}, // LED3
{0, C7_2, C6_2, C8_2}, // LED4
{0, C2_3, C1_3, C3_3}, // LED5
{0, C5_3, C4_3, C6_3}, // LED6
{0, C8_3, C7_3, C9_3}, // LED7
{0, C2_4, C1_4, C3_4}, // LED8
{0, C6_4, C5_4, C7_4}, // LED9
{0, C2_5, C1_5, C3_5}, // LED10
{0, C7_5, C6_5, C8_5}, // LED11
{0, C2_6, C1_6, C3_6}, // LED12
{0, C5_6, C4_6, C6_6}, // LED13
{0, C8_6, C7_6, C9_6}, // LED14
{0, C2_7, C1_7, C3_7}, // LED15
{0, C5_7, C4_7, C6_7}, // LED16
{0, C2_8, C1_8, C3_8}, // LED17
{0, C5_8, C4_8, C6_8}, // LED18
{0, C3_9, C2_9, C4_9}, // LED19
{0, C6_9, C5_9, C7_9}, // LED20
{0, C4_10, C3_10, C5_10}, // LED21
{0, C7_10, C6_10, C8_10}, // LED22
{0, C2_11, C1_11, C3_11}, // LED23
{0, C5_11, C4_11, C6_11}, // LED24
{1, C3_1, C2_1, C4_1}, // LED1 on left
{1, C6_1, C5_1, C7_1}, // LED2
{1, C4_2, C3_2, C5_2}, // LED3
{1, C7_2, C6_2, C8_2}, // LED4
{1, C2_3, C1_3, C3_3}, // LED5
{1, C5_3, C4_3, C6_3}, // LED6
{1, C8_3, C7_3, C9_3}, // LED7
{1, C2_4, C1_4, C3_4}, // LED8
{1, C6_4, C5_4, C7_4}, // LED9
{1, C2_5, C1_5, C3_5}, // LED10
{1, C7_5, C6_5, C8_5}, // LED11
{1, C2_6, C1_6, C3_6}, // LED12
{1, C5_6, C4_6, C6_6}, // LED13
{1, C8_6, C7_6, C9_6}, // LED14
{1, C2_7, C1_7, C3_7}, // LED15
{1, C5_7, C4_7, C6_7}, // LED16
{1, C2_8, C1_8, C3_8}, // LED17
{1, C5_8, C4_8, C6_8}, // LED18
{1, C3_9, C2_9, C4_9}, // LED19
{1, C6_9, C5_9, C7_9}, // LED20
{1, C4_10, C3_10, C5_10}, // LED21
{1, C7_10, C6_10, C8_10}, // LED22
{1, C2_11, C1_11, C3_11}, // LED23
{1, C5_11, C4_11, C6_11} // LED24
};
led_config_t g_led_config = { {
// Key matrix to LED index
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ 28, 33, 38, 43, 47, NO_LED },
{ 27, 32, 37, 42, 46, NO_LED },
{ 26, 31, 36, 41, 45, NO_LED },
{ 25, 30, 35, 40, 44, NO_LED },
{ 24, 29, 34, 39, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ 0, 5, 10, 15, NO_LED, NO_LED },
{ 1, 6, 11, 16, 20, NO_LED },
{ 2, 7, 12, 17, 21, NO_LED },
{ 3, 8, 13, 18, 22, NO_LED },
{ 4, 9, 14, 19, 23, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
}, {
// LED index to physical position
{ 137, 0 }, { 154, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 137, 12 },
{ 154, 12 }, { 172, 12 }, { 189, 12 }, { 206, 12 }, { 137, 25 }, { 154, 25 },
{ 172, 25 }, { 189, 25 }, { 206, 25 }, { 137, 38 }, { 154, 38 }, { 172, 38 },
{ 189, 38 }, { 206, 38 }, { 154, 51 }, { 172, 51 }, { 189, 51 }, { 206, 51 },
{ 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 86, 12 },
{ 68, 12 }, { 51, 12 }, { 34, 12 }, { 17, 12 }, { 86, 25 }, { 68, 25 },
{ 51, 25 }, { 34, 25 }, { 17, 25 }, { 86, 38 }, { 68, 38 }, { 51, 38 },
{ 34, 38 }, { 17, 38 }, { 68, 51 }, { 51, 51 }, { 34, 51 }, { 17, 51 }
}, {
// LED index to flag
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 1, 1, 1, 1,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4,
4, 4, 1, 1, 1, 1
} };
#endif

View File

@ -18,96 +18,385 @@
"layouts": {
"LAYOUT_ergodox": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5},
{"matrix": [1, 0], "x": 1.5, "y": 0.375},
{"matrix": [2, 0], "x": 2.5, "y": 0.125},
{"matrix": [3, 0], "x": 3.5, "y": 0},
{"matrix": [4, 0], "x": 4.5, "y": 0.125},
{"matrix": [5, 0], "x": 5.5, "y": 0.25},
{"matrix": [6, 0], "x": 6.5, "y": 0.25},
{"x":6, "y":5}, {"x":7, "y":5},
{"x":7, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7},
{"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1.375},
{"matrix": [2, 1], "x": 2.5, "y": 1.125},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [4, 1], "x": 4.5, "y": 1.125},
{"matrix": [5, 1], "x": 5.5, "y": 1.25},
{"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5},
{"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5},
{"matrix": [1, 2], "x": 1.5, "y": 2.375},
{"matrix": [2, 2], "x": 2.5, "y": 2.125},
{"matrix": [3, 2], "x": 3.5, "y": 2},
{"matrix": [4, 2], "x": 4.5, "y": 2.125},
{"matrix": [5, 2], "x": 5.5, "y": 2.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5},
{"matrix": [1, 3], "x": 1.5, "y": 3.375},
{"matrix": [2, 3], "x": 2.5, "y": 3.125},
{"matrix": [3, 3], "x": 3.5, "y": 3},
{"matrix": [4, 3], "x": 4.5, "y": 3.125},
{"matrix": [5, 3], "x": 5.5, "y": 3.25},
{"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5},
{"matrix": [0, 4], "x": 0.5, "y": 4.375},
{"matrix": [1, 4], "x": 1.5, "y": 4.375},
{"matrix": [2, 4], "x": 2.5, "y": 4.125},
{"matrix": [3, 4], "x": 3.5, "y": 4},
{"matrix": [4, 4], "x": 4.5, "y": 4.125},
{"x":9, "y":5}, {"x":10, "y":5},
{"x":9, "y":6},
{"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
{"matrix": [5, 5], "x": 6, "y": 5},
{"matrix": [6, 5], "x": 7, "y": 5},
{"matrix": [4, 5], "x": 7, "y": 6},
{"matrix": [3, 5], "x": 5, "y": 6, "h": 2},
{"matrix": [2, 5], "x": 6, "y": 6, "h": 2},
{"matrix": [1, 5], "x": 7, "y": 7},
{"matrix": [7, 0], "x": 9.5, "y": 0.25},
{"matrix": [8, 0], "x": 10.5, "y": 0.25},
{"matrix": [9, 0], "x": 11.5, "y": 0.125},
{"matrix": [10, 0], "x": 12.5, "y": 0},
{"matrix": [11, 0], "x": 13.5, "y": 0.125},
{"matrix": [12, 0], "x": 14.5, "y": 0.375},
{"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5},
{"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5},
{"matrix": [8, 1], "x": 10.5, "y": 1.25},
{"matrix": [9, 1], "x": 11.5, "y": 1.125},
{"matrix": [10, 1], "x": 12.5, "y": 1},
{"matrix": [11, 1], "x": 13.5, "y": 1.125},
{"matrix": [12, 1], "x": 14.5, "y": 1.375},
{"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5},
{"matrix": [8, 2], "x": 10.5, "y": 2.25},
{"matrix": [9, 2], "x": 11.5, "y": 2.125},
{"matrix": [10, 2], "x": 12.5, "y": 2},
{"matrix": [11, 2], "x": 13.5, "y": 2.125},
{"matrix": [12, 2], "x": 14.5, "y": 2.375},
{"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5},
{"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5},
{"matrix": [8, 3], "x": 10.5, "y": 3.25},
{"matrix": [9, 3], "x": 11.5, "y": 3.125},
{"matrix": [10, 3], "x": 12.5, "y": 3},
{"matrix": [11, 3], "x": 13.5, "y": 3.125},
{"matrix": [12, 3], "x": 14.5, "y": 3.375},
{"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5},
{"matrix": [9, 4], "x": 11.5, "y": 4.125},
{"matrix": [10, 4], "x": 12.5, "y": 4},
{"matrix": [11, 4], "x": 13.5, "y": 4.125},
{"matrix": [12, 4], "x": 14.5, "y": 4.375},
{"matrix": [13, 4], "x": 15.5, "y": 4.375},
{"matrix": [7, 5], "x": 9, "y": 5},
{"matrix": [8, 5], "x": 10, "y": 5},
{"matrix": [9, 5], "x": 9, "y": 6},
{"matrix": [12, 5], "x": 9, "y": 7},
{"matrix": [11, 5], "x": 10, "y": 6, "h": 2},
{"matrix": [10, 5], "x": 11, "y": 6, "h": 2}
]
},
"LAYOUT_ergodox_pretty": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5},
{"matrix": [1, 0], "x": 1.5, "y": 0.375},
{"matrix": [2, 0], "x": 2.5, "y": 0.125},
{"matrix": [3, 0], "x": 3.5, "y": 0},
{"matrix": [4, 0], "x": 4.5, "y": 0.125},
{"matrix": [5, 0], "x": 5.5, "y": 0.25},
{"matrix": [6, 0], "x": 6.5, "y": 0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"matrix": [7, 0], "x": 9.5, "y": 0.25},
{"matrix": [8, 0], "x": 10.5, "y": 0.25},
{"matrix": [9, 0], "x": 11.5, "y": 0.125},
{"matrix": [10, 0], "x": 12.5, "y": 0},
{"matrix": [11, 0], "x": 13.5, "y": 0.125},
{"matrix": [12, 0], "x": 14.5, "y": 0.375},
{"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1.375},
{"matrix": [2, 1], "x": 2.5, "y": 1.125},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [4, 1], "x": 4.5, "y": 1.125},
{"matrix": [5, 1], "x": 5.5, "y": 1.25},
{"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5},
{"matrix": [8, 1], "x": 10.5, "y": 1.25},
{"matrix": [9, 1], "x": 11.5, "y": 1.125},
{"matrix": [10, 1], "x": 12.5, "y": 1},
{"matrix": [11, 1], "x": 13.5, "y": 1.125},
{"matrix": [12, 1], "x": 14.5, "y": 1.375},
{"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5},
{"matrix": [1, 2], "x": 1.5, "y": 2.375},
{"matrix": [2, 2], "x": 2.5, "y": 2.125},
{"matrix": [3, 2], "x": 3.5, "y": 2},
{"matrix": [4, 2], "x": 4.5, "y": 2.125},
{"matrix": [5, 2], "x": 5.5, "y": 2.25},
{"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5},
{"x":7, "y":6}, {"x":9, "y":6},
{"x":5, "y":6, "h":2}, {"x":6, "y":6, "h":2}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":6, "h":2}, {"x":11, "y":6, "h":2}
{"matrix": [8, 2], "x": 10.5, "y": 2.25},
{"matrix": [9, 2], "x": 11.5, "y": 2.125},
{"matrix": [10, 2], "x": 12.5, "y": 2},
{"matrix": [11, 2], "x": 13.5, "y": 2.125},
{"matrix": [12, 2], "x": 14.5, "y": 2.375},
{"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5},
{"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5},
{"matrix": [1, 3], "x": 1.5, "y": 3.375},
{"matrix": [2, 3], "x": 2.5, "y": 3.125},
{"matrix": [3, 3], "x": 3.5, "y": 3},
{"matrix": [4, 3], "x": 4.5, "y": 3.125},
{"matrix": [5, 3], "x": 5.5, "y": 3.25},
{"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5},
{"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5},
{"matrix": [8, 3], "x": 10.5, "y": 3.25},
{"matrix": [9, 3], "x": 11.5, "y": 3.125},
{"matrix": [10, 3], "x": 12.5, "y": 3},
{"matrix": [11, 3], "x": 13.5, "y": 3.125},
{"matrix": [12, 3], "x": 14.5, "y": 3.375},
{"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5},
{"matrix": [0, 4], "x": 0.5, "y": 4.375},
{"matrix": [1, 4], "x": 1.5, "y": 4.375},
{"matrix": [2, 4], "x": 2.5, "y": 4.125},
{"matrix": [3, 4], "x": 3.5, "y": 4},
{"matrix": [4, 4], "x": 4.5, "y": 4.125},
{"matrix": [9, 4], "x": 11.5, "y": 4.125},
{"matrix": [10, 4], "x": 12.5, "y": 4},
{"matrix": [11, 4], "x": 13.5, "y": 4.125},
{"matrix": [12, 4], "x": 14.5, "y": 4.375},
{"matrix": [13, 4], "x": 15.5, "y": 4.375},
{"matrix": [5, 5], "x": 6, "y": 5},
{"matrix": [6, 5], "x": 7, "y": 5},
{"matrix": [7, 5], "x": 9, "y": 5},
{"matrix": [8, 5], "x": 10, "y": 5},
{"matrix": [4, 5], "x": 7, "y": 6},
{"matrix": [9, 5], "x": 9, "y": 6},
{"matrix": [3, 5], "x": 5, "y": 6, "h": 2},
{"matrix": [2, 5], "x": 6, "y": 6, "h": 2},
{"matrix": [1, 5], "x": 7, "y": 7},
{"matrix": [12, 5], "x": 9, "y": 7},
{"matrix": [11, 5], "x": 10, "y": 6, "h": 2},
{"matrix": [10, 5], "x": 11, "y": 6, "h": 2}
]
},
"LAYOUT_ergodox_80": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5},
{"matrix": [1, 0], "x": 1.5, "y": 0.375},
{"matrix": [2, 0], "x": 2.5, "y": 0.125},
{"matrix": [3, 0], "x": 3.5, "y": 0},
{"matrix": [4, 0], "x": 4.5, "y": 0.125},
{"matrix": [5, 0], "x": 5.5, "y": 0.25},
{"matrix": [6, 0], "x": 6.5, "y": 0.25},
{"x":6, "y":5}, {"x":7, "y":5},
{"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6},
{"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7},
{"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1.375},
{"matrix": [2, 1], "x": 2.5, "y": 1.125},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [4, 1], "x": 4.5, "y": 1.125},
{"matrix": [5, 1], "x": 5.5, "y": 1.25},
{"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5},
{"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5},
{"matrix": [1, 2], "x": 1.5, "y": 2.375},
{"matrix": [2, 2], "x": 2.5, "y": 2.125},
{"matrix": [3, 2], "x": 3.5, "y": 2},
{"matrix": [4, 2], "x": 4.5, "y": 2.125},
{"matrix": [5, 2], "x": 5.5, "y": 2.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5},
{"matrix": [1, 3], "x": 1.5, "y": 3.375},
{"matrix": [2, 3], "x": 2.5, "y": 3.125},
{"matrix": [3, 3], "x": 3.5, "y": 3},
{"matrix": [4, 3], "x": 4.5, "y": 3.125},
{"matrix": [5, 3], "x": 5.5, "y": 3.25},
{"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5},
{"matrix": [0, 4], "x": 0.5, "y": 4.375},
{"matrix": [1, 4], "x": 1.5, "y": 4.375},
{"matrix": [2, 4], "x": 2.5, "y": 4.125},
{"matrix": [3, 4], "x": 3.5, "y": 4},
{"matrix": [4, 4], "x": 4.5, "y": 4.125},
{"x":9, "y":5}, {"x":10, "y":5},
{"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6},
{"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}
{"matrix": [5, 5], "x": 6, "y": 5},
{"matrix": [6, 5], "x": 7, "y": 5},
{"matrix": [5, 4], "x": 5, "y": 6},
{"matrix": [6, 4], "x": 6, "y": 6},
{"matrix": [4, 5], "x": 7, "y": 6},
{"matrix": [3, 5], "x": 5, "y": 7},
{"matrix": [2, 5], "x": 6, "y": 7},
{"matrix": [1, 5], "x": 7, "y": 7},
{"matrix": [7, 0], "x": 9.5, "y": 0.25},
{"matrix": [8, 0], "x": 10.5, "y": 0.25},
{"matrix": [9, 0], "x": 11.5, "y": 0.125},
{"matrix": [10, 0], "x": 12.5, "y": 0},
{"matrix": [11, 0], "x": 13.5, "y": 0.125},
{"matrix": [12, 0], "x": 14.5, "y": 0.375},
{"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5},
{"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5},
{"matrix": [8, 1], "x": 10.5, "y": 1.25},
{"matrix": [9, 1], "x": 11.5, "y": 1.125},
{"matrix": [10, 1], "x": 12.5, "y": 1},
{"matrix": [11, 1], "x": 13.5, "y": 1.125},
{"matrix": [12, 1], "x": 14.5, "y": 1.375},
{"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5},
{"matrix": [8, 2], "x": 10.5, "y": 2.25},
{"matrix": [9, 2], "x": 11.5, "y": 2.125},
{"matrix": [10, 2], "x": 12.5, "y": 2},
{"matrix": [11, 2], "x": 13.5, "y": 2.125},
{"matrix": [12, 2], "x": 14.5, "y": 2.375},
{"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5},
{"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5},
{"matrix": [8, 3], "x": 10.5, "y": 3.25},
{"matrix": [9, 3], "x": 11.5, "y": 3.125},
{"matrix": [10, 3], "x": 12.5, "y": 3},
{"matrix": [11, 3], "x": 13.5, "y": 3.125},
{"matrix": [12, 3], "x": 14.5, "y": 3.375},
{"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5},
{"matrix": [9, 4], "x": 11.5, "y": 4.125},
{"matrix": [10, 4], "x": 12.5, "y": 4},
{"matrix": [11, 4], "x": 13.5, "y": 4.125},
{"matrix": [12, 4], "x": 14.5, "y": 4.375},
{"matrix": [13, 4], "x": 15.5, "y": 4.375},
{"matrix": [7, 5], "x": 9, "y": 5},
{"matrix": [8, 5], "x": 10, "y": 5},
{"matrix": [9, 5], "x": 9, "y": 6},
{"matrix": [7, 4], "x": 10, "y": 6},
{"matrix": [8, 4], "x": 11, "y": 6},
{"matrix": [12, 5], "x": 9, "y": 7},
{"matrix": [11, 5], "x": 10, "y": 7},
{"matrix": [10, 5], "x": 11, "y": 7}
]
},
"LAYOUT_ergodox_pretty_80": {
"layout": [
{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":6.5, "y":0.25},
{"x":9.5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.375, "w":1.5},
{"matrix": [0, 0], "x": 0, "y": 0.375, "w": 1.5},
{"matrix": [1, 0], "x": 1.5, "y": 0.375},
{"matrix": [2, 0], "x": 2.5, "y": 0.125},
{"matrix": [3, 0], "x": 3.5, "y": 0},
{"matrix": [4, 0], "x": 4.5, "y": 0.125},
{"matrix": [5, 0], "x": 5.5, "y": 0.25},
{"matrix": [6, 0], "x": 6.5, "y": 0.25},
{"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":6.5, "y":1.25, "h":1.5},
{"x":9.5, "y":1.25, "h":1.5}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.375, "w":1.5},
{"matrix": [7, 0], "x": 9.5, "y": 0.25},
{"matrix": [8, 0], "x": 10.5, "y": 0.25},
{"matrix": [9, 0], "x": 11.5, "y": 0.125},
{"matrix": [10, 0], "x": 12.5, "y": 0},
{"matrix": [11, 0], "x": 13.5, "y": 0.125},
{"matrix": [12, 0], "x": 14.5, "y": 0.375},
{"matrix": [13, 0], "x": 15.5, "y": 0.375, "w": 1.5},
{"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25},
{"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.375, "w":1.5},
{"matrix": [0, 1], "x": 0, "y": 1.375, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1.375},
{"matrix": [2, 1], "x": 2.5, "y": 1.125},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [4, 1], "x": 4.5, "y": 1.125},
{"matrix": [5, 1], "x": 5.5, "y": 1.25},
{"matrix": [6, 1], "x": 6.5, "y": 1.25, "h": 1.5},
{"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":6.5, "y":2.75, "h":1.5},
{"x":9.5, "y":2.75, "h":1.5}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.375, "w":1.5},
{"matrix": [7, 1], "x": 9.5, "y": 1.25, "h": 1.5},
{"matrix": [8, 1], "x": 10.5, "y": 1.25},
{"matrix": [9, 1], "x": 11.5, "y": 1.125},
{"matrix": [10, 1], "x": 12.5, "y": 1},
{"matrix": [11, 1], "x": 13.5, "y": 1.125},
{"matrix": [12, 1], "x": 14.5, "y": 1.375},
{"matrix": [13, 1], "x": 15.5, "y": 1.375, "w": 1.5},
{"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125},
{"x":11.5, "y":4.125}, {"x":12.5, "y":4}, {"x":13.5, "y":4.125}, {"x":14.5, "y":4.375}, {"x":15.5, "y":4.375},
{"matrix": [0, 2], "x": 0, "y": 2.375, "w": 1.5},
{"matrix": [1, 2], "x": 1.5, "y": 2.375},
{"matrix": [2, 2], "x": 2.5, "y": 2.125},
{"matrix": [3, 2], "x": 3.5, "y": 2},
{"matrix": [4, 2], "x": 4.5, "y": 2.125},
{"matrix": [5, 2], "x": 5.5, "y": 2.25},
{"x":6, "y":5}, {"x":7, "y":5}, {"x":9, "y":5}, {"x":10, "y":5},
{"x":5, "y":6}, {"x":6, "y":6}, {"x":7, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6},
{"x":5, "y":7}, {"x":6, "y":7}, {"x":7, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}
{"matrix": [8, 2], "x": 10.5, "y": 2.25},
{"matrix": [9, 2], "x": 11.5, "y": 2.125},
{"matrix": [10, 2], "x": 12.5, "y": 2},
{"matrix": [11, 2], "x": 13.5, "y": 2.125},
{"matrix": [12, 2], "x": 14.5, "y": 2.375},
{"matrix": [13, 2], "x": 15.5, "y": 2.375, "w": 1.5},
{"matrix": [0, 3], "x": 0, "y": 3.375, "w": 1.5},
{"matrix": [1, 3], "x": 1.5, "y": 3.375},
{"matrix": [2, 3], "x": 2.5, "y": 3.125},
{"matrix": [3, 3], "x": 3.5, "y": 3},
{"matrix": [4, 3], "x": 4.5, "y": 3.125},
{"matrix": [5, 3], "x": 5.5, "y": 3.25},
{"matrix": [6, 3], "x": 6.5, "y": 2.75, "h": 1.5},
{"matrix": [7, 3], "x": 9.5, "y": 2.75, "h": 1.5},
{"matrix": [8, 3], "x": 10.5, "y": 3.25},
{"matrix": [9, 3], "x": 11.5, "y": 3.125},
{"matrix": [10, 3], "x": 12.5, "y": 3},
{"matrix": [11, 3], "x": 13.5, "y": 3.125},
{"matrix": [12, 3], "x": 14.5, "y": 3.375},
{"matrix": [13, 3], "x": 15.5, "y": 3.375, "w": 1.5},
{"matrix": [0, 4], "x": 0.5, "y": 4.375},
{"matrix": [1, 4], "x": 1.5, "y": 4.375},
{"matrix": [2, 4], "x": 2.5, "y": 4.125},
{"matrix": [3, 4], "x": 3.5, "y": 4},
{"matrix": [4, 4], "x": 4.5, "y": 4.125},
{"matrix": [9, 4], "x": 11.5, "y": 4.125},
{"matrix": [10, 4], "x": 12.5, "y": 4},
{"matrix": [11, 4], "x": 13.5, "y": 4.125},
{"matrix": [12, 4], "x": 14.5, "y": 4.375},
{"matrix": [13, 4], "x": 15.5, "y": 4.375},
{"matrix": [5, 5], "x": 6, "y": 5},
{"matrix": [6, 5], "x": 7, "y": 5},
{"matrix": [7, 5], "x": 9, "y": 5},
{"matrix": [8, 5], "x": 10, "y": 5},
{"matrix": [5, 4], "x": 5, "y": 6},
{"matrix": [6, 4], "x": 6, "y": 6},
{"matrix": [4, 5], "x": 7, "y": 6},
{"matrix": [9, 5], "x": 9, "y": 6},
{"matrix": [7, 4], "x": 10, "y": 6},
{"matrix": [8, 4], "x": 11, "y": 6},
{"matrix": [3, 5], "x": 5, "y": 7},
{"matrix": [2, 5], "x": 6, "y": 7},
{"matrix": [1, 5], "x": 7, "y": 7},
{"matrix": [12, 5], "x": 9, "y": 7},
{"matrix": [11, 5], "x": 10, "y": 7},
{"matrix": [10, 5], "x": 11, "y": 7}
]
}
}

View File

@ -1,3 +1,4 @@
#include "keymap.h"
#include "extra_mappings.h"
#define LAYER_INCLUDE_FILE "definitions/layers.inc"

View File

@ -11,22 +11,18 @@ void beta_leader_end(void) {
}
bool beta_leader_check(void) {
BETA_SEQ_1_SHORT(KC_E) {
SEND_STRING(SECRET_GMAIL);
return false;
}
BETA_SEQ_2_LONG(KC_E, KC_M) {
BETA_SEQ_2_SHORT(KC_E, KC_M) {
SEND_STRING(SECRET_EMAIL);
return false;
}
BETA_SEQ_2_LONG(KC_G, KC_M) {
BETA_SEQ_2_SHORT(KC_G, KC_M) {
SEND_STRING(SECRET_GMAIL);
return false;
}
BETA_SEQ_2_LONG(KC_L, KC_I) {
BETA_SEQ_2_SHORT(KC_L, KC_I) {
SEND_STRING(SECRET_SCHOOL_EMAIL);
return false;
}
@ -36,29 +32,25 @@ bool beta_leader_check(void) {
return false;
}
BETA_SEQ_2_LONG(KC_K, KC_B) {
layer_move(LAYER_KEYBOARD);
return false;
}
/*
BETA_SEQ_1_SHORT(KC_F) {
// doesn't work, no deactivate
// also, this is slow since laeder key uses dumb logic
set_oneshot_layer(LAYER_NUMBERS, ONESHOT_START);
set_oneshot_layer(LAYER_FKEYS, ONESHOT_START);
return false;
}
*/
BETA_SEQ_2_LONG(KC_F, KC_1) { tap_code(KC_F1); return false; }
BETA_SEQ_2_LONG(KC_F, KC_2) { tap_code(KC_F2); return false; }
BETA_SEQ_2_LONG(KC_F, KC_3) { tap_code(KC_F3); return false; }
BETA_SEQ_2_LONG(KC_F, KC_4) { tap_code(KC_F4); return false; }
BETA_SEQ_2_LONG(KC_F, KC_5) { tap_code(KC_F5); return false; }
BETA_SEQ_2_LONG(KC_F, KC_Q) { tap_code(KC_F6); return false; }
BETA_SEQ_2_LONG(KC_F, KC_W) { tap_code(KC_F7); return false; }
BETA_SEQ_2_LONG(KC_F, KC_E) { tap_code(KC_F8); return false; }
BETA_SEQ_2_LONG(KC_F, KC_R) { tap_code(KC_F9); return false; }
BETA_SEQ_2_LONG(KC_F, KC_T) { tap_code(KC_F10); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_1) { tap_code(KC_F1); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_2) { tap_code(KC_F2); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_3) { tap_code(KC_F3); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_4) { tap_code(KC_F4); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_5) { tap_code(KC_F5); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_Q) { tap_code(KC_F6); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_W) { tap_code(KC_F7); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_E) { tap_code(KC_F8); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_R) { tap_code(KC_F9); return false; }
BETA_SEQ_2_SHORT(KC_F, KC_T) { tap_code(KC_F10); return false; }
return true;
}

View File

@ -1,23 +1,3 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
Copyright 2015 ZSA Technology Labs Inc (@zsa)
Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/*

View File

@ -0,0 +1,187 @@
#include "betalupi_ergodox.h"
#include "features/beta_rawhid.h"
// Handle a keypress.
// Returns true if we should keep looking for keypresses,
// returns false if we should stop.
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LED_LEVEL:
if (record->event.pressed) {
keyboard_config.led_level++;
if (keyboard_config.led_level > 4) {
keyboard_config.led_level = 0;
}
ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4 );
eeconfig_update_kb(keyboard_config.raw);
layer_state_set_kb(layer_state);
}
break;
#ifdef RGB_MATRIX_ENABLE
case TOGGLE_LAYER_COLOR:
if (record->event.pressed) {
keyboard_config.disable_layer_led ^= 1;
if (keyboard_config.disable_layer_led) {
rgb_matrix_set_color_all(0, 0, 0);
}
eeconfig_update_kb(keyboard_config.raw);
}
break;
case RGB_TOG:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
rgb_matrix_set_flags(LED_FLAG_NONE);
keyboard_config.rgb_matrix_enable = false;
rgb_matrix_set_color_all(0, 0, 0);
}
break;
default: {
rgb_matrix_set_flags(LED_FLAG_ALL);
keyboard_config.rgb_matrix_enable = true;
}
break;
}
eeconfig_update_kb(keyboard_config.raw);
}
hid_send_state();
return false;
case RGB_MOD:
// Tell the host whenever we change animation mode.
hid_send_state();
return true;
#endif
// Custom RGBLIGHT macros
#ifdef RGBLIGHT_ENABLE
#ifdef RGBLIGHT_NO_EEPROM
case LIGHT_TOG:
if (record->event.pressed) {
rgblight_toggle_noeeprom();
}
break;
case LIGHT_MOD:
if (record->event.pressed) {
rgblight_step_noeeprom();
}
break;
case LIGHT_HUI:
if (record->event.pressed) {
rgblight_increase_hue_noeeprom();
}
break;
case LIGHT_HUD:
if (record->event.pressed) {
rgblight_decrease_hue_noeeprom();
}
break;
case LIGHT_SAI:
if (record->event.pressed) {
rgblight_increase_sat_noeeprom();
}
break;
case LIGHT_SAD:
if (record->event.pressed) {
rgblight_decrease_sat_noeeprom();
}
break;
case LIGHT_VAI:
if (record->event.pressed) {
rgblight_increase_val_noeeprom();
}
break;
case LIGHT_VAD:
if (record->event.pressed) {
rgblight_decrease_val_noeeprom();
}
break;
case LIGHT_SPI:
if (record->event.pressed) {
rgblight_increase_speed_noeeprom();
}
break;
case LIGHT_SPD:
if (record->event.pressed) {
rgblight_decrease_speed_noeeprom();
}
break;
#else
case LIGHT_TOG:
if (record->event.pressed) {
rgblight_toggle();
}
break;
case LIGHT_MOD:
if (record->event.pressed) {
rgblight_step();
}
break;
case LIGHT_HUI:
if (record->event.pressed) {
rgblight_increase_hue();
}
break;
case LIGHT_HUD:
if (record->event.pressed) {
rgblight_decrease_hue();
}
break;
case LIGHT_SAI:
if (record->event.pressed) {
rgblight_increase_sat();
}
break;
case LIGHT_SAD:
if (record->event.pressed) {
rgblight_decrease_sat();
}
break;
case LIGHT_VAI:
if (record->event.pressed) {
rgblight_increase_val();
}
break;
case LIGHT_VAD:
if (record->event.pressed) {
rgblight_decrease_val();
}
break;
case LIGHT_SPI:
if (record->event.pressed) {
rgblight_increase_speed();
}
break;
case LIGHT_SPD:
if (record->event.pressed) {
rgblight_decrease_speed();
}
break;
#endif
#endif
}
return process_record_user(keycode, record);
}

View File

@ -1,31 +0,0 @@
# Betalupi Ergodox
This is a modified version of the [ZSA ErgoDox firmware](https://git.betalupi.com/mirrors-QMK/zsa_firmware), based on the `ergodox_ex/glow` keyboard.
# Notes
This keyboard adds a few extra options in `config.h`:
```cpp
#define RGBLIGHT_OFF_AT_START
#define RGBLIGHT_NO_EEPROM
#ifdef ENABLE_HID_SPELLCHECK
#ifdef ENABLE_AUTOCORRECT
```
Also, there are a few custom kecodes defined in `betalupi_keyboard.c`. This allows us to control the rgb matrix and rgb lighting seperately---my keyboard has both.
```
// Custom RGBLIGHT macros
LIGHT_TOG, // Toggle backlight
LIGHT_HUI, // Increase backlight hue
LIGHT_HUD, // Decrease backlight hue
LIGHT_SAI, // Increase backlight sat
LIGHT_SAD, // Decrease backlight sat
LIGHT_VAI, // Increase backlight val
LIGHT_VAD, // Decrease backlight val
LIGHT_SPI, // Increase backlight speed
LIGHT_SPD, // Decrease backlight speed
LIGHT_MOD, // Change backlight animation mode
```

View File

@ -38,13 +38,15 @@ BACKLIGHT_SUPPORTED = no
DEBOUNCE_TYPE = sym_eager_pr
SRC += \
matrix.c \
led_i2c.c \
extra_mappings.c \
process_record.c \
hardware/matrix.c \
hardware/led_i2c.c \
hardware/maps.c \
features/beta_rawhid.c \
features/hid_spellcheck.c \
features/autocorrect/autocorrect.c \
features/leader/leader.c \
extra_mappings.c
features/leader/leader.c
QUANTUM_LIB_SRC += i2c_master.c