Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup personal keymap and remove unused features #21061

Merged
merged 7 commits into from
May 31, 2023
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,6 @@
# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif

// If RGBLight is enabled
#ifdef RGBLIGHT_ENABLE
# define RGBLED_NUM RGB_MATRIX_LED_COUNT

# define RGBLIGHT_EFFECT_SNAKE
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
#endif

// Feature disable
#ifndef NO_PRINT
# define NO_PRINT
Expand Down
182 changes: 77 additions & 105 deletions keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
#include QMK_KEYBOARD_H

enum custom_keycodes {
NULLKEY = SAFE_RANGE, // An empty key to start (and maybe end) the enum
NULLKEY = SAFE_RANGE, // An empty key to start (and maybe end) the enum
#ifdef DYNAMIC_MACRO_ENABLE
MCR_PLY, // Macro play
MCR_REC, // Macro record
MCR_SWT, // Swap active macro
#endif
MCR_PLY, // Macro play
MCR_REC, // Macro record
MCR_SWT, // Swap active macro
#endif // DYNAMIC_MACRO_ENABLE
#ifdef MOUSEKEY_ENABLE
MS_ACL_U,
MS_ACL_D,
#endif
MS_ACL_U, // Mouse speed up
MS_ACL_D, // Mouse speed down
#endif // MOUSEKEY_ENABLE
CoffeeIsLife87 marked this conversation as resolved.
Show resolved Hide resolved
};

enum layout_names {
Expand All @@ -35,25 +35,25 @@ static int current_accel = 0;
#endif // MOUSEKEY_ENABLE

#ifdef DYNAMIC_MACRO_ENABLE
// Macro 1 is = 1, Macro 2 = -1, No macro = 0
static bool MACRO1 = true;
static bool RECORDING = false;

static uint16_t REC = DM_REC1;
static uint16_t PLY = DM_PLY1;
// Macro 1 is = 1, Macro 2 = -1, No macro = 0
static bool MACRO1 = true; // Determines whether or not we're using 1 or 2
static bool RECORDING = false;
static uint16_t REC = DM_REC1; // Record either macro 1 or 2. Or stop recording
static uint16_t PLY = DM_PLY1; // Play either macro 1 or macro 2

void dynamic_macro_record_start_user(void) {
REC = DM_RSTP;
RECORDING = true;
}

void dynamic_macro_record_start_user(void) {
REC = DM_RSTP;
RECORDING = true;
}
void dynamic_macro_record_end_user(int8_t direction) {
RECORDING = false;
}
void dynamic_macro_record_end_user(int8_t direction) {
RECORDING = false;
}
#else
#define MCR_PLY KC_NO
#define MCR_REC KC_NO
#define MCR_SWT KC_NO
#endif
#define MCR_PLY KC_NO
#define MCR_REC KC_NO
#define MCR_SWT KC_NO
#endif // DYNAMIC_MACRO_ENABLE

const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT_planck_mit(
Expand Down Expand Up @@ -84,73 +84,62 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = {
#endif // MOUSEKEY_ENABLE
};

#define LAYER (get_highest_layer(layer_state))
#define LAYER_SIZE (MATRIX_ROWS * MATRIX_COLS)
#define CHECK_LED() \
if ((i >= RGB_MATRIX_LED_COUNT) \
|| ((g_led_config.flags[pos] == LED_FLAG_NONE) || (g_led_config.flags[pos] == LED_FLAG_UNDERGLOW))) \
continue

#ifdef RGB_MATRIX_ENABLE

#ifdef UNDERGLOW_DISABLE
void keyboard_pre_init_user(void) {
#define LAYER (get_highest_layer(layer_state))
#define LAYER_SIZE (MATRIX_ROWS * MATRIX_COLS)
#define BRIGHTNESS rgb_matrix_get_val()

for (int key_id = 0; key_id < RGB_MATRIX_LED_COUNT; key_id++ ) {
if (g_led_config.flags[key_id] == LED_FLAG_UNDERGLOW) {
g_led_config.flags[key_id] = LED_FLAG_NONE;
}
#ifdef UNDERGLOW_DISABLE
void keyboard_pre_init_user(void) {
for (int key_id = 0; key_id < RGB_MATRIX_LED_COUNT; key_id++ ) {
if (g_led_config.flags[key_id] == LED_FLAG_UNDERGLOW) {
g_led_config.flags[key_id] = LED_FLAG_NONE;
}
}
#endif

bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (LAYER != _MAIN) {

int DimmedMax = UINT8_MAX - (UINT8_MAX - rgb_matrix_config.hsv.v);

for (uint8_t i = led_min; i <= led_max; i++) {
}
#endif // UNDERGLOW_DISABLE

uint8_t pos = ((uint8_t*)g_led_config.matrix_co)[i];
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (LAYER == _MAIN) {return false;}

CHECK_LED(); // Check LED before moving on
uint16_t KC = pgm_read_word(&((uint16_t*)keymaps)[(LAYER_SIZE * LAYER) + i]);
for (uint8_t i = led_min; i <= led_max; i++) {
uint8_t pos = ((uint8_t*)g_led_config.matrix_co)[i];
if (!HAS_ANY_FLAGS(g_led_config.flags[pos], (LED_FLAG_MODIFIER | LED_FLAG_KEYLIGHT))) {continue;}
uint16_t KC = pgm_read_word(&((uint16_t*)keymaps)[(LAYER_SIZE * LAYER) + i]);

if (KC == KC_NO) {
RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, 0, 0 );
}
switch (KC) {
case KC_NO:
RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, 0, 0 );
break;

#ifdef DYNAMIC_MACRO_ENABLE
else if (KC == MCR_SWT) {
if (!MACRO1) {
RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, DimmedMax, DimmedMax);
}
} else if (KC == MCR_REC) {
if (RECORDING) {
RGB_MATRIX_INDICATOR_SET_COLOR(pos, DimmedMax, 0, 0);
}
}
#endif
#ifdef DYNAMIC_MACRO_ENABLE
case MCR_SWT:
if (!MACRO1) { RGB_MATRIX_INDICATOR_SET_COLOR(pos, 0, BRIGHTNESS, BRIGHTNESS); }
break;

}
case MCR_REC:
if (RECORDING) { RGB_MATRIX_INDICATOR_SET_COLOR(pos, BRIGHTNESS, 0, 0); }
break;
#endif // DYNAMIC_MACRO_ENABLE
}
return false;
}
return false;
}
#endif

bool process_record_user(uint16_t keycode, keyrecord_t *record) {

#ifdef DYNAMIC_MACRO_ENABLE
if (keycode == MCR_REC) keycode = REC;
if (keycode == MCR_PLY) keycode = PLY;
if (!process_dynamic_macro(keycode, record)) {
REC = (MACRO1 ? DM_REC1 : DM_REC2);
return false;
}
#endif
if (keycode == MCR_REC) {keycode = REC;}
if (keycode == MCR_PLY) {keycode = PLY;}
if (!process_dynamic_macro(keycode, record)) {
REC = (MACRO1 ? DM_REC1 : DM_REC2);
return false;
}
#endif // DYNAMIC_MACRO_ENABLE

#ifdef MOUSEKEY_ENABLE
if (keycode == MS_ACL_U || keycode == MS_ACL_D) {
if ((keycode == MS_ACL_U) || (keycode == MS_ACL_D)) {
if (record->event.pressed) {
if ( (keycode == MS_ACL_U) && (current_accel < 2) ) { current_accel += 1; }
if ( (keycode == MS_ACL_D) && (current_accel > 0) ) { current_accel -= 1; }
Expand All @@ -159,41 +148,24 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
action_t mousekey_action = action_for_keycode(keycode);
process_action(record, mousekey_action);
}
#endif
#endif // MOUSEKEY_ENABLE

switch (keycode) {
#ifdef DYNAMIC_MACRO_ENABLE
case MCR_SWT:
if (!RECORDING && record->event.pressed) {
// if the button is pressed and we're not recording
MACRO1 = !MACRO1;
if (MACRO1) {
REC = DM_REC1;
PLY = DM_PLY1;
} else {
REC = DM_REC2;
PLY = DM_PLY2;
}
}
return false;
#endif

#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) // this only needs to be defined if both are enabled
case RGB_TOG: // We can intercept this keycode ig? Cool :)
if (record->event.pressed) {
if (rgb_matrix_is_enabled()) {
rgb_matrix_disable/*_noeeprom*/();
rgblight_enable/*_noeeprom*/();
} else if (rgblight_is_enabled()) {
rgb_matrix_disable/*_noeeprom*/();
rgblight_disable/*_noeeprom*/();
} else {
rgb_matrix_enable/*_noeeprom*/();
rgblight_disable/*_noeeprom*/();
}
case MCR_SWT:
if (!RECORDING && record->event.pressed) {
// if the button is pressed and we're not recording
MACRO1 = !MACRO1;
if (MACRO1) {
REC = DM_REC1;
PLY = DM_PLY1;
} else {
REC = DM_REC2;
PLY = DM_PLY2;
}
return false;
#endif
}
return false;
#endif // DYNAMIC_MACRO_ENABLE

default:
return true; //Process all other keycodes normally
Expand Down