[Keymap] Drashna's Defaults cleanup (#13722)

This commit is contained in:
Drashna Jaelre 2021-07-26 17:59:49 -07:00 committed by GitHub
parent 368efb5d2b
commit eb46c954dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
50 changed files with 986 additions and 1389 deletions

View file

@ -85,15 +85,15 @@ int16_t axisCoordinate(uint8_t pin, uint16_t origin) {
int8_t axisToMouseComponent(uint8_t pin, int16_t origin, uint8_t maxSpeed, int8_t polarity) { int8_t axisToMouseComponent(uint8_t pin, int16_t origin, uint8_t maxSpeed, int8_t polarity) {
int coordinate = axisCoordinate(pin, origin); int coordinate = axisCoordinate(pin, origin);
if (coordinate == 0) { if (coordinate != 0) {
return 0;
} else {
float percent = (float)coordinate / 100; float percent = (float)coordinate / 100;
if (keyboard_report->mods & MOD_BIT(KC_LSFT)) { if (get_mods() & MOD_BIT(KC_LSFT)) {
return percent * precisionSpeed * polarity * (abs(coordinate) / speedRegulator); return percent * precisionSpeed * polarity * (abs(coordinate) / speedRegulator);
} else { } else {
return percent * maxCursorSpeed * polarity * (abs(coordinate) / speedRegulator); return percent * maxCursorSpeed * polarity * (abs(coordinate) / speedRegulator);
} }
} else {
return 0;
} }
} }

View file

@ -39,54 +39,29 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_base_wrapper( [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_LOWER] = LAYOUT_wrapper( [_LOWER] = LAYOUT_wrapper(
KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC, KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC,
KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE, KC_DEL, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE,

View file

@ -37,56 +37,32 @@
KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \ KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \
) )
#define LAYOUT_gergo_base_wrapper(...) LAYOUT_gergo_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_gergo_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_gergo_base_wrapper( [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_gergo_base_wrapper(
[_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_gergo_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_gergo_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_gergo_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_gergo_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_gergo_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_gergo_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_LOWER] = LAYOUT_gergo_wrapper( [_LOWER] = LAYOUT_gergo_wrapper(
KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
_______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_PIPE, _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_PIPE,

View file

@ -32,58 +32,33 @@
KC_SPC, OS_LGUI, KC_ENT, \ KC_SPC, OS_LGUI, KC_ENT, \
BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \ BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \
) )
#define LAYOUT_4x6_right_base_wrapper(...) LAYOUT_4x6_right_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_4x6_right_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_4x6_right_base_wrapper( [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_4x6_right_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_4x6_right_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_4x6_right_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_4x6_right_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_4x6_right_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_4x6_right_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_4x6_right_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_MOUSE] = LAYOUT_4x6_right( [_MOUSE] = LAYOUT_4x6_right(
_______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, DPI_CONFIG, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, DPI_CONFIG, _______,
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______, _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______,
@ -182,26 +157,27 @@ void matrix_scan_keymap(void) {
bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
switch (keycode) { switch (keycode) {
case TT(_MOUSE): { case TT(_MOUSE):
if (record->event.pressed) { {
mouse_keycode_tracker++; if (record->event.pressed) {
} else { mouse_keycode_tracker++;
# if TAPPING_TOGGLE != 0
if (record->tap.count == TAPPING_TOGGLE) {
tap_toggling ^= 1;
# if TAPPING_TOGGLE == 1
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1;
# else
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count;
# endif
} else { } else {
mouse_keycode_tracker--; # if TAPPING_TOGGLE != 0
} if (record->tap.count == TAPPING_TOGGLE) {
tap_toggling ^= 1;
# if TAPPING_TOGGLE == 1
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1;
# else
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count;
# endif
} else {
mouse_keycode_tracker--;
}
# endif # endif
}
mouse_timer = timer_read();
break;
} }
mouse_timer = timer_read();
break;
}
case MO(_MOUSE): case MO(_MOUSE):
case DPI_CONFIG: case DPI_CONFIG:
case KC_MS_UP ... KC_MS_WH_RIGHT: case KC_MS_UP ... KC_MS_WH_RIGHT:
@ -213,7 +189,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
layer_off(_MOUSE); layer_off(_MOUSE);
} }
mouse_keycode_tracker = 0; mouse_keycode_tracker = 0;
mouse_debounce_timer = timer_read(); mouse_debounce_timer = timer_read();
break; break;
} }
return true; return true;
@ -238,6 +214,4 @@ void matrix_init_keymap(void) {
#endif #endif
} }
void keyboard_post_init_keymap(void) { void keyboard_post_init_keymap(void) { matrix_init_keymap(); }
matrix_init_keymap();
}

View file

@ -32,4 +32,8 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
{{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}}, {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
{{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}}; {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}};
# ifdef ENCODER_MAP_ENABLE
const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
# endif
#endif #endif

View file

@ -30,52 +30,56 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 6 #define MATRIX_COLS 6
// wiring of each half // wiring of each half
#define MATRIX_COL_PINS { C0, C1, C2, C3, C4, C5 } #define MATRIX_COL_PINS \
#define MATRIX_ROW_PINS { F7, F6, F5, F4, F3, F2 } { C0, C1, C2, C3, C4, C5 }
#define MATRIX_ROW_PINS \
{ F7, F6, F5, F4, F3, F2 }
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
// WS2812 RGB LED strip input and number of LEDs // WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN E7 #define RGB_DI_PIN E7
#define RGBLED_NUM 58 #define RGBLED_NUM 20
#define RGBLIGHT_SPLIT #define RGBLIGHT_SPLIT
#define RGBLED_SPLIT { 30, 28 } #define RGBLED_SPLIT \
{ 10, 10 }
#define RGBLIGHT_SLEEP #define RGBLIGHT_SLEEP
// #define RGBW // #define RGBW
#define RGBLIGHT_LIMIT_VAL 50 #define RGBLIGHT_LIMIT_VAL 100
/* define if matrix has ghost */ /* define if matrix has ghost */
//#define MATRIX_HAS_GHOST //#define MATRIX_HAS_GHOST
/* number of backlight levels */ /* number of backlight levels */
// #define BACKLIGHT_LEVELS 3 // #define BACKLIGHT_LEVELS 3
#define DEBUG_LED_PIN D6 #define DEBUG_LED_PIN D6
#define ROTATIONAL_TRANSFORM_ANGLE -25 #define ROTATIONAL_TRANSFORM_ANGLE -25
/* Bootmagic Lite key configuration */ /* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0 #define BOOTMAGIC_LITE_COLUMN 0
#define BOOTMAGIC_LITE_ROW_RIGHT 6 #define BOOTMAGIC_LITE_ROW_RIGHT 6
#define BOOTMAGIC_LITE_COLUMN_RIGHT 5 #define BOOTMAGIC_LITE_COLUMN_RIGHT 5
#define AUDIO_PIN C6 #define AUDIO_PIN C6
#define AUDIO_PIN_ALT B7 #define AUDIO_PIN_ALT B7
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 #define DYNAMIC_KEYMAP_LAYER_COUNT 16
#define DYNAMIC_KEYMAP_LAYER_COUNT 16
#define LAYER_STATE_16BIT #define LAYER_STATE_16BIT
/* serial.c configuration for split keyboard */ /* serial.c configuration for split keyboard */
#define SOFT_SERIAL_PIN D2 #define SOFT_SERIAL_PIN D2
#define EE_HANDS #define EE_HANDS
#define ENCODERS_PAD_A { D5 } #define ENCODERS_PAD_A \
#define ENCODERS_PAD_B { D6 } { D5 }
#define ENCODER_RESOLUTION 1 #define ENCODERS_PAD_B \
{ D6 }
#define ENCODER_RESOLUTION 4
/* Set 0 if debouncing isn't needed */ /* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5 #define DEBOUNCE 5
/* disable action features */ /* disable action features */
//#define NO_ACTION_LAYER //#define NO_ACTION_LAYER

View file

@ -28,70 +28,44 @@
SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \ SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \
LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \ LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
OS_LGUI, OS_LALT, OS_RGUI, OS_RALT, \ OS_LALT, OS_LGUI, OS_RGUI, OS_RALT, \
KC_PSCR, KC_GRV, MEH_T(KC_BTN3), \ KC_MUTE, KC_GRV, KC_BTN3, \
KC_SPC, OS_LGUI, KC_ENT, \ KC_SPC, OS_LGUI, KC_ENT, \
BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \ BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \
) )
#define LAYOUT_5x6_right_base_wrapper(...) LAYOUT_5x6_right_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_5x6_right_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_5x6_right_base_wrapper( [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_5x6_right_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_5x6_right_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_5x6_right_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_5x6_right_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_5x6_right_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_5x6_right_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_5x6_right_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_MOUSE] = LAYOUT_5x6_right( [_MOUSE] = LAYOUT_5x6_right(
_______, _______, _______, _______, _______, _______, DPI_CONFIG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DPI_CONFIG, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______, _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, _______,
_______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, KC_BTN3,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______ _______, _______, _______, _______
), ),
@ -146,6 +120,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, KC_NUKE, _______ _______, _______, KC_NUKE, _______
), ),
}; };
#define BASE_ENCODERS { { KC_VOLD, KC_VOLU }, { KC_WH_D, KC_WH_U } }
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_DEFAULT_LAYER_1] = BASE_ENCODERS,
[_DEFAULT_LAYER_2] = BASE_ENCODERS,
[_DEFAULT_LAYER_3] = BASE_ENCODERS,
[_DEFAULT_LAYER_4] = BASE_ENCODERS,
[_GAMEPAD] = { { _______, _______ }, { _______, _______ } },
[_DIABLO] = { { _______, _______ }, { _______, _______ } },
[_MOUSE] = { { _______, _______ }, { KC_WH_D, KC_WH_U } },
[_MEDIA] = { { _______, _______ }, { _______, _______ } },
[_RAISE] = { { _______, _______ }, { KC_PGDN, KC_PGUP } },
[_LOWER] = { { RGB_MOD, RGB_RMOD}, { RGB_HUD, RGB_HUI } },
[_ADJUST] = { { CK_DOWN, CK_UP }, { _______, _______ } },
};
#else
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 5);
} else if (index == 1) {
tap_code_delay(clockwise ? KC_WH_U : KC_WH_D, 5);
}
return false;
}
#endif
// clang-format on // clang-format on
#ifdef POINTING_DEVICE_ENABLE #ifdef POINTING_DEVICE_ENABLE
@ -189,26 +190,27 @@ void matrix_scan_keymap(void) {
bool process_record_keymap(uint16_t keycode, keyrecord_t* record) { bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
switch (keycode) { switch (keycode) {
case TT(_MOUSE): { case TT(_MOUSE):
if (record->event.pressed) { {
mouse_keycode_tracker++; if (record->event.pressed) {
} else { mouse_keycode_tracker++;
# if TAPPING_TOGGLE != 0
if (record->tap.count == TAPPING_TOGGLE) {
tap_toggling ^= 1;
# if TAPPING_TOGGLE == 1
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1;
# else
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count;
# endif
} else { } else {
mouse_keycode_tracker--; # if TAPPING_TOGGLE != 0
} if (record->tap.count == TAPPING_TOGGLE) {
tap_toggling ^= 1;
# if TAPPING_TOGGLE == 1
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1;
# else
if (!tap_toggling) mouse_keycode_tracker -= record->tap.count;
# endif
} else {
mouse_keycode_tracker--;
}
# endif # endif
}
mouse_timer = timer_read();
break;
} }
mouse_timer = timer_read();
break;
}
case MO(_MOUSE): case MO(_MOUSE):
case DPI_CONFIG: case DPI_CONFIG:
case KC_MS_UP ... KC_MS_WH_RIGHT: case KC_MS_UP ... KC_MS_WH_RIGHT:
@ -216,11 +218,12 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
mouse_timer = timer_read(); mouse_timer = timer_read();
break; break;
default: default:
if (IS_NOEVENT(record->event)) break;
if (layer_state_is(_MOUSE) && !mouse_keycode_tracker) { if (layer_state_is(_MOUSE) && !mouse_keycode_tracker) {
layer_off(_MOUSE); layer_off(_MOUSE);
} }
mouse_keycode_tracker = 0; mouse_keycode_tracker = 0;
mouse_debounce_timer = timer_read(); mouse_debounce_timer = timer_read();
break; break;
} }
return true; return true;
@ -228,7 +231,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
layer_state_t layer_state_set_keymap(layer_state_t state) { layer_state_t layer_state_set_keymap(layer_state_t state) {
if (layer_state_cmp(state, _GAMEPAD) || layer_state_cmp(state, _DIABLO)) { if (layer_state_cmp(state, _GAMEPAD) || layer_state_cmp(state, _DIABLO)) {
state |= (1UL << _MOUSE); state |= ((layer_state_t)1 << _MOUSE);
} }
return state; return state;
} }
@ -245,6 +248,4 @@ void matrix_init_keymap(void) {
#endif #endif
} }
void keyboard_post_init_keymap(void) { void keyboard_post_init_keymap(void) { matrix_init_keymap(); }
matrix_init_keymap();
}

View file

@ -0,0 +1,117 @@
#pragma once
#define RGBLIGHT_EFFECT_BREATHE_TABLE
// clang-format off
// Breathing center: 1.85
// Breathing max: 100
const uint8_t PROGMEM rgblight_effect_breathe_table[] = {
#if RGBLIGHT_BREATHE_TABLE_SIZE == 256
0x0D, 0x0E, 0x0E, 0x0F, 0x0F, 0x10, 0x10, 0x11,
0x11, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x16,
0x16, 0x17, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1B,
0x1B, 0x1C, 0x1D, 0x1E, 0x1E, 0x1F, 0x20, 0x20,
0x21, 0x22, 0x22, 0x23, 0x24, 0x25, 0x25, 0x26,
0x27, 0x28, 0x28, 0x29, 0x2A, 0x2B, 0x2B, 0x2C,
0x2D, 0x2E, 0x2E, 0x2F, 0x30, 0x31, 0x31, 0x32,
0x33, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x38,
0x39, 0x3A, 0x3B, 0x3B, 0x3C, 0x3D, 0x3D, 0x3E,
0x3F, 0x40, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44,
0x44, 0x45, 0x46, 0x46, 0x47, 0x48, 0x48, 0x49,
0x4A, 0x4A, 0x4B, 0x4B, 0x4C, 0x4C, 0x4D, 0x4D,
0x4E, 0x4E, 0x4F, 0x4F, 0x50, 0x50, 0x51, 0x51,
0x51, 0x52, 0x52, 0x53, 0x53, 0x53, 0x54, 0x54,
0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56,
0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x54,
0x54, 0x54, 0x53, 0x53, 0x53, 0x52, 0x52, 0x51,
0x51, 0x51, 0x50, 0x50, 0x4F, 0x4F, 0x4E, 0x4E,
0x4D, 0x4D, 0x4C, 0x4C, 0x4B, 0x4B, 0x4A, 0x4A,
0x49, 0x48, 0x48, 0x47, 0x46, 0x46, 0x45, 0x44,
0x44, 0x43, 0x42, 0x42, 0x41, 0x40, 0x40, 0x3F,
0x3E, 0x3D, 0x3D, 0x3C, 0x3B, 0x3B, 0x3A, 0x39,
0x38, 0x38, 0x37, 0x36, 0x35, 0x34, 0x34, 0x33,
0x32, 0x31, 0x31, 0x30, 0x2F, 0x2E, 0x2E, 0x2D,
0x2C, 0x2B, 0x2B, 0x2A, 0x29, 0x28, 0x28, 0x27,
0x26, 0x25, 0x25, 0x24, 0x23, 0x22, 0x22, 0x21,
0x20, 0x20, 0x1F, 0x1E, 0x1E, 0x1D, 0x1C, 0x1B,
0x1B, 0x1A, 0x19, 0x19, 0x18, 0x18, 0x17, 0x16,
0x16, 0x15, 0x14, 0x14, 0x13, 0x13, 0x12, 0x11,
0x11, 0x10, 0x10, 0x0F, 0x0F, 0x0E, 0x0E, 0x0D
#endif
#if RGBLIGHT_BREATHE_TABLE_SIZE == 128
0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x13, 0x14, 0x15,
0x16, 0x18, 0x19, 0x1A,
0x1B, 0x1D, 0x1E, 0x20,
0x21, 0x22, 0x24, 0x25,
0x27, 0x28, 0x2A, 0x2B,
0x2D, 0x2E, 0x30, 0x31,
0x33, 0x34, 0x36, 0x38,
0x39, 0x3B, 0x3C, 0x3D,
0x3F, 0x40, 0x42, 0x43,
0x44, 0x46, 0x47, 0x48,
0x4A, 0x4B, 0x4C, 0x4D,
0x4E, 0x4F, 0x50, 0x51,
0x51, 0x52, 0x53, 0x54,
0x54, 0x55, 0x55, 0x55,
0x56, 0x56, 0x56, 0x56,
0x56, 0x56, 0x56, 0x56,
0x56, 0x55, 0x55, 0x54,
0x54, 0x53, 0x53, 0x52,
0x51, 0x50, 0x4F, 0x4E,
0x4D, 0x4C, 0x4B, 0x4A,
0x49, 0x48, 0x46, 0x45,
0x44, 0x42, 0x41, 0x40,
0x3E, 0x3D, 0x3B, 0x3A,
0x38, 0x37, 0x35, 0x34,
0x32, 0x31, 0x2F, 0x2E,
0x2C, 0x2B, 0x29, 0x28,
0x26, 0x25, 0x23, 0x22,
0x20, 0x1F, 0x1E, 0x1C,
0x1B, 0x19, 0x18, 0x17,
0x16, 0x14, 0x13, 0x12,
0x11, 0x10, 0x0F, 0x0E
#endif
#if RGBLIGHT_BREATHE_TABLE_SIZE == 64
0x0D, 0x0F,
0x11, 0x14,
0x16, 0x19,
0x1B, 0x1E,
0x21, 0x24,
0x27, 0x2A,
0x2D, 0x30,
0x33, 0x36,
0x39, 0x3C,
0x3F, 0x42,
0x44, 0x47,
0x4A, 0x4C,
0x4E, 0x50,
0x51, 0x53,
0x54, 0x55,
0x56, 0x56,
0x56, 0x56,
0x56, 0x55,
0x54, 0x53,
0x51, 0x4F,
0x4D, 0x4B,
0x49, 0x46,
0x44, 0x41,
0x3E, 0x3B,
0x38, 0x35,
0x32, 0x2F,
0x2C, 0x29,
0x26, 0x23,
0x20, 0x1E,
0x1B, 0x18,
0x16, 0x13,
0x11, 0x0F
#endif
};
static const int table_scale = 256 / sizeof(rgblight_effect_breathe_table);

View file

@ -8,4 +8,5 @@ UNICODE_ENABLE = yes
OLED_DRIVER_ENABLE = yes OLED_DRIVER_ENABLE = yes
WPM_ENABLE = yes WPM_ENABLE = yes
ENCODER_ENABLE = yes ENCODER_ENABLE = yes
ENCODER_MAP_ENABLE = yes
# DEBOUNCE_TYPE = sym_eager_pk # DEBOUNCE_TYPE = sym_eager_pk

View file

@ -38,58 +38,32 @@
OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \ KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \
) )
#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
[_QWERTY] = LAYOUT_iris_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
), ),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
[_COLEMAK] = LAYOUT_iris_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_DVORAK] = LAYOUT_iris_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
[_WORKMAN] = LAYOUT_iris_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_iris_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_iris_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_iris_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_iris_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_GAMEPAD] = LAYOUT_wrapper( [_GAMEPAD] = LAYOUT_wrapper(
KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______, KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______,

View file

@ -1,50 +0,0 @@
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
*
* 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
/* Use I2C or Serial, not both */
#include "../drashna/config.h"
#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# define RGBLED_NUM 16 // Number of LEDs
# undef RGBLED_SPLIT
# define RGBLED_SPLIT \
{ 8, 8 }
#endif
#undef PRODUCT
#ifdef KEYBOARD_keebio_iris_rev2
# define PRODUCT Drashna Hacked Iris LP Rev .2(Backlit)
#endif
#undef SHFT_LED1
#define SHFT_LED1 5
#undef SHFT_LED2
#define SHFT_LED2 10
#undef CTRL_LED1
#define CTRL_LED1 6
#undef CTRL_LED2
#define CTRL_LED2 9
#undef ALT_LED1
#define ALT_LED1 7
#undef GUI_LED1
#define GUI_LED1 8
#define DRASHNA_LP

View file

@ -1 +0,0 @@
// placeholder

View file

@ -1,7 +0,0 @@
USER_NAME := drashna
SRC += ../drashna/keymap.c
include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk
AUDIO_ENABLE = no
BACKLIGHT_ENABLE = yes

View file

@ -1,47 +0,0 @@
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
*
* 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
/* Use I2C or Serial, not both */
#include "../drashna/config.h"
#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# define RGBLED_NUM 16 // Number of LEDs
# undef RGBLED_SPLIT
# define RGBLED_SPLIT { 8, 8 }
#endif
#undef PRODUCT
#ifdef KEYBOARD_keebio_iris_rev2
# define PRODUCT Drashna Hacked Iris Rev.2 (16 LED)
#endif
#undef SHFT_LED1
#define SHFT_LED1 5
#undef SHFT_LED2
#define SHFT_LED2 10
#undef CTRL_LED1
#define CTRL_LED1 6
#undef CTRL_LED2
#define CTRL_LED2 9
#undef ALT_LED1
#define ALT_LED1 7
#undef GUI_LED1
#define GUI_LED1 8

View file

@ -1 +0,0 @@
// placeholder

View file

@ -1,4 +0,0 @@
USER_NAME := drashna
SRC += ../drashna/keymap.c
include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk

View file

@ -1,25 +0,0 @@
/*
Copyright 2017 Danny Nguyen <danny@hexwire.com>
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 "../drashna/config.h"
#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# define RGBLED_NUM 12
#endif

View file

@ -1 +0,0 @@
//placeholder

View file

@ -1,4 +0,0 @@
USER_NAME := drashna
SRC += ../drashna/keymap.c
include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk

View file

@ -39,68 +39,32 @@ enum more_custom_keycodes { KC_SWAP_NUM = NEW_SAFE_RANGE };
KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT \ KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT \
) )
#define LAYOUT_moonlander_base_wrapper(...) LAYOUT_moonlander_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_moonlander_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
[_QWERTY] = LAYOUT_moonlander_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_moonlander_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_moonlander_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_moonlander_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_moonlander_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_moonlander_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_moonlander_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_moonlander_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
#ifdef _MODS
[_MODS] = LAYOUT_moonlander_wrapper(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
_______, KC_MEH, KC_HYPR, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_LALT, _______, _______, _______, _______, KC_RGUI
),
#endif
[_GAMEPAD] = LAYOUT_moonlander_wrapper( [_GAMEPAD] = LAYOUT_moonlander_wrapper(
KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, HYPR(KC_Q), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, HYPR(KC_Q), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
@ -214,29 +178,17 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (userspace_config.rgb_layer_change) { if (userspace_config.rgb_layer_change) {
switch (get_highest_layer(layer_state|default_layer_state)) { switch (get_highest_layer(layer_state|default_layer_state)) {
case _QWERTY: case _DEFAULT_LAYER_1:
rgb_matrix_layer_helper(HSV_CYAN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _COLEMAK: case _DEFAULT_LAYER_2:
rgb_matrix_layer_helper(HSV_MAGENTA, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _DVORAK: case _DEFAULT_LAYER_3:
rgb_matrix_layer_helper(HSV_SPRINGGREEN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _WORKMAN: case _DEFAULT_LAYER_4:
rgb_matrix_layer_helper(HSV_GOLDENROD, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _NORMAN:
rgb_matrix_layer_helper(HSV_CORAL, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _MALTRON:
rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _EUCALYN:
rgb_matrix_layer_helper(HSV_PINK, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _CARPLAX:
rgb_matrix_layer_helper(HSV_BLUE, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _GAMEPAD: case _GAMEPAD:
rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);

View file

@ -19,59 +19,34 @@
LALT_T(KC_TAB), K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(K1B), \ LALT_T(KC_TAB), K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(K1B), \
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \
) )
#define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
[_QWERTY] = LAYOUT_orthodox_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
), ),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
[_COLEMAK] = LAYOUT_orthodox_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_DVORAK] = LAYOUT_orthodox_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
[_WORKMAN] = LAYOUT_orthodox_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_orthodox_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_orthodox_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_orthodox_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_orthodox_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_LOWER] = LAYOUT_wrapper(\ [_LOWER] = LAYOUT_wrapper(\
KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,

View file

@ -20,5 +20,10 @@
#undef RGBLIGHT_LIMIT_VAL #undef RGBLIGHT_LIMIT_VAL
#define RGBLIGHT_LIMIT_VAL 255 #define RGBLIGHT_LIMIT_VAL 255
#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_SLEEP #define RGBLIGHT_SLEEP

View file

@ -29,6 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void eeconkfig_init_user(void) { void eeconkfig_init_user(void) {
rgblight_enable(); rgblight_enable();
#ifdef RGBLIGHT_EFFECT_TWINKLE
rgblight_mode(RGBLIGHT_MODE_TWINKLE+5); rgblight_mode(RGBLIGHT_MODE_TWINKLE+5);
#else
rgblight_mode(RGBLIGHT_MODE_BREATHING+5);
#endif
rgblight_sethsv(HSV_MAGENTA); rgblight_sethsv(HSV_MAGENTA);
} }

View file

@ -38,58 +38,32 @@
KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \ KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \
) )
/* Re-pass though to allow templates to be used */ /* Re-pass though to allow templates to be used */
#define LAYOUT_kyria_base_wrapper(...) LAYOUT_kyria_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_kyria_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
[_QWERTY] = LAYOUT_kyria_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_kyria_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_DVORAK] = LAYOUT_kyria_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_WORKMAN] = LAYOUT_kyria_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_kyria_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_kyria_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_kyria_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_kyria_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_GAMEPAD] = LAYOUT_wrapper( [_GAMEPAD] = LAYOUT_wrapper(
KC_ESC, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______, KC_ESC, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______,
KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______,
@ -128,6 +102,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
// ), // ),
}; };
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP }, { KC_VOLD, KC_VOLU } },
[_DEFAULT_LAYER_2] = { { _______, _______ }, { _______, _______ } },
[_DEFAULT_LAYER_3] = { { _______, _______ }, { _______, _______ } },
[_DEFAULT_LAYER_4] = { { _______, _______ }, { _______, _______ } },
[_GAMEPAD] = { { _______, _______ }, { _______, _______ } },
[_DIABLO] = { { _______, _______ }, { _______, _______ } },
[_MOUSE] = { { _______, _______ }, { KC_WH_D, KC_WH_U } },
[_MEDIA] = { { _______, _______ }, { _______, _______ } },
[_RAISE] = { { _______, _______ }, { KC_PGDN, KC_PGUP } },
[_LOWER] = { { RGB_MOD, RGB_RMOD}, { RGB_HUD, RGB_HUI } },
[_ADJUST] = { { CK_DOWN, CK_UP }, { _______, _______ } },
};
#endif
// clang-format on // clang-format on
#ifdef OLED_DRIVER_ENABLE #ifdef OLED_DRIVER_ENABLE
@ -156,39 +146,20 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
#endif #endif
#ifdef RGBLIGHT_LAYERS #ifdef RGBLIGHT_LAYERS
const rgblight_segment_t PROGMEM shift_layers[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM shift_layers[] = RGBLIGHT_LAYER_SEGMENTS({8, 1, 120, 255, 255}, {18, 1, 120, 255, 255});
{ 8, 1, 120, 255, 255}, const rgblight_segment_t PROGMEM control_layers[] = RGBLIGHT_LAYER_SEGMENTS({6, 1, 0, 255, 255}, {16, 1, 0, 255, 255});
{ 18, 1, 120, 255, 255} const rgblight_segment_t PROGMEM alt_layers[] = RGBLIGHT_LAYER_SEGMENTS({2, 1, 240, 255, 255}, {17, 1, 250, 255, 255});
); const rgblight_segment_t PROGMEM gui_layers[] = RGBLIGHT_LAYER_SEGMENTS({7, 1, 51, 255, 255}, {12, 1, 51, 255, 255});
const rgblight_segment_t PROGMEM control_layers[] = RGBLIGHT_LAYER_SEGMENTS(
{ 6, 1, 0, 255, 255},
{ 16, 1, 0, 255, 255}
);
const rgblight_segment_t PROGMEM alt_layers[] = RGBLIGHT_LAYER_SEGMENTS(
{ 2, 1, 240, 255, 255},
{ 17, 1, 250, 255, 255}
);
const rgblight_segment_t PROGMEM gui_layers[] = RGBLIGHT_LAYER_SEGMENTS(
{ 7, 1, 51, 255, 255},
{ 12, 1, 51, 255, 255}
);
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(shift_layers, control_layers, alt_layers, gui_layers);
shift_layers,
control_layers,
alt_layers,
gui_layers
);
void keyboard_post_init_keymap(void) { void keyboard_post_init_keymap(void) { rgblight_layers = my_rgb_layers; }
rgblight_layers = my_rgb_layers;
}
void matrix_scan_keymap(void) { void matrix_scan_keymap(void) {
uint8_t mods = mod_config(get_mods()|get_oneshot_mods()); uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT); rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT);
rgblight_set_layer_state(1, mods & MOD_MASK_CTRL); rgblight_set_layer_state(1, mods & MOD_MASK_CTRL);
rgblight_set_layer_state(2, mods & MOD_MASK_ALT); rgblight_set_layer_state(2, mods & MOD_MASK_ALT);
rgblight_set_layer_state(3, mods & MOD_MASK_GUI); rgblight_set_layer_state(3, mods & MOD_MASK_GUI);
} }
#endif #endif

View file

@ -3,13 +3,15 @@ ENCODER_ENABLE = yes # ENables the use of one or more encoders
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
RGBLIGHT_STARTUP_ANIMATION = no RGBLIGHT_STARTUP_ANIMATION = no
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover NKRO_ENABLE = yes # USB Nkey Rollover
UNICODE_ENABLE = yes # Unicode UNICODE_ENABLE = no # Unicode
BOOTLOADER = atmel-dfu KEY_LOCK_ENABLE = no
BOOTLOADER = atmel-dfu
# TAP_DANCE_ENABLE = yes # TAP_DANCE_ENABLE = yes

View file

@ -22,6 +22,7 @@
extern haptic_config_t haptic_config; extern haptic_config_t haptic_config;
#endif #endif
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x3( /* Base */ [0] = LAYOUT_ortho_4x3( /* Base */
KC_MUTE, TG(1), TG(2), KC_MUTE, TG(1), TG(2),
@ -43,12 +44,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
) )
}; };
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { { KC_DOWN, KC_UP } },
[1] = { { KC_VOLD, KC_VOLU } },
[2] = { { RGB_MOD, RGB_RMOD} },
};
#endif
// clang-format on
static bool is_asleep = false; static bool is_asleep = false;
static uint32_t oled_timer; static uint32_t oled_timer;
void render_oled_logo(void) { void render_oled_logo(void) {
// clang-format off // clang-format off
static const char PROGMEM qmk_logo[] = { static const char PROGMEM qmk_logo[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
@ -68,9 +77,7 @@ void render_user_status(void) {
oled_write_P(nukem_good[0], haptic_config.enable); oled_write_P(nukem_good[0], haptic_config.enable);
} }
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) { oled_scroll_set_speed(0); }
oled_scroll_set_speed(0);
}
void oled_task_user(void) { void oled_task_user(void) {
if (is_asleep) { if (is_asleep) {
@ -107,13 +114,9 @@ void oled_task_user(void) {
} }
} }
void suspend_power_down_user(void) { void suspend_power_down_user(void) { is_asleep = true; }
is_asleep = true;
}
void suspend_wakeup_init_user(void) { void suspend_wakeup_init_user(void) { is_asleep = false; }
is_asleep = false;
}
bool process_record_user(uint16_t keycode, keyrecord_t* record) { bool process_record_user(uint16_t keycode, keyrecord_t* record) {
oled_timer = timer_read32(); oled_timer = timer_read32();
@ -121,7 +124,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
return true; return true;
} }
bool encoder_update_user(uint8_t index, bool clockwise) { bool encoder_update_user(uint8_t index, bool clockwise) {
if (clockwise) { if (clockwise) {
tap_code16(KC_VOLU); tap_code16(KC_VOLU);

View file

@ -1,2 +1,3 @@
# is intentional. won't compile under size, otherwise. # is intentional. won't compile under size, otherwise.
USER_NAME := not_drashna USER_NAME := not_drashna
ENCODER_MAP_ENABLE = yes

View file

@ -56,145 +56,33 @@ bool skip_leds = false;
KC_SPC, LT(_LOWER, KC_BSPC), OS_LWR, OS_RSE, LT(_RAISE, KC_DEL), KC_ENT \ KC_SPC, LT(_LOWER, KC_BSPC), OS_LWR, OS_RSE, LT(_RAISE, KC_DEL), KC_ENT \
) )
#define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: QWERTY Layer [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
* _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
* _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
* ,--------------------------------------------------. ,--------------------------------------------------. _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
* | = + | 1 ! | 2 @ | 3 # | 4 $ | 5 % | TG(4)| | TG(4)| 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | ),
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | TAB | Q | W | E | R | T | TG(3)| |TG(3) | Y | U | I | O | P | \ | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Bksp | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " |
* |--------+------+------+------+------+------| TG(2)| | TG(2)|------+------+------+------+------+--------|
* | Shift | Z | X | C | V | B | | | | N | M | , < | . > | ? / | Shift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
* `----------------------------------' `----------------------------------'
* ,--------------. ,--------------.
* |Alt/Ap| Win | | Alt |Ctl/Esc|
* ,------|------|-------| |------+-------+------.
* | | | Home | | PgUp | | |
* | Space| Bksp |-------| |------| DEL |Enter |
* | | | End | | PgDn | | |
* `---------------------' `---------------------'
*/
[_QWERTY] = LAYOUT_ergodox_pretty_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
/* Keymap 0: COLEMAK layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' |
* |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Tab |Enter |
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[_COLEMAK] = LAYOUT_ergodox_pretty_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
/* Keymap 0: DVORAK Layout
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | \ |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | O | E | U | I |------| |------| D | H | T | N |S / L2| - |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Tab |Enter |
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[_DVORAK] = LAYOUT_ergodox_pretty_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
/* Keymap 0: WORKMAN layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | D | R | W | B | L1 | | L1 | J | F | U | P | ; | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | S | H | T | D |------| |------| Y | N | E | O | I | ' |
* |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | M | C | V | | | | K | L | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | `/SYM| MEH | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | App | LGui | | Alt |Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Tab |Enter |
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
[_WORKMAN] = LAYOUT_ergodox_pretty_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________, ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________, ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________ ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
), ),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
[_NORMAN] = LAYOUT_ergodox_pretty_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_MALTRON] = LAYOUT_ergodox_pretty_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_ergodox_pretty_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_ergodox_pretty_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
/* Keymap 4: Customized Overwatch Layout /* Keymap 4: Customized Overwatch Layout
* *
@ -311,9 +199,7 @@ void keyboard_post_init_keymap(void) {
// trackball_set_precision(1.5); // trackball_set_precision(1.5);
trackball_set_rgbw(RGB_MAGENTA, 0x00); trackball_set_rgbw(RGB_MAGENTA, 0x00);
} }
void shutdown_keymap(void) { void shutdown_keymap(void) { trackball_set_rgbw(RGB_RED, 0x00); }
trackball_set_rgbw(RGB_RED, 0x00);
}
static bool mouse_button_one, trackball_button_one; static bool mouse_button_one, trackball_button_one;
@ -328,8 +214,6 @@ void trackball_register_button(bool pressed, enum mouse_buttons button) {
} }
#endif #endif
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch (keycode) { switch (keycode) {
case KC_1: case KC_1:
@ -371,17 +255,17 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
} }
run_trackball_cleanup(); run_trackball_cleanup();
break; break;
#if !defined(MOUSEKEY_ENABLE) # if !defined(MOUSEKEY_ENABLE)
case KC_MS_BTN1: case KC_MS_BTN1:
mouse_button_one = record->event.pressed; mouse_button_one = record->event.pressed;
trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1);
break; break;
case KC_MS_BTN2: case KC_MS_BTN2:
trackball_register_button(record->event.pressed, MOUSE_BTN2); trackball_register_button(record->event.pressed, MOUSE_BTN2);
break; break;
case KC_MS_BTN3: case KC_MS_BTN3:
trackball_register_button(record->event.pressed, MOUSE_BTN3); trackball_register_button(record->event.pressed, MOUSE_BTN3);
break; break;
# endif # endif
#endif #endif
} }
@ -434,7 +318,6 @@ void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); }
void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); } void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (layer_state_is(_GAMEPAD)) { if (layer_state_is(_GAMEPAD)) {
RGB_MATRIX_INDICATOR_SET_COLOR(32, 0x00, 0xFF, 0x00); // Q RGB_MATRIX_INDICATOR_SET_COLOR(32, 0x00, 0xFF, 0x00); // Q
RGB_MATRIX_INDICATOR_SET_COLOR(31, 0x00, 0xFF, 0xFF); // W RGB_MATRIX_INDICATOR_SET_COLOR(31, 0x00, 0xFF, 0xFF); // W
@ -447,7 +330,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 26 : 27), 0xFF, 0xFF, 0xFF); // 1 RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 26 : 27), 0xFF, 0xFF, 0xFF); // 1
RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 27 : 26), 0x00, 0xFF, 0x00); // 2 RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 27 : 26), 0x00, 0xFF, 0x00); // 2
RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x7A, 0x00, 0xFF); // 3 RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x7A, 0x00, 0xFF); // 3
} }
# if defined(RGBLIGHT_ENABLE) # if defined(RGBLIGHT_ENABLE)
@ -456,7 +339,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (userspace_config.rgb_layer_change) if (userspace_config.rgb_layer_change)
# endif # endif
{ {
switch (get_highest_layer(layer_state|default_layer_state)) { switch (get_highest_layer(layer_state | default_layer_state)) {
case _GAMEPAD: case _GAMEPAD:
rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
@ -472,29 +355,17 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
case _ADJUST: case _ADJUST:
rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _QWERTY: case _DEFAULT_LAYER_1:
rgb_matrix_layer_helper(HSV_CYAN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _COLEMAK: case _DEFAULT_LAYER_2:
rgb_matrix_layer_helper(HSV_MAGENTA, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _DVORAK: case _DEFAULT_LAYER_3:
rgb_matrix_layer_helper(HSV_SPRINGGREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
case _WORKMAN: case _DEFAULT_LAYER_4:
rgb_matrix_layer_helper(HSV_GOLDENROD, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _NORMAN:
rgb_matrix_layer_helper(HSV_CORAL, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _MALTRON:
rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _EUCALYN:
rgb_matrix_layer_helper(HSV_PINK, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _CARPLAX:
rgb_matrix_layer_helper(HSV_BLUE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
} }
} }

View file

@ -16,7 +16,6 @@
#include "drashna.h" #include "drashna.h"
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
enum planck_keycodes { enum planck_keycodes {
BACKLIT = NEW_SAFE_RANGE, BACKLIT = NEW_SAFE_RANGE,
@ -62,58 +61,32 @@ enum planck_keycodes {
KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \
BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
) )
#define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
[_QWERTY] = LAYOUT_ortho_4x12_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
), ),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
[_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_DVORAK] = LAYOUT_ortho_4x12_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
[_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_NORMAN] = LAYOUT_ortho_4x12_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_ortho_4x12_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_ortho_4x12_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_ortho_4x12_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_LOWER] = LAYOUT_ortho_4x12_wrapper( [_LOWER] = LAYOUT_ortho_4x12_wrapper(
KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
@ -137,6 +110,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
) )
}; };
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP } },
[_DEFAULT_LAYER_2] = { { _______, _______ } },
[_DEFAULT_LAYER_3] = { { _______, _______ } },
[_DEFAULT_LAYER_4] = { { _______, _______ } },
[_GAMEPAD] = { { _______, _______ } },
[_DIABLO] = { { _______, _______ } },
[_MOUSE] = { { KC_WH_D, KC_WH_U } },
[_MEDIA] = { { _______, _______ } },
[_RAISE] = { { KC_VOLD, KC_VOLU } },
[_LOWER] = { { RGB_MOD, RGB_RMOD} },
[_ADJUST] = { { CK_DOWN, CK_UP } },
};
#endif
// clang-format on // clang-format on
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
@ -222,7 +211,6 @@ void suspend_wakeup_init_keymap(void) {
} }
// clang-format on // clang-format on
void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
uint8_t this_mod = get_mods(); uint8_t this_mod = get_mods();
uint8_t this_led = host_keyboard_leds(); uint8_t this_led = host_keyboard_leds();
@ -254,49 +242,38 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
case _ADJUST: case _ADJUST:
rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break; break;
default: { default:
switch (get_highest_layer(default_layer_state)) { {
case _QWERTY: switch (get_highest_layer(default_layer_state)) {
rgb_matrix_layer_helper(HSV_CYAN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); case _DEFAULT_LAYER_1:
break; rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
case _COLEMAK: break;
rgb_matrix_layer_helper(HSV_MAGENTA, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); case _DEFAULT_LAYER_2:
break; rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
case _DVORAK: break;
rgb_matrix_layer_helper(HSV_SPRINGGREEN, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); case _DEFAULT_LAYER_3:
break; rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
case _WORKMAN: break;
rgb_matrix_layer_helper(HSV_GOLDENROD, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); case _DEFAULT_LAYER_4:
break; rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
case _NORMAN: break;
rgb_matrix_layer_helper(HSV_CORAL, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max); }
break; break;
case _MALTRON:
rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _EUCALYN:
rgb_matrix_layer_helper(HSV_PINK, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
case _CARPLAX:
rgb_matrix_layer_helper(HSV_BLUE, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
break;
} }
break;
}
} }
} }
switch (get_highest_layer(default_layer_state)) { switch (get_highest_layer(default_layer_state)) {
case _QWERTY: case _DEFAULT_LAYER_1:
RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0xFF); RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0xFF);
break; break;
case _COLEMAK: case _DEFAULT_LAYER_2:
RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xFF, 0x00, 0xFF); RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xFF, 0x00, 0xFF);
break; break;
case _DVORAK: case _DEFAULT_LAYER_3:
RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0x00); RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0x00, 0xFF, 0x00);
break; break;
case _WORKMAN: case _DEFAULT_LAYER_4:
RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xD9, 0xA5, 0x21); RGB_MATRIX_INDICATOR_SET_COLOR((is_ez ? 41 : 42), 0xD9, 0xA5, 0x21);
break; break;
} }

View file

@ -22,6 +22,7 @@ else
RGB_MATRIX_ENABLE = no RGB_MATRIX_ENABLE = no
AUDIO_ENABLE = yes AUDIO_ENABLE = yes
EEPROM_DRIVER = i2c EEPROM_DRIVER = i2c
ENCODER_MAP_ENABLE = yes
endif endif
ifeq ($(strip $(KEYBOARD)), planck/light) ifeq ($(strip $(KEYBOARD)), planck/light)
RGB_MATRIX_ENABLE = yes RGB_MATRIX_ENABLE = yes
@ -31,13 +32,14 @@ ifeq ($(strip $(KEYBOARD)), planck/light)
# HAPTIC_ENABLE += SOLENOID # HAPTIC_ENABLE += SOLENOID
endif endif
ifeq ($(strip $(KEYBOARD)), planck/ez) ifeq ($(strip $(KEYBOARD)), planck/ez)
RGBLIGHT_ENABLE = no RGBLIGHT_ENABLE = no
ENCODER_ENABLE = yes ENCODER_ENABLE = yes
RGB_MATRIX_ENABLE = yes ENCODER_MAP_ENABLE = yes
RGB_MATRIX_ENABLE = yes
INDICATOR_LIGHTS = yes INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes RGBLIGHT_STARTUP_ANIMATION = yes
CONSOLE_ENABLE = yes CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes COMMAND_ENABLE = yes
AUDIO_ENABLE = yes AUDIO_ENABLE = yes
endif endif

View file

@ -38,34 +38,32 @@
KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
) )
#define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
[_QWERTY] = LAYOUT_ortho_5x12_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
), ),
[_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
[_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_DVORAK] = LAYOUT_ortho_5x12_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
[_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
/* Lower /* Lower
* ,-----------------------------------------------------------------------------------. * ,-----------------------------------------------------------------------------------.

View file

@ -50,11 +50,13 @@
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS
# define RGB_MATRIX_HUE_STEP 8 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
# define RGB_MATRIX_SAT_STEP 8 # endif
# define RGB_MATRIX_VAL_STEP 5 # define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SPD_STEP 10 # define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 5
# define RGB_MATRIX_SPD_STEP 10
#endif #endif
#ifdef CONVERT_TO_PROTON_C #ifdef CONVERT_TO_PROTON_C

View file

@ -39,56 +39,32 @@ enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE };
OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
RGB_MOD, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \ RGB_MOD, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \
) )
#define LAYOUT_split_3x6_3_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__) #define LAYOUT_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_split_3x6_3_base_wrapper( [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
), ),
[_COLEMAK] = LAYOUT_split_3x6_3_base_wrapper( [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________, ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________, ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________ ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
), ),
[_DVORAK] = LAYOUT_split_3x6_3_base_wrapper( [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
), ),
[_WORKMAN] = LAYOUT_split_3x6_3_base_wrapper( [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
), ),
[_NORMAN] = LAYOUT_split_3x6_3_base_wrapper(
_________________NORMAN_L1_________________, _________________NORMAN_L1_________________,
_________________NORMAN_L2_________________, _________________NORMAN_R2_________________,
_________________NORMAN_L3_________________, _________________NORMAN_R3_________________
),
[_MALTRON] = LAYOUT_split_3x6_3_base_wrapper(
_________________MALTRON_L1________________, _________________MALTRON_R1________________,
_________________MALTRON_L2________________, _________________MALTRON_R2________________,
_________________MALTRON_L3________________, _________________MALTRON_R3________________
),
[_EUCALYN] = LAYOUT_split_3x6_3_base_wrapper(
_________________EUCALYN_L1________________, _________________EUCALYN_R1________________,
_________________EUCALYN_L2________________, _________________EUCALYN_R2________________,
_________________EUCALYN_L3________________, _________________EUCALYN_R3________________
),
[_CARPLAX] = LAYOUT_split_3x6_3_base_wrapper(
_____________CARPLAX_QFMLWY_L1_____________, _____________CARPLAX_QFMLWY_R1_____________,
_____________CARPLAX_QFMLWY_L2_____________, _____________CARPLAX_QFMLWY_R2_____________,
_____________CARPLAX_QFMLWY_L3_____________, _____________CARPLAX_QFMLWY_R3_____________
),
[_LOWER] = LAYOUT_split_3x6_3_wrapper( [_LOWER] = LAYOUT_split_3x6_3_wrapper(
KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
@ -114,9 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format on // clang-format on
#ifdef OLED_DRIVER_ENABLE #ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return OLED_ROTATION_270; }
return OLED_ROTATION_270;
}
#endif #endif
#ifdef TAPPING_TERM_PER_KEY #ifdef TAPPING_TERM_PER_KEY
@ -130,7 +104,6 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
} }
#endif #endif
void matrix_slave_scan_user(void) { void matrix_slave_scan_user(void) {
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
rgb_matrix_task(); rgb_matrix_task();
@ -145,28 +118,16 @@ void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) { void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) {
switch (get_highest_layer(default_layer_state)) { switch (get_highest_layer(default_layer_state)) {
case _QWERTY: case _QWERTY:
rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
break;
case _COLEMAK_DH:
rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
break; break;
case _COLEMAK: case _COLEMAK:
rgb_matrix_layer_helper(HSV_MAGENTA, mode, rgb_matrix_config.speed, type, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
break; break;
case _DVORAK: case _DVORAK:
rgb_matrix_layer_helper(HSV_SPRINGGREEN, mode, rgb_matrix_config.speed, type, led_min, led_max); rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
break;
case _WORKMAN:
rgb_matrix_layer_helper(HSV_GOLDENROD, mode, rgb_matrix_config.speed, type, led_min, led_max);
break;
case _NORMAN:
rgb_matrix_layer_helper(HSV_CORAL, mode, rgb_matrix_config.speed, type, led_min, led_max);
break;
case _MALTRON:
rgb_matrix_layer_helper(HSV_YELLOW, mode, rgb_matrix_config.speed, type, led_min, led_max);
break;
case _EUCALYN:
rgb_matrix_layer_helper(HSV_PINK, mode, rgb_matrix_config.speed, type, led_min, led_max);
break;
case _CARPLAX:
rgb_matrix_layer_helper(HSV_BLUE, mode, rgb_matrix_config.speed, type, led_min, led_max);
break; break;
} }
} }
@ -189,10 +150,11 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
case _ADJUST: case _ADJUST:
rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max); rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
break; break;
default: { default:
check_default_layer(0, LED_FLAG_UNDERGLOW, led_min, led_max); {
break; check_default_layer(0, LED_FLAG_UNDERGLOW, led_min, led_max);
} break;
}
} }
check_default_layer(0, LED_FLAG_MODIFIER, led_min, led_max); check_default_layer(0, LED_FLAG_MODIFIER, led_min, led_max);
} }

View file

@ -57,26 +57,35 @@
# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND) # define UNICODE_SONG_BSD SONG(WORKMAN_SOUND)
# define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND) # define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND)
# endif # endif
#endif // !AUDIO_ENABLE #endif // !AUDIO_ENABLE
#define UNICODE_SELECTED_MODES UC_WIN, UC_MAC #define UNICODE_SELECTED_MODES UC_WIN, UC_MAC
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
# define RGBLIGHT_SLEEP # define RGBLIGHT_SLEEP
# undef RGBLIGHT_ANIMATIONS
# if defined(__AVR__) && !defined(__AVR_AT90USB1286__) # if defined(__AVR__) && !defined(__AVR_AT90USB1286__)
# undef RGBLIGHT_ANIMATIONS
# define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_SNAKE # define RGBLIGHT_EFFECT_SNAKE
# define RGBLIGHT_EFFECT_KNIGHT # define RGBLIGHT_EFFECT_KNIGHT
# else # else
# define RGBLIGHT_ANIMATIONS # define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
# define RGBLIGHT_EFFECT_SNAKE
# define RGBLIGHT_EFFECT_KNIGHT
// # define RGBLIGHT_EFFECT_CHRISTMAS
// # define RGBLIGHT_EFFECT_STATIC_GRADIENT
// # define RGBLIGHT_EFFECT_RGB_TEST
// # define RGBLIGHT_EFFECT_ALTERNATING
# define RGBLIGHT_EFFECT_TWINKLE
# endif # endif
# define RGBLIGHT_EFFECT_TWINKLE_LIFE 250 # define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
# define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24 # define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) # define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS # define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
@ -120,8 +129,8 @@
# define DISABLE_RGB_MATRIX_MULTISPLASH # define DISABLE_RGB_MATRIX_MULTISPLASH
# define DISABLE_RGB_MATRIX_SOLID_SPLASH # define DISABLE_RGB_MATRIX_SOLID_SPLASH
# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
# endif // AVR # endif // AVR
#endif // RGB_MATRIX_ENABLE #endif // RGB_MATRIX_ENABLE
#ifdef OLED_DRIVER_ENABLE #ifdef OLED_DRIVER_ENABLE
# ifdef SPLIT_KEYBOARD # ifdef SPLIT_KEYBOARD
@ -148,16 +157,16 @@
#ifndef ONESHOT_TAP_TOGGLE #ifndef ONESHOT_TAP_TOGGLE
# define ONESHOT_TAP_TOGGLE 2 # define ONESHOT_TAP_TOGGLE 2
#endif // !ONESHOT_TAP_TOGGLE #endif // !ONESHOT_TAP_TOGGLE
#ifndef ONESHOT_TIMEOUT #ifndef ONESHOT_TIMEOUT
# define ONESHOT_TIMEOUT 3000 # define ONESHOT_TIMEOUT 3000
#endif // !ONESHOT_TIMEOUT #endif // !ONESHOT_TIMEOUT
#ifdef QMK_KEYS_PER_SCAN #ifdef QMK_KEYS_PER_SCAN
# undef QMK_KEYS_PER_SCAN # undef QMK_KEYS_PER_SCAN
# define QMK_KEYS_PER_SCAN 2 # define QMK_KEYS_PER_SCAN 2
#endif // !QMK_KEYS_PER_SCAN #endif // !QMK_KEYS_PER_SCAN
// this makes it possible to do rolling combos (zx) with keys that // this makes it possible to do rolling combos (zx) with keys that
// convert to other keys on hold (z becomes ctrl when you hold it, // convert to other keys on hold (z becomes ctrl when you hold it,
@ -167,7 +176,7 @@
#undef PERMISSIVE_HOLD #undef PERMISSIVE_HOLD
//#define TAPPING_FORCE_HOLD_PER_KEY //#define TAPPING_FORCE_HOLD_PER_KEY
//#define RETRO_TAPPING_PER_KEY //#define RETRO_TAPPING_PER_KEY
#ifndef KEYBOARD_kyria_rev1 #if !defined(KEYBOARD_kyria) && !defined(KEYBOARD_splitkb_kyria)
# define TAPPING_TERM_PER_KEY # define TAPPING_TERM_PER_KEY
#endif #endif
@ -179,7 +188,7 @@
#ifdef TAPPING_TERM #ifdef TAPPING_TERM
# undef TAPPING_TERM # undef TAPPING_TERM
#endif // TAPPING_TERM #endif // TAPPING_TERM
#if defined(KEYBOARD_ergodox_ez) #if defined(KEYBOARD_ergodox_ez)
# define TAPPING_TERM 185 # define TAPPING_TERM 185
#elif defined(KEYBOARD_crkbd) #elif defined(KEYBOARD_crkbd)
@ -293,4 +302,4 @@
# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS # ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 # define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8
# endif # endif
#endif // MOUSEKEY_ENABLE #endif // MOUSEKEY_ENABLE

View file

@ -103,12 +103,12 @@ void shutdown_user(void) {
rgblight_enable_noeeprom(); rgblight_enable_noeeprom();
rgblight_mode_noeeprom(1); rgblight_mode_noeeprom(1);
rgblight_setrgb_red(); rgblight_setrgb_red();
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
rgb_matrix_set_color_all(0xFF, 0x00, 0x00); rgb_matrix_set_color_all(0xFF, 0x00, 0x00);
rgb_matrix_update_pwm_buffers(); rgb_matrix_update_pwm_buffers();
#endif // RGB_MATRIX_ENABLE #endif // RGB_MATRIX_ENABLE
shutdown_keymap(); shutdown_keymap();
} }
@ -124,8 +124,12 @@ void suspend_power_down_user(void) {
__attribute__((weak)) void suspend_wakeup_init_keymap(void) {} __attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
void suspend_wakeup_init_user(void) { void suspend_wakeup_init_user(void) {
if (layer_state_is(_GAMEPAD)) { layer_off(_GAMEPAD); } if (layer_state_is(_GAMEPAD)) {
if (layer_state_is(_DIABLO)) { layer_off(_DIABLO); } layer_off(_GAMEPAD);
}
if (layer_state_is(_DIABLO)) {
layer_off(_DIABLO);
}
suspend_wakeup_init_keymap(); suspend_wakeup_init_keymap();
} }
@ -142,13 +146,13 @@ void matrix_scan_user(void) {
startup_user(); startup_user();
} }
#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code. #ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
run_diablo_macro_check(); run_diablo_macro_check();
#endif // TAP_DANCE_ENABLE #endif // TAP_DANCE_ENABLE
#if defined(RGBLIGHT_ENABLE) #if defined(RGBLIGHT_ENABLE)
matrix_scan_rgb_light(); matrix_scan_rgb_light();
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
#if defined(RGB_MATRIX_ENABLE) #if defined(RGB_MATRIX_ENABLE)
matrix_scan_rgb_matrix(); matrix_scan_rgb_matrix();
#endif #endif
@ -167,13 +171,15 @@ __attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state)
// on layer change, no matter where the change was initiated // on layer change, no matter where the change was initiated
// Then runs keymap's layer change check // Then runs keymap's layer change check
layer_state_t layer_state_set_user(layer_state_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
if (!is_keyboard_master()) { return state; } if (!is_keyboard_master()) {
return state;
}
state = layer_state_set_keymap(state); state = layer_state_set_keymap(state);
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
#if defined(RGBLIGHT_ENABLE) #if defined(RGBLIGHT_ENABLE)
state = layer_state_set_rgb_light(state); state = layer_state_set_rgb_light(state);
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
#if defined(AUDIO_ENABLE) && !defined(__arm__) #if defined(AUDIO_ENABLE) && !defined(__arm__)
static bool is_gamepad_on = false; static bool is_gamepad_on = false;
if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) { if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) {
@ -192,13 +198,15 @@ __attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t
// Runs state check and changes underglow color and animation // Runs state check and changes underglow color and animation
layer_state_t default_layer_state_set_user(layer_state_t state) { layer_state_t default_layer_state_set_user(layer_state_t state) {
if (!is_keyboard_master()) { return state; } if (!is_keyboard_master()) {
return state;
}
state = default_layer_state_set_keymap(state); state = default_layer_state_set_keymap(state);
#if 0 #if 0
# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) # if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
state = default_layer_state_set_rgb(state); state = default_layer_state_set_rgb(state);
# endif // RGBLIGHT_ENABLE # endif // RGBLIGHT_ENABLE
#endif #endif
return state; return state;
} }

View file

@ -22,7 +22,7 @@
#include "process_records.h" #include "process_records.h"
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
# include "tap_dances.h" # include "tap_dances.h"
#endif // TAP_DANCE_ENABLE #endif // TAP_DANCE_ENABLE
#if defined(RGBLIGHT_ENABLE) #if defined(RGBLIGHT_ENABLE)
# include "rgb_stuff.h" # include "rgb_stuff.h"
#endif #endif
@ -41,25 +41,44 @@
/* Define layer names */ /* Define layer names */
enum userspace_layers { enum userspace_layers {
_QWERTY = 0, _QWERTY = 0,
_NUMLOCK = 0, _NUMLOCK = 0,
FIRST_DEFAULT_LAYER = 0,
_COLEMAK_DH,
_COLEMAK, _COLEMAK,
_DVORAK, _DVORAK,
_WORKMAN, LAST_DEFAULT_LAYER = _DVORAK,
_NORMAN,
_MALTRON,
_EUCALYN,
_CARPLAX,
_GAMEPAD, _GAMEPAD,
_DIABLO, _DIABLO,
_MACROS, _MOUSE,
_MEDIA, _MEDIA,
_LOWER, _LOWER,
_RAISE, _RAISE,
_ADJUST, _ADJUST,
}; };
#define _MOUSE _MACROS #define _MACROS _MOUSE
#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
#define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 3)
#if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 3)
# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 4)
# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 5)
# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 6)
# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 7)
# if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 7)
# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 8)
# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 9)
# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 10)
# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 11)
# endif
#endif
#define DEFAULT_LAYER_1_HSV HSV_CYAN
#define DEFAULT_LAYER_2_HSV HSV_SPRINGGREEN
#define DEFAULT_LAYER_3_HSV HSV_MAGENTA
#define DEFAULT_LAYER_4_HSV HSV_GOLDENROD
bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed); bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
@ -101,12 +120,12 @@ We use custom codes here, so we can substitute the right stuff
# define KC_D3_2 TD(TD_D3_2) # define KC_D3_2 TD(TD_D3_2)
# define KC_D3_3 TD(TD_D3_3) # define KC_D3_3 TD(TD_D3_3)
# define KC_D3_4 TD(TD_D3_4) # define KC_D3_4 TD(TD_D3_4)
#else // TAP_DANCE_ENABLE #else // TAP_DANCE_ENABLE
# define KC_D3_1 KC_1 # define KC_D3_1 KC_1
# define KC_D3_2 KC_2 # define KC_D3_2 KC_2
# define KC_D3_3 KC_3 # define KC_D3_3 KC_3
# define KC_D3_4 KC_4 # define KC_D3_4 KC_4
#endif // TAP_DANCE_ENABLE #endif // TAP_DANCE_ENABLE
#if defined(DRASHNA_CUSTOM_TRANSPORT) && defined(POINTING_DEVICE_ENABLE) #if defined(DRASHNA_CUSTOM_TRANSPORT) && defined(POINTING_DEVICE_ENABLE)
void master_mouse_send(int8_t x, int8_t y); void master_mouse_send(int8_t x, int8_t y);

View file

@ -3,7 +3,10 @@
// additional fonts from // additional fonts from
// https://github.com/datacute/TinyOLED-Fonts // https://github.com/datacute/TinyOLED-Fonts
#include "progmem.h" #if __has_include("../../../../Documents/qmk/oled_font.h")
# include "../../../../Documents/qmk/oled_font.h"
#else
# include "progmem.h"
// clang-format off // clang-format off
static const unsigned char font[] PROGMEM = { static const unsigned char font[] PROGMEM = {
@ -39,7 +42,7 @@ static const unsigned char font[] PROGMEM = {
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D 29 ↭
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E 30
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F 31
#if defined(OLED_FONT_5X5) # if defined(OLED_FONT_5X5)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! 0x5c,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 " 0x06,0x00,0x06,0x00,0x00,0x00, // 0x22 34 "
@ -136,7 +139,7 @@ static const unsigned char font[] PROGMEM = {
0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 } 0x44,0x7c,0x10,0x00,0x00,0x00, // 0x7D 125 }
0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~ 0x02,0x01,0x02,0x01,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
#elif defined(OLED_FONT_AZTECH) # lif defined(OLED_FONT_AZTECH)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 ! 0x00,0x2e,0x00,0x00,0x00,0x00, // 0x21 33 !
0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 " 0x00,0x02,0x00,0x02,0x00,0x00, // 0x22 34 "
@ -233,7 +236,7 @@ static const unsigned char font[] PROGMEM = {
0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~ 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
#elif defined(OLED_FONT_BMPLAIN) # elif defined(OLED_FONT_BMPLAIN)
0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32 0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 32
0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 ! 0x2e,0x00,0x00,0x00,0x00,0x00, // 0x21 33 !
0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 " 0x03,0x00,0x03,0x00,0x00,0x00, // 0x22 34 "
@ -330,7 +333,7 @@ static const unsigned char font[] PROGMEM = {
0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 } 0x22,0x3e,0x08,0x00,0x00,0x00, // 0x7D 125 }
0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~ 0x01,0x01,0x01,0x00,0x00,0x00, // 0x7E 126 ~
0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127 0x00,0x00,0x00,0x00,0x00,0x00, // 0x7F 127
#elif defined(OLED_FONT_SUPER_DIGG) # elif defined(OLED_FONT_SUPER_DIGG)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 ! 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00, // 0x21 33 !
0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 " 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, // 0x22 34 "
@ -427,7 +430,7 @@ static const unsigned char font[] PROGMEM = {
0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 } 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00, // 0x7D 125 }
0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~ 0x02, 0x01, 0x03, 0x04, 0x06, 0x02, // 0x7E 126 ~
0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00, // 0x7F 127
#else // default font # else // default font
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 32
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 ! 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 33 !
0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 " 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 34 "
@ -524,9 +527,9 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 } 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D 125 }
0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E 126 ~
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F 127
#endif # endif
#if defined(OLED_LOGO_GMK_BAD) # if defined(OLED_LOGO_GMK_BAD)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, // 0x81
0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, // 0x82
@ -655,7 +658,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#elif defined(OLED_LOGO_HUE_MANITEE) # elif defined(OLED_LOGO_HUE_MANITEE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0,
0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4, 0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4,
@ -784,7 +787,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#elif defined(OLED_LOGO_CORNE) # elif defined(OLED_LOGO_CORNE)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
@ -914,7 +917,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c # elif defined(OLED_LOGO_GOTHAM) // see /keyboards/crkbd/keymaps/gotham/oled.c
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x00, 0x00, 0xC0, 0x60, 0x30, 0x18, 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18,
0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C, 0xF8, 0x18, 0x00, 0xC0, 0x70, 0x1C,
@ -1043,137 +1046,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
# else
#elif defined(OLED_LOGO_SCIFI)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x80, 0x80, 0xC0, 0xC0, 0xE0, 0x60,
0x70, 0x30, 0x38, 0x18, 0x0C, 0x0C,
0x1E, 0x0C, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0xC0, 0xE0, 0xF0, 0x38, 0x1C, 0x0E,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x00, 0x00, 0x80, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x80, 0x80, 0xC0,
0xC0, 0x60, 0x60, 0x30, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x30, 0x30, 0x70, 0x78, 0x78, 0x7C,
0x7C, 0x7E, 0x3E, 0x3F, 0x3F, 0x3B,
0x3B, 0x39, 0x39, 0x38, 0x38, 0x38,
0x38, 0x38, 0x38, 0x38, 0x3C, 0x38,
0x18, 0x8F, 0xDF, 0xF8, 0x7C, 0xBE,
0xDF, 0xF7, 0xFB, 0xFD, 0xFE, 0xEF,
0x73, 0x3B, 0x1B, 0x1F, 0xEF, 0xF7,
0xFF, 0x7E, 0x6F, 0x6F, 0x6F, 0x6F,
0x6D, 0xBD, 0xE1, 0xF9, 0x3F, 0x3F,
0x39, 0x79, 0x79, 0x7D, 0xED, 0xED,
0xCD, 0xC7, 0xC7, 0x87, 0xC7, 0xE3,
0xE0, 0xF8, 0x7E, 0x3F, 0x37, 0x33,
0x3B, 0x1B, 0x19, 0x19, 0x0D, 0xED,
0xFF, 0xBF, 0xC7, 0xE7, 0xE3, 0xF0,
0x7C, 0xDE, 0xE7, 0xFB, 0x3E, 0x3F,
0xFC, 0xE0, 0xF8, 0x3E, 0xCF, 0xF3,
0xFC, 0x3F, 0x1F, 0x1F, 0x3C, 0x7E,
0x76, 0xF3, 0xE3, 0x81, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x30, 0x18, 0x1E,
0x0F, 0x03, 0x01, 0x00, 0x00, 0x00,
0x01, 0x03, 0x03, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0xE1, 0x79, 0x3E, 0x1F,
0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
0x01, 0x00, 0x00, 0x01, 0x01, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x03,
0x02, 0x06, 0x04, 0x08, 0x18, 0x10,
0x30, 0x20, 0x60, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
0x00, 0x14, 0x08, 0x14, 0x00, 0x00,
0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x30, 0x18, 0x0C,
0x06, 0x0C, 0x18, 0x30, 0x00, 0x00,
0x00, 0x00, 0x06, 0x06, 0x06, 0x0C,
0x18, 0x30, 0x66, 0x66, 0x66, 0x00,
0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E,
0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00,
0x00, 0x00, 0x77, 0x77, 0x77, 0x00,
0x77, 0x77, 0x77, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24,
0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00,
0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1,
0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00,
0x00, 0x10, 0x02, 0x38, 0xFC, 0xED,
0xFC, 0x38, 0x02, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F,
0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x60, 0x6A, 0x64,
0x6A, 0x60, 0x40, 0x00, 0x00, 0x00,
0x00, 0x04, 0x42, 0x69, 0x65, 0x65,
0x65, 0x69, 0x42, 0x04, 0x00, 0x00,
0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08,
0x18, 0x08, 0x18, 0x00, 0x00, 0x00,
0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#else
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80
0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8,
0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F,
@ -1303,7 +1176,7 @@ static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif # endif
}; };
// clang-format on // clang-format on
#endif

View file

@ -25,7 +25,7 @@
#endif #endif
uint32_t oled_timer = 0; uint32_t oled_timer = 0;
static char keylog_str[KEYLOGGER_LENGTH + 1] = { 0 }; static char keylog_str[KEYLOGGER_LENGTH + 1] = {0};
static uint16_t log_timer = 0; static uint16_t log_timer = 0;
// clang-format off // clang-format off
@ -58,7 +58,7 @@ void add_keylog(uint16_t keycode) {
} }
for (uint8_t i = 1; i < KEYLOGGER_LENGTH; i++) { for (uint8_t i = 1; i < KEYLOGGER_LENGTH; i++) {
keylog_str[i-1] = keylog_str[i]; keylog_str[i - 1] = keylog_str[i];
} }
if (keycode < (sizeof(code_to_name) / sizeof(char))) { if (keycode < (sizeof(code_to_name) / sizeof(char))) {
@ -92,14 +92,18 @@ void render_keylogger_status(void) {
void render_default_layer_state(void) { void render_default_layer_state(void) {
oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false); oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
switch (get_highest_layer(default_layer_state)) { switch (get_highest_layer(default_layer_state)) {
case _QWERTY: oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false); break; case _QWERTY:
case _COLEMAK: oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false); break; oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false);
case _DVORAK: oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false); break; break;
case _WORKMAN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_WORKMAN), false); break; case _COLEMAK_DH:
case _NORMAN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_NORMAN), false); break; oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK_DH), false);
case _MALTRON: oled_write_P(PSTR(OLED_RENDER_LAYOUT_MALTRON), false); break; break;
case _EUCALYN: oled_write_P(PSTR(OLED_RENDER_LAYOUT_EUCALYN), false); break; case _COLEMAK:
case _CARPLAX: oled_write_P(PSTR(OLED_RENDER_LAYOUT_CARPLAX), false); break; oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false);
break;
case _DVORAK:
oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false);
break;
} }
#ifdef OLED_DISPLAY_128X64 #ifdef OLED_DISPLAY_128X64
oled_advance_page(true); oled_advance_page(true);
@ -336,8 +340,8 @@ void render_status_secondary(void) {
render_default_layer_state(); render_default_layer_state();
render_layer_state(); render_layer_state();
render_mod_status(get_mods() | get_oneshot_mods()); render_mod_status(get_mods() | get_oneshot_mods());
// render_keylogger_status();
render_keylock_status(host_keyboard_leds()); // render_keylock_status(host_keyboard_leds());
} }
void render_status_main(void) { void render_status_main(void) {
@ -360,7 +364,7 @@ void render_status_main(void) {
render_bootmagic_status(); render_bootmagic_status();
render_user_status(); render_user_status();
render_keylogger_status(); // render_keylogger_status();
} }
__attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; } __attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; }
@ -382,8 +386,15 @@ void oled_task_user(void) {
} else { } else {
oled_on(); oled_on();
} }
render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) }
if (is_keyboard_left()) {
render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else { } else {
render_status_secondary(); render_status_secondary();
} }
if (is_keyboard_master()) {
render_keylogger_status();
} else {
render_keylock_status(host_keyboard_leds());
}
} }

View file

@ -29,6 +29,7 @@ extern uint32_t oled_timer;
# define OLED_RENDER_LAYOUT_NAME "Layout: " # define OLED_RENDER_LAYOUT_NAME "Layout: "
# define OLED_RENDER_LAYOUT_QWERTY "Qwerty" # define OLED_RENDER_LAYOUT_QWERTY "Qwerty"
# define OLED_RENDER_LAYOUT_COLEMAK_DH "Colemak-DH"
# define OLED_RENDER_LAYOUT_COLEMAK "Colemak" # define OLED_RENDER_LAYOUT_COLEMAK "Colemak"
# define OLED_RENDER_LAYOUT_DVORAK "Dvorak" # define OLED_RENDER_LAYOUT_DVORAK "Dvorak"
# define OLED_RENDER_LAYOUT_WORKMAN "Workman" # define OLED_RENDER_LAYOUT_WORKMAN "Workman"
@ -73,6 +74,7 @@ extern uint32_t oled_timer;
# define OLED_RENDER_LAYOUT_NAME "Lyout" # define OLED_RENDER_LAYOUT_NAME "Lyout"
# define OLED_RENDER_LAYOUT_QWERTY " QRTY" # define OLED_RENDER_LAYOUT_QWERTY " QRTY"
# define OLED_RENDER_LAYOUT_COLEMAK_DH " cmDH"
# define OLED_RENDER_LAYOUT_COLEMAK " COLE" # define OLED_RENDER_LAYOUT_COLEMAK " COLE"
# define OLED_RENDER_LAYOUT_DVORAK " DVRK" # define OLED_RENDER_LAYOUT_DVORAK " DVRK"
# define OLED_RENDER_LAYOUT_WORKMAN " WKMN" # define OLED_RENDER_LAYOUT_WORKMAN " WKMN"

View file

@ -29,10 +29,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// If console is enabled, it will print the matrix position and status of each key pressed // If console is enabled, it will print the matrix position and status of each key pressed
#ifdef KEYLOGGER_ENABLE #ifdef KEYLOGGER_ENABLE
uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
#endif // KEYLOGGER_ENABLE #endif // KEYLOGGER_ENABLE
#ifdef OLED_DRIVER_ENABLE #ifdef OLED_DRIVER_ENABLE
process_record_user_oled(keycode, record); process_record_user_oled(keycode, record);
#endif // OLED #endif // OLED
if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record) if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record)
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
@ -46,20 +46,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
switch (keycode) { switch (keycode) {
case KC_QWERTY ... KC_WORKMAN: case FIRST_DEFAULT_LAYER_KEYCODE ... LAST_DEFAULT_LAYER_KEYCODE:
if (record->event.pressed) { if (record->event.pressed) {
uint8_t mods = mod_config(get_mods() | get_oneshot_mods()); uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
if (!mods) { if (!mods) {
set_single_persistent_default_layer(keycode - KC_QWERTY); set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE);
#if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3)
} else if (mods & MOD_MASK_SHIFT) { } else if (mods & MOD_MASK_SHIFT) {
set_single_persistent_default_layer(keycode - KC_QWERTY + 4); set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE + 4);
# if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7)
} else if (mods & MOD_MASK_CTRL) { } else if (mods & MOD_MASK_CTRL) {
set_single_persistent_default_layer(keycode - KC_QWERTY + 8); set_single_persistent_default_layer(keycode - FIRST_DEFAULT_LAYER_KEYCODE + 8);
# endif
#endif
} }
} }
break; break;
case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
if (!record->event.pressed) { if (!record->event.pressed) {
#ifndef MAKE_BOOTLOADER #ifndef MAKE_BOOTLOADER
uint8_t temp_mod = mod_config(get_mods()); uint8_t temp_mod = mod_config(get_mods());
@ -79,55 +84,63 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif #endif
} }
send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY); send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY);
#ifdef RGB_MATRIX_SPLIT_RIGHT #ifdef CONVERT_TO_PROTON_C
send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes"), TAP_CODE_DELAY); send_string_with_delay_P(PSTR(" -e CTPC=yes"), TAP_CODE_DELAY);
# ifndef OLED_DRIVER_ENABLE
send_string_with_delay_P(PSTR(" OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY);
# endif
#endif #endif
send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY); send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
} }
break; break;
case VRSN: // Prints firmware version case VRSN: // Prints firmware version
if (record->event.pressed) { send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY); } if (record->event.pressed) {
send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
}
break; break;
case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
if (record->event.pressed) { if (record->event.pressed) {
for (uint8_t index = 0; index < 4; index++) { diablo_timer[index].key_interval = 0; } for (uint8_t index = 0; index < 4; index++) {
diablo_timer[index].key_interval = 0;
}
} }
#endif // TAP_DANCE_ENABLE #endif // TAP_DANCE_ENABLE
break; break;
case KC_CCCV: // One key copy/paste case KC_CCCV: // One key copy/paste
if (record->event.pressed) { if (record->event.pressed) {
copy_paste_timer = timer_read(); copy_paste_timer = timer_read();
} else { } else {
if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
tap_code16(LCTL(KC_C)); tap_code16(LCTL(KC_C));
} else { // Tap, paste } else { // Tap, paste
tap_code16(LCTL(KC_V)); tap_code16(LCTL(KC_V));
} }
} }
break; break;
#ifdef UNICODE_ENABLE #ifdef UNICODE_ENABLE
case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻ case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
if (record->event.pressed) { send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻"); } if (record->event.pressed) {
send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
}
break; break;
case UC_TABL: // ┬─┬ノ( º _ ºノ) case UC_TABL: // ┬─┬ノ( º _ ºノ)
if (record->event.pressed) { send_unicode_string("┬─┬ノ( º _ ºノ)"); } if (record->event.pressed) {
send_unicode_string("┬─┬ノ( º _ ºノ)");
}
break; break;
case UC_SHRG: // ¯\_(ツ)_/¯ case UC_SHRG: // ¯\_(ツ)_/¯
if (record->event.pressed) { send_unicode_string("¯\\_(ツ)_/¯"); } if (record->event.pressed) {
send_unicode_string("¯\\_(ツ)_/¯");
}
break; break;
case UC_DISA: // ಠ_ಠ case UC_DISA: // ಠ_ಠ
if (record->event.pressed) { send_unicode_string("ಠ_ಠ"); } if (record->event.pressed) {
send_unicode_string("ಠ_ಠ");
}
break; break;
#endif #endif
case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
if (record->event.pressed) { if (record->event.pressed) {
userspace_config.rgb_layer_change ^= 1; userspace_config.rgb_layer_change ^= 1;
@ -137,14 +150,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
rgblight_enable_noeeprom(); rgblight_enable_noeeprom();
# endif # endif
layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE) # if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
} else { } else {
rgblight_disable_noeeprom(); rgblight_disable_noeeprom();
# endif # endif
} }
} }
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
break; break;
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
@ -164,7 +177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
return false; return false;
break; break;
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
if (record->event.pressed) { if (record->event.pressed) {
bool is_eeprom_updated; bool is_eeprom_updated;
# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES) # if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
@ -182,7 +195,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
is_eeprom_updated = true; is_eeprom_updated = true;
} }
# endif # endif
if (is_eeprom_updated) { eeconfig_update_user(userspace_config.raw); } if (is_eeprom_updated) {
eeconfig_update_user(userspace_config.raw);
}
} }
#endif #endif
} }

View file

@ -24,51 +24,70 @@
#endif #endif
enum userspace_custom_keycodes { enum userspace_custom_keycodes {
VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
KC_QWERTY, // Sets default layer to QWERTY KC_QWERTY, // Sets default layer to QWERTY
KC_COLEMAK, // Sets default layer to COLEMAK FIRST_DEFAULT_LAYER_KEYCODE = KC_QWERTY, // Sets default layer to QWERTY
KC_DVORAK, // Sets default layer to DVORAK KC_COLEMAK_DH, // Sets default layer to COLEMAK
KC_WORKMAN, // Sets default layer to WORKMAN KC_COLEMAK, // Sets default layer to COLEMAK
KC_DIABLO_CLEAR, // Clears all Diablo Timers KC_DVORAK, // Sets default layer to DVORAK
KC_MAKE, // Run keyboard's customized make command LAST_DEFAULT_LAYER_KEYCODE = KC_DVORAK, // Sets default layer to WORKMAN
KC_RGB_T, // Toggles RGB Layer Indication mode KC_DIABLO_CLEAR, // Clears all Diablo Timers
RGB_IDL, // RGB Idling animations KC_MAKE, // Run keyboard's customized make command
KC_SECRET_1, // test1 KC_RGB_T, // Toggles RGB Layer Indication mode
KC_SECRET_2, // test2 RGB_IDL, // RGB Idling animations
KC_SECRET_3, // test3 KC_SECRET_1, // test1
KC_SECRET_4, // test4 KC_SECRET_2, // test2
KC_SECRET_5, // test5 KC_SECRET_3, // test3
KC_CCCV, // Hold to copy, tap to paste KC_SECRET_4, // test4
KC_NUKE, // NUCLEAR LAUNCH DETECTED!!! KC_SECRET_5, // test5
UC_FLIP, // (ಠ痊ಠ)┻━┻ KC_CCCV, // Hold to copy, tap to paste
UC_TABL, // ┬─┬ノ( º _ ºノ) KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
UC_SHRG, // ¯\_(ツ)_/¯ UC_FLIP, // (ಠ痊ಠ)┻━┻
UC_DISA, // ಠ_ಠ UC_TABL, // ┬─┬ノ( º _ ºノ)
NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes UC_SHRG, // ¯\_(ツ)_/¯
UC_DISA, // ಠ_ಠ
NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
}; };
bool process_record_secrets(uint16_t keycode, keyrecord_t *record); bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
bool process_record_keymap(uint16_t keycode, keyrecord_t *record); bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
#define LOWER MO(_LOWER) #define LOWER MO(_LOWER)
#define RAISE MO(_RAISE) #define RAISE MO(_RAISE)
#define ADJUST MO(_ADJUST) #define ADJUST MO(_ADJUST)
#define TG_MODS OS_TOGG #define TG_MODS OS_TOGG
#define TG_GAME TG(_GAMEPAD) #define TG_GAME TG(_GAMEPAD)
#define TG_DBLO TG(_DIABLO) #define TG_DBLO TG(_DIABLO)
#define OS_LWR OSL(_LOWER) #define OS_LWR OSL(_LOWER)
#define OS_RSE OSL(_RAISE) #define OS_RSE OSL(_RAISE)
#define KC_SEC1 KC_SECRET_1 #define KC_SEC1 KC_SECRET_1
#define KC_SEC2 KC_SECRET_2 #define KC_SEC2 KC_SECRET_2
#define KC_SEC3 KC_SECRET_3 #define KC_SEC3 KC_SECRET_3
#define KC_SEC4 KC_SECRET_4 #define KC_SEC4 KC_SECRET_4
#define KC_SEC5 KC_SECRET_5 #define KC_SEC5 KC_SECRET_5
#define QWERTY KC_QWERTY #define QWERTY KC_QWERTY
#define DVORAK KC_DVORAK #define DVORAK KC_DVORAK
#define COLEMAK KC_COLEMAK #define COLEMAK KC_COLEMAK
#define WORKMAN KC_WORKMAN #define COLEMAKDH KC_COLEMAK_DH
#define DEFLYR1 FIRST_DEFAULT_LAYER_KEYCODE
#define DEFLYR2 (FIRST_DEFAULT_LAYER_KEYCODE + 1)
#define DEFLYR3 (FIRST_DEFAULT_LAYER_KEYCODE + 2)
#define DEFLYR4 (FIRST_DEFAULT_LAYER_KEYCODE + 3)
#if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 3)
# define DEFLYR5 (FIRST_DEFAULT_LAYER_KEYCODE + 4)
# define DEFLYR6 (FIRST_DEFAULT_LAYER_KEYCODE + 5)
# define DEFLYR7 (FIRST_DEFAULT_LAYER_KEYCODE + 6)
# define DEFLYR8 (FIRST_DEFAULT_LAYER_KEYCODE + 7)
# if LAST_DEFAULT_LAYER_KEYCODE > (FIRST_DEFAULT_LAYER_KEYCODE + 7)
# define DEFLYR9 (FIRST_DEFAULT_LAYER_KEYCODE + 8)
# define DEFLYR10 (FIRST_DEFAULT_LAYER_KEYCODE + 9)
# define DEFLYR11 (FIRST_DEFAULT_LAYER_KEYCODE + 10)
# define DEFLYR12 (FIRST_DEFAULT_LAYER_KEYCODE + 11)
# endif
#endif
#define KC_RESET RESET #define KC_RESET RESET
#define KC_RST KC_RESET #define KC_RST KC_RESET
@ -77,9 +96,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
# define KC_C1R3 SH_T(KC_TAB) # define KC_C1R3 SH_T(KC_TAB)
#elif defined(DRASHNA_LP) #elif defined(DRASHNA_LP)
# define KC_C1R3 TG(_GAMEPAD) # define KC_C1R3 TG(_GAMEPAD)
#else // SWAP_HANDS_ENABLE #else // SWAP_HANDS_ENABLE
# define KC_C1R3 KC_TAB # define KC_C1R3 KC_TAB
#endif // SWAP_HANDS_ENABLE #endif // SWAP_HANDS_ENABLE
#define BK_LWER LT(_LOWER, KC_BSPC) #define BK_LWER LT(_LOWER, KC_BSPC)
#define SP_LWER LT(_LOWER, KC_SPC) #define SP_LWER LT(_LOWER, KC_SPC)

View file

@ -28,24 +28,30 @@ static uint32_t hypno_timer;
void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type, uint8_t led_min, uint8_t led_max) { void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type, uint8_t led_min, uint8_t led_max) {
HSV hsv = {hue, sat, val}; HSV hsv = {hue, sat, val};
if (hsv.v > rgb_matrix_get_val()) { hsv.v = rgb_matrix_get_val(); } if (hsv.v > rgb_matrix_get_val()) {
hsv.v = rgb_matrix_get_val();
}
switch (mode) { switch (mode) {
case 1: // breathing case 1: // breathing
{ {
uint16_t time = scale16by8(g_rgb_timer, speed / 8); uint16_t time = scale16by8(g_rgb_timer, speed / 8);
hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
RGB rgb = hsv_to_rgb(hsv); RGB rgb = hsv_to_rgb(hsv);
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); } if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
}
} }
break; break;
} }
default: // Solid Color default: // Solid Color
{ {
RGB rgb = hsv_to_rgb(hsv); RGB rgb = hsv_to_rgb(hsv);
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); } if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
}
} }
break; break;
} }
@ -56,30 +62,38 @@ __attribute__((weak)) void rgb_matrix_indicator_keymap(void) {}
void matrix_scan_rgb_matrix(void) { void matrix_scan_rgb_matrix(void) {
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && sync_timer_elapsed32(hypno_timer) > 15000) { rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); } if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && sync_timer_elapsed32(hypno_timer) > 15000) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
}
#endif #endif
rgb_matrix_indicator_keymap(); rgb_matrix_indicator_keymap();
} }
void keyboard_post_init_rgb_matrix(void) { void keyboard_post_init_rgb_matrix(void) {
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
if (userspace_config.rgb_matrix_idle_anim) { rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); } if (userspace_config.rgb_matrix_idle_anim) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
}
#endif #endif
} }
bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) { bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) {
#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) #if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
hypno_timer = sync_timer_read32(); hypno_timer = sync_timer_read32();
if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) { rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); } if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
}
#endif #endif
switch (keycode) { switch (keycode) {
case RGB_IDL: // This allows me to use underglow as layer indication, or as normal case RGB_IDL: // This allows me to use underglow as layer indication, or as normal
#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) #if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
if (record->event.pressed) { if (record->event.pressed) {
userspace_config.rgb_matrix_idle_anim ^= 1; userspace_config.rgb_matrix_idle_anim ^= 1;
dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
eeconfig_update_user(userspace_config.raw); eeconfig_update_user(userspace_config.raw);
if (userspace_config.rgb_matrix_idle_anim) { rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); } if (userspace_config.rgb_matrix_idle_anim) {
rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
}
} }
#endif #endif
break; break;

View file

@ -28,7 +28,7 @@ void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight
static rgblight_fadeout lights[RGBLED_NUM]; static rgblight_fadeout lights[RGBLED_NUM];
/* Handler for fading/twinkling effect */ /* Handler for fading/twinkling effect */
void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive
bool litup = false; bool litup = false;
for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) { for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) {
@ -38,15 +38,21 @@ void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgb
if (light->life) { if (light->life) {
light->life -= 1; light->life -= 1;
if (get_highest_layer(layer_state) == 0) { sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]); } if (get_highest_layer(layer_state) == 0) {
sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]);
}
light->timer = sync_timer_read(); light->timer = sync_timer_read();
} else { } else {
if (light->enabled && get_highest_layer(layer_state) == 0) { rgblight_sethsv_default_helper(light_index); } if (light->enabled && get_highest_layer(layer_state) == 0) {
rgblight_sethsv_default_helper(light_index);
}
litup = light->enabled = false; litup = light->enabled = false;
} }
} }
} }
if (litup && get_highest_layer(layer_state) == 0) { rgblight_set(); } if (litup && get_highest_layer(layer_state) == 0) {
rgblight_set();
}
} }
/* Triggers a LED to fade/twinkle. /* Triggers a LED to fade/twinkle.
@ -92,7 +98,9 @@ void start_rgb_light(void) {
bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) { bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
uint16_t temp_keycode = keycode; uint16_t temp_keycode = keycode;
// Filter out the actual keycode from MT and LT keys. // Filter out the actual keycode from MT and LT keys.
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { temp_keycode &= 0xFF; } if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
temp_keycode &= 0xFF;
}
switch (temp_keycode) { switch (temp_keycode) {
# ifdef RGBLIGHT_TWINKLE # ifdef RGBLIGHT_TWINKLE
@ -102,9 +110,11 @@ bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
case KC_KP_SLASH ... KC_KP_DOT: case KC_KP_SLASH ... KC_KP_DOT:
case KC_F13 ... KC_F24: case KC_F13 ... KC_F24:
case KC_AUDIO_MUTE ... KC_MEDIA_REWIND: case KC_AUDIO_MUTE ... KC_MEDIA_REWIND:
if (record->event.pressed) { start_rgb_light(); } if (record->event.pressed) {
start_rgb_light();
}
break; break;
# endif // RGBLIGHT_TWINKLE # endif // RGBLIGHT_TWINKLE
} }
return true; return true;
} }
@ -119,7 +129,9 @@ static uint16_t rgblight_startup_loop_timer;
void keyboard_post_init_rgb_light(void) { void keyboard_post_init_rgb_light(void) {
# if defined(RGBLIGHT_STARTUP_ANIMATION) # if defined(RGBLIGHT_STARTUP_ANIMATION)
is_enabled = rgblight_is_enabled(); is_enabled = rgblight_is_enabled();
if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); } if (userspace_config.rgb_layer_change) {
rgblight_enable_noeeprom();
}
if (rgblight_is_enabled()) { if (rgblight_is_enabled()) {
layer_state_set_rgb_light(layer_state); layer_state_set_rgb_light(layer_state);
old_hue = rgblight_get_hue(); old_hue = rgblight_get_hue();
@ -133,7 +145,7 @@ void keyboard_post_init_rgb_light(void) {
void matrix_scan_rgb_light(void) { void matrix_scan_rgb_light(void) {
# ifdef RGBLIGHT_TWINKLE # ifdef RGBLIGHT_TWINKLE
scan_rgblight_fadeout(); scan_rgblight_fadeout();
# endif // RGBLIGHT_ENABLE # endif // RGBLIGHT_ENABLE
# if defined(RGBLIGHT_STARTUP_ANIMATION) # if defined(RGBLIGHT_STARTUP_ANIMATION)
if (is_rgblight_startup && is_keyboard_master()) { if (is_rgblight_startup && is_keyboard_master()) {
@ -144,8 +156,12 @@ void matrix_scan_rgb_light(void) {
rgblight_startup_loop_timer = sync_timer_read(); rgblight_startup_loop_timer = sync_timer_read();
if (counter == 255) { if (counter == 255) {
is_rgblight_startup = false; is_rgblight_startup = false;
if (!is_enabled) { rgblight_disable_noeeprom(); } if (!is_enabled) {
if (userspace_config.rgb_layer_change) { layer_state_set_rgb_light(layer_state); } rgblight_disable_noeeprom();
}
if (userspace_config.rgb_layer_change) {
layer_state_set_rgb_light(layer_state);
}
} }
} }
} }
@ -162,26 +178,48 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) {
# ifdef RGBLIGHT_ENABLE # ifdef RGBLIGHT_ENABLE
if (userspace_config.rgb_layer_change) { if (userspace_config.rgb_layer_change) {
switch (get_highest_layer(state | default_layer_state)) { switch (get_highest_layer(state | default_layer_state)) {
case _MACROS: // mouse case _MOUSE: // mouse
if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) { rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3); } if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) {
# if defined(RGBLIGHT_EFFECT_TWINKLE)
rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_TWINKLE + 5);
# else
rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3);
# endif
}
break;
case _MEDIA:
rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1);
break;
case _GAMEPAD:
rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2);
break;
case _DIABLO:
rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3);
break;
case _RAISE:
rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3);
break;
case _LOWER:
rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
break;
case _ADJUST:
rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2);
break;
case _DEFAULT_LAYER_1:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_1_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break;
case _DEFAULT_LAYER_2:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_2_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break;
case _DEFAULT_LAYER_3:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_3_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break;
case _DEFAULT_LAYER_4:
rgblight_set_hsv_and_mode(DEFAULT_LAYER_4_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
break; break;
case _MEDIA: rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1); break;
case _GAMEPAD: rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2); break;
case _DIABLO: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3); break;
case _RAISE: rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3); break;
case _LOWER: rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3); break;
case _ADJUST: rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2); break;
case _COLEMAK: rgblight_set_hsv_and_mode(HSV_MAGENTA, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _DVORAK: rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _WORKMAN: rgblight_set_hsv_and_mode(HSV_GOLDENROD, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _NORMAN: rgblight_set_hsv_and_mode(HSV_CORAL, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _MALTRON: rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _EUCALYN: rgblight_set_hsv_and_mode(HSV_PINK, RGBLIGHT_MODE_STATIC_LIGHT); break;
case _CARPLAX: rgblight_set_hsv_and_mode(HSV_BLUE, RGBLIGHT_MODE_STATIC_LIGHT); break;
default: rgblight_set_hsv_and_mode(HSV_CYAN, RGBLIGHT_MODE_STATIC_LIGHT); break;
} }
} }
# endif // RGBLIGHT_ENABLE # endif // RGBLIGHT_ENABLE
return state; return state;
} }

View file

@ -68,6 +68,7 @@ CUSTOM_OLED_DRIVER ?= yes
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
ifeq ($(strip $(CUSTOM_OLED_DRIVER)), yes) ifeq ($(strip $(CUSTOM_OLED_DRIVER)), yes)
SRC += oled_stuff.c SRC += oled_stuff.c
OPT_DEFS += -DCUSTOM_OLED_DRIVER_CODE
endif endif
endif endif
@ -78,31 +79,8 @@ ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes)
QUANTUM_LIB_SRC += i2c_master.c QUANTUM_LIB_SRC += i2c_master.c
endif endif
CUSTOM_SPLIT_TRANSPORT ?= yes
ifeq ($(strip $(SPLIT_KEYBOARD)), yes) ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
QUANTUM_LIB_SRC += transport_sync.c QUANTUM_LIB_SRC += transport_sync.c
# ifneq ($(strip $(SPLIT_TRANSPORT)), custom)
# ifeq ($(strip $(CUSTOM_SPLIT_TRANSPORT)), yes)
# SPLIT_TRANSPORT = custom
# QUANTUM_LIB_SRC += drashna_transport.c
# OPT_DEFS += -DDRASHNA_CUSTOM_TRANSPORT
# # Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
# ifeq ($(PLATFORM),AVR)
# ifneq ($(NO_I2C),yes)
# QUANTUM_LIB_SRC += i2c_master.c \
# i2c_slave.c
# endif
# endif
# SERIAL_DRIVER ?= bitbang
# OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
# ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
# QUANTUM_LIB_SRC += serial.c
# else
# QUANTUM_LIB_SRC += serial_$(strip $(SERIAL_DRIVER)).c
# endif
# endif
# endif
endif endif
# DEBUG_MATRIX_SCAN_RATE_ENABLE = api # DEBUG_MATRIX_SCAN_RATE_ENABLE = api

View file

@ -26,7 +26,7 @@ uint8_t diablo_times[] = {0, 1, 3, 5, 10, 30};
// Cycle through the times for the macro, starting at 0, for disabled. // Cycle through the times for the macro, starting at 0, for disabled.
void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) { void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {
diable_keys_t *diablo_keys = (diable_keys_t *)user_data; diable_keys_t *diablo_keys = (diable_keys_t *)user_data;
// Sets the keycode based on the index // Sets the keycode based on the index
diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode; diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode;
@ -34,7 +34,7 @@ void diablo_tapdance_master(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) { if (state->count >= (sizeof(diablo_times) / sizeof(uint8_t))) {
diablo_timer[diablo_keys->index].key_interval = 0; diablo_timer[diablo_keys->index].key_interval = 0;
reset_tap_dance(state); reset_tap_dance(state);
} else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one) } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one)
diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1]; diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1];
} }
} }
@ -64,7 +64,9 @@ void run_diablo_macro_check(void) {
// reset the timer, since enough time has passed // reset the timer, since enough time has passed
diablo_timer[index].timer = timer_read(); diablo_timer[index].timer = timer_read();
// send keycode ONLY if we're on the diablo layer. // send keycode ONLY if we're on the diablo layer.
if (IS_LAYER_ON(_DIABLO)) { tap_code(diablo_timer[index].keycode); } if (IS_LAYER_ON(_DIABLO)) {
tap_code(diablo_timer[index].keycode);
}
} }
} }
} }

View file

@ -35,12 +35,10 @@ extern diablo_timer_t diablo_timer[];
void run_diablo_macro_check(void); void run_diablo_macro_check(void);
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
// clang-format off
enum { enum {
TD_D3_1 = 0, TD_D3_1 = 0,
TD_D3_2, TD_D3_2,
TD_D3_3, TD_D3_3,
TD_D3_4 TD_D3_4,
}; };
// clang-format on #endif // TAP_DANCE_ENABLE
#endif // TAP_DANCE_ENABLE

View file

@ -54,7 +54,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
case VRSN: case VRSN:
if (record->event.pressed) { SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } if (record->event.pressed) {
SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false; return false;
break; break;
} }
@ -87,7 +89,7 @@ __attribute__((weak)) void startup_keymap(void) {}
void startup_user(void) { void startup_user(void) {
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
matrix_init_rgb(); matrix_init_rgb();
#endif // RGBLIGHT_ENABLE #endif // RGBLIGHT_ENABLE
startup_keymap(); startup_keymap();
} }

View file

@ -24,8 +24,8 @@
#define BASE 0 #define BASE 0
enum custom_keycodes { enum custom_keycodes {
VRSN = SAFE_RANGE, // can always be here VRSN = SAFE_RANGE, // can always be here
KC_MAKE, KC_MAKE,
KC_RESET, KC_RESET,
NEWPLACEHOLDER // use "NEWPLACEHOLDER for keymap specific codes NEWPLACEHOLDER // use "NEWPLACEHOLDER for keymap specific codes
}; };

View file

@ -1,10 +1,10 @@
#ifdef SPLIT_TRANSACTION_IDS_USER #ifdef SPLIT_TRANSACTION_IDS_USER
#include "transport_sync.h" # include "transport_sync.h"
#include "transactions.h" # include "transactions.h"
#include <string.h> # include <string.h>
typedef struct { typedef struct {
bool oled_on; bool oled_on;
uint16_t keymap_config; uint16_t keymap_config;
} user_runtime_config_t; } user_runtime_config_t;
@ -23,20 +23,19 @@ void keyboard_post_init_transport_sync(void) {
void user_state_update(void) { void user_state_update(void) {
if (is_keyboard_master()) { if (is_keyboard_master()) {
# ifdef OLED_DRIVER_ENABLE
#ifdef OLED_DRIVER_ENABLE
user_state.oled_on = is_oled_on(); user_state.oled_on = is_oled_on();
#endif # endif
user_state.keymap_config = keymap_config.raw; user_state.keymap_config = keymap_config.raw;
} else { } else {
#ifdef OLED_DRIVER_ENABLE # ifdef OLED_DRIVER_ENABLE
if (user_state.oled_on) { if (user_state.oled_on) {
oled_on(); oled_on();
} else { } else {
oled_off(); oled_off();
} }
#endif # endif
if (keymap_config.raw != user_state.keymap_config) { if (keymap_config.raw != user_state.keymap_config) {
keymap_config.raw = user_state.keymap_config; keymap_config.raw = user_state.keymap_config;
} }

View file

@ -60,120 +60,120 @@ NOTE: These are all the same length. If you do a search/replace
#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH #define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y #define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I #define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X #define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L #define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH #define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y #define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U #define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X #define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L #define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH #define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z #define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B #define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G #define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V #define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN #define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT #define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT
#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH #define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K #define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G #define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B #define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN #define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT #define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT
#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH #define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH
#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B #define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F #define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM #define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L #define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT #define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT
#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X #define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
#define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN #define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U #define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F #define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F
#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P #define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT #define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT
#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH #define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH
// Qwerty-like // Qwerty-like
#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W #define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R #define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X #define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J #define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT #define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT
#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH #define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
// Colemak like // Colemak like
#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W #define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R #define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J #define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN #define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT #define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH #define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
// colemak like, zxcv fixed // colemak like, zxcv fixed
#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W #define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R #define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J #define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN #define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT #define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH #define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
// teeheehee // teeheehee
#define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L #define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L
#define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G #define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G
#define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A #define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A
#define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H #define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H
#define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT #define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT
#define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH #define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH
#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT #define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B #define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q #define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U #define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I #define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I
#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z #define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z #define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM #define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH #define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J #define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE #define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y #define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z #define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM #define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH #define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J #define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE #define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y #define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
@ -181,35 +181,35 @@ NOTE: These are all the same length. If you do a search/replace
#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 #define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 #define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define ___________________BLANK___________________ _______, _______, _______, _______, _______ #define ___________________BLANK___________________ _______, _______, _______, _______, _______
#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC #define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________ #define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________ #define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN #define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR #define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
#define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END #define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________ #define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
#define _________________RAISE_L2__________________ ___________________BLANK___________________ #define _________________RAISE_L2__________________ ___________________BLANK___________________
#define _________________RAISE_L3__________________ ___________________BLANK___________________ #define _________________RAISE_L3__________________ ___________________BLANK___________________
#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________ #define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC #define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
#define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT #define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG #define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM #define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM
#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T #define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5 #define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
#define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN #define _________________ADJUST_R2_________________ CG_SWAP, DEFLYR1, DEFLYR2, DEFLYR3, DEFLYR4
#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT #define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
// clang-format on // clang-format on