Fine tuning

- All feature config settings are now in two keycodes for encoder
- All key press toggles are now in one keycode
- added back the quote bracket tap holds
- Cleaned up keymap
- formatting
- updated other board keymaps for these
- removed trace of _CONFIG layer
This commit is contained in:
Victor 2024-07-17 18:03:46 -05:00
parent a2a79ed324
commit a48bbe358b
Failed to generate hash of commit
12 changed files with 102 additions and 161 deletions

View file

@ -19,16 +19,13 @@ LAYOUT_rollow_wrapper ( \
#define ROLLOW(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) #define ROLLOW(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = ROLLOW(LAYER_QWERTY), [_QWERTY] = ROLLOW(LAYER_QWERTY),
[_COLEMAK_DH] = ROLLOW(LAYER_COLEMAK_DH), [_COLEMAK_DH] = ROLLOW(LAYER_COLEMAK_DH),
[_GAME] = ROLLOW(LAYER_GAME), [_GAME] = ROLLOW(LAYER_GAME),
[_NAVIGATION] = ROLLOW(LAYER_NAVIGATION), [_NAVIGATION] = ROLLOW(LAYER_NAVIGATION),
[_NUMBER] = ROLLOW(LAYER_NUMBER), [_NUMBER] = ROLLOW(LAYER_NUMBER),
[_SYMBOL] = ROLLOW(LAYER_SYMBOL), [_SYMBOL] = ROLLOW(LAYER_SYMBOL),
[_MOUSE_FUNC] = ROLLOW(LAYER_MOUSE_FUNC), [_MOUSE_FUNC] = ROLLOW(LAYER_MOUSE_FUNC)
[_CONFIG] = ROLLOW(LAYER_CONFIG)
}; };
@ -36,16 +33,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* These are horizontal encoders. Found I have to make it opposite the rotary encoders for it to feel intuitive*/ /* These are horizontal encoders. Found I have to make it opposite the rotary encoders for it to feel intuitive*/
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_QWERTY] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [_QWERTY] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_GAME] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [_GAME] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[_NAVIGATION] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT), ENCODER_CCW_CW(___x___, ___x___) }, [_NAVIGATION] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT), ENCODER_CCW_CW(FWD_CFG, REV_CFG) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(FWD_TAB, REV_TAB) }, [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(FWD_TAB, REV_TAB) },
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
[_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(ZOOMIN, ZOOMOUT) }, [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(ZOOMIN, ZOOMOUT) }
[_CONFIG] = { ENCODER_CCW_CW(BASELYR, RBSELYR), ENCODER_CCW_CW(BASELYR, RBSELYR) }
}; };
#endif #endif

View file

@ -34,14 +34,11 @@ LAYOUT_cnano_wrapper ( \
#define CNANO(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) #define CNANO(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = CNANO(LAYER_QWERTY), [_QWERTY] = CNANO(LAYER_QWERTY),
[_COLEMAK_DH] = CNANO(LAYER_COLEMAK_DH), [_COLEMAK_DH] = CNANO(LAYER_COLEMAK_DH),
[_GAME] = CNANO(LAYER_GAME), [_GAME] = CNANO(LAYER_GAME),
[_NAVIGATION] = CNANO(LAYER_NAVIGATION), [_NAVIGATION] = CNANO(LAYER_NAVIGATION),
[_NUMBER] = CNANO(LAYER_NUMBER), [_NUMBER] = CNANO(LAYER_NUMBER),
[_SYMBOL] = CNANO(LAYER_SYMBOL), [_SYMBOL] = CNANO(LAYER_SYMBOL),
[_MOUSE_FUNC] = CNANO(LAYER_MOUSE_FUNC), [_MOUSE_FUNC] = CNANO(LAYER_MOUSE_FUNC)
[_CONFIG] = CNANO(LAYER_CONFIG)
}; };

View file

@ -35,16 +35,13 @@ LAYOUT_swoop_wrapper ( \
#define SWOOP(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) #define SWOOP(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = SWOOP(LAYER_QWERTY), [_QWERTY] = SWOOP(LAYER_QWERTY),
[_COLEMAK_DH] = SWOOP(LAYER_COLEMAK_DH), [_COLEMAK_DH] = SWOOP(LAYER_COLEMAK_DH),
[_GAME] = SWOOP(LAYER_GAME), [_GAME] = SWOOP(LAYER_GAME),
[_NAVIGATION] = SWOOP(LAYER_NAVIGATION), [_NAVIGATION] = SWOOP(LAYER_NAVIGATION),
[_NUMBER] = SWOOP(LAYER_NUMBER), [_NUMBER] = SWOOP(LAYER_NUMBER),
[_SYMBOL] = SWOOP(LAYER_SYMBOL), [_SYMBOL] = SWOOP(LAYER_SYMBOL),
[_MOUSE_FUNC] = SWOOP(LAYER_MOUSE_FUNC), [_MOUSE_FUNC] = SWOOP(LAYER_MOUSE_FUNC)
[_CONFIG] = SWOOP(LAYER_CONFIG)
}; };
@ -52,16 +49,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* The encoder presses are handled in the keymap */ /* The encoder presses are handled in the keymap */
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_QWERTY] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_QWERTY] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_GAME] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_GAME] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(___x___, ___x___) }, [_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(REV_CFG, FWD_CFG) },
[_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(REV_TAB, FWD_TAB) }, [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(REV_TAB, FWD_TAB) },
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
[_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN) }, [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN) }
[_CONFIG] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RBSELYR, BASELYR) }
}; };
#endif //ENCODER_MAP_ENABLE #endif //ENCODER_MAP_ENABLE

View file

@ -34,14 +34,11 @@ LAYOUT_crkbd_wrapper ( \
#define CRKBD(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) #define CRKBD(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = CRKBD(LAYER_QWERTY), [_QWERTY] = CRKBD(LAYER_QWERTY),
[_COLEMAK_DH] = CRKBD(LAYER_COLEMAK_DH), [_COLEMAK_DH] = CRKBD(LAYER_COLEMAK_DH),
[_GAME] = CRKBD(LAYER_GAME), [_GAME] = CRKBD(LAYER_GAME),
[_NAVIGATION] = CRKBD(LAYER_NAVIGATION), [_NAVIGATION] = CRKBD(LAYER_NAVIGATION),
[_NUMBER] = CRKBD(LAYER_NUMBER), [_NUMBER] = CRKBD(LAYER_NUMBER),
[_SYMBOL] = CRKBD(LAYER_SYMBOL), [_SYMBOL] = CRKBD(LAYER_SYMBOL),
[_MOUSE_FUNC] = CRKBD(LAYER_MOUSE_FUNC), [_MOUSE_FUNC] = CRKBD(LAYER_MOUSE_FUNC)
[_CONFIG] = CRKBD(LAYER_CONFIG)
}; };

View file

@ -19,7 +19,6 @@ LAYOUT_klor_wrapper ( \
#define KLOR(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) #define KLOR(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = KLOR(LAYER_QWERTY), [_QWERTY] = KLOR(LAYER_QWERTY),
[_COLEMAK_DH] = KLOR(LAYER_COLEMAK_DH), [_COLEMAK_DH] = KLOR(LAYER_COLEMAK_DH),
[_GAME] = KLOR(LAYER_GAME), [_GAME] = KLOR(LAYER_GAME),
@ -27,24 +26,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_NUMBER] = KLOR(LAYER_NUMBER), [_NUMBER] = KLOR(LAYER_NUMBER),
[_SYMBOL] = KLOR(LAYER_SYMBOL), [_SYMBOL] = KLOR(LAYER_SYMBOL),
[_MOUSE_FUNC] = KLOR(LAYER_MOUSE_FUNC) [_MOUSE_FUNC] = KLOR(LAYER_MOUSE_FUNC)
//[_CONFIG] = KLOR(LAYER_CONFIG)
}; };
#if defined(ENCODER_MAP_ENABLE) #if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_QWERTY] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_QWERTY] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_COLEMAK_DH] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_GAME] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_GAME] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(REV_RGB, FWD_RGB) }, [_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT, KC_RGHT), ENCODER_CCW_CW(REV_CFG, FWD_CFG) },
[_NUMBER] = { ENCODER_CCW_CW(REV_CFG, FWD_CFG), ENCODER_CCW_CW(REV_TAB, FWD_TAB) }, [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(REV_TAB, FWD_TAB) },
[_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) },
[_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN) } [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN) }
//[_CONFIG] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RBSELYR, BASELYR) }
}; };
#endif #endif

View file

@ -19,14 +19,11 @@ LAYOUT_planck_wrapper (
#define PLANCK(...) LAYOUT_3x5_keymap(__VA_ARGS__) #define PLANCK(...) LAYOUT_3x5_keymap(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = PLANCK(LAYER_QWERTY), [_QWERTY] = PLANCK(LAYER_QWERTY),
[_COLEMAK_DH] = PLANCK(LAYER_COLEMAK_DH), [_COLEMAK_DH] = PLANCK(LAYER_COLEMAK_DH),
[_GAME] = PLANCK(LAYER_GAME), [_GAME] = PLANCK(LAYER_GAME),
[_NAVIGATION] = PLANCK(LAYER_NAVIGATION), [_NAVIGATION] = PLANCK(LAYER_NAVIGATION),
[_NUMBER] = PLANCK(LAYER_NUMBER), [_NUMBER] = PLANCK(LAYER_NUMBER),
[_SYMBOL] = PLANCK(LAYER_SYMBOL), [_SYMBOL] = PLANCK(LAYER_SYMBOL),
[_MOUSE_FUNC] = PLANCK(LAYER_MOUSE_FUNC), [_MOUSE_FUNC] = PLANCK(LAYER_MOUSE_FUNC)
[_CONFIG] = PLANCK(LAYER_CONFIG)
}; };

View file

@ -16,23 +16,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "t4corun.h" #include "t4corun.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( KC_NO ) [0] = LAYOUT( KC_NO )
}; };
static bool num_lock_state = false; static bool num_lock_state = false;
static bool scroll_lock_state = false; static bool scroll_lock_state = false;
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
num_lock_state = host_keyboard_led_state().num_lock; num_lock_state = host_keyboard_led_state().num_lock;
scroll_lock_state = host_keyboard_led_state().scroll_lock; scroll_lock_state = host_keyboard_led_state().scroll_lock;
} }
bool led_update_user(led_t led_state) { bool led_update_user(led_t led_state) {
// when scroll lock is pressed, toggle drag scroll state // when scroll lock is pressed, toggle drag scroll state
if ( scroll_lock_state != led_state.scroll_lock ) { if ( scroll_lock_state != led_state.scroll_lock ) {
toggle_drag_scroll(); toggle_drag_scroll();

View file

@ -1,11 +1,6 @@
#include "combo.h" #include "combo.h"
bool combo_should_trigger (uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) { bool combo_should_trigger (uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
// disable all combos on config layer
if (get_highest_layer(layer_state | default_layer_state) == _CONFIG) {
return false;
}
switch (combo_index) { switch (combo_index) {
case MOUSE_BUTTON2: case MOUSE_BUTTON2:
if ( get_highest_layer(layer_state | default_layer_state) > FIRST_DEFAULT_LAYER ) { if ( get_highest_layer(layer_state | default_layer_state) > FIRST_DEFAULT_LAYER ) {

View file

@ -45,9 +45,6 @@ void render_layer_state (uint8_t col, uint8_t line, bool moveCursor) {
case _MOUSE_FUNC: case _MOUSE_FUNC:
oled_write_P(PSTR(OLED_RENDER_LAYER_5), false); oled_write_P(PSTR(OLED_RENDER_LAYER_5), false);
break; break;
case _CONFIG:
oled_write_P(PSTR(OLED_RENDER_LAYER_6), false);
break;
default: default:
oled_write_P(PSTR(OLED_RENDER_LAYER_1), false); oled_write_P(PSTR(OLED_RENDER_LAYER_1), false);
break; break;
@ -68,7 +65,6 @@ void render_layer_state_list (uint8_t col, uint8_t line, bool moveCursor) {
oled_write_P(PSTR(OLED_RENDER_LAYER_3), current_layer == _NUMBER); oled_write_P(PSTR(OLED_RENDER_LAYER_3), current_layer == _NUMBER);
oled_write_P(PSTR(OLED_RENDER_LAYER_4), current_layer == _SYMBOL); oled_write_P(PSTR(OLED_RENDER_LAYER_4), current_layer == _SYMBOL);
oled_write_P(PSTR(OLED_RENDER_LAYER_5), current_layer == _MOUSE_FUNC); oled_write_P(PSTR(OLED_RENDER_LAYER_5), current_layer == _MOUSE_FUNC);
oled_write_P(PSTR(OLED_RENDER_LAYER_6), current_layer == _CONFIG);
} }

View file

@ -12,7 +12,6 @@
# define OLED_RENDER_LAYER_3 "Number " # define OLED_RENDER_LAYER_3 "Number "
# define OLED_RENDER_LAYER_4 "Symbol " # define OLED_RENDER_LAYER_4 "Symbol "
# define OLED_RENDER_LAYER_5 "Mouse+Func" # define OLED_RENDER_LAYER_5 "Mouse+Func"
# define OLED_RENDER_LAYER_6 "Config "
#else #else
//128x32 are ? x 5 char wide //128x32 are ? x 5 char wide
# define OLED_RENDER_DEFAULT_LAYER1 "Qwrty" # define OLED_RENDER_DEFAULT_LAYER1 "Qwrty"
@ -24,7 +23,6 @@
# define OLED_RENDER_LAYER_3 " Num " # define OLED_RENDER_LAYER_3 " Num "
# define OLED_RENDER_LAYER_4 " Sym " # define OLED_RENDER_LAYER_4 " Sym "
# define OLED_RENDER_LAYER_5 " MFn " # define OLED_RENDER_LAYER_5 " MFn "
# define OLED_RENDER_LAYER_6 " Cfg "
#endif #endif
void render_oled_128x64 (void); void render_oled_128x64 (void);

View file

@ -23,7 +23,7 @@ bool isLunaJumping(void) { return isJumping; }
bool isJumpShown(void) { return showedJump; } bool isJumpShown(void) { return showedJump; }
// Allows the OLED code to clear the space bar status when render is complete // Allows the OLED code to clear the space bar status when render is complete
void setLunaJumped(void) { showedJump = true;} void setLunaJumped(void) { showedJump = true; }
#endif // WPM_ENABLE #endif // WPM_ENABLE
@ -43,7 +43,6 @@ void set_default_layer(bool forward) {
// helper function to put ploopy nano into bootloader // helper function to put ploopy nano into bootloader
// my ploopy nano will reset when num/caps/scroll lock is enabled // my ploopy nano will reset when num/caps/scroll lock is enabled
void reset_ploopynano(void) { void reset_ploopynano(void) {
// turn on all three host states // turn on all three host states
if(!host_keyboard_led_state().num_lock) { tap_code(KC_NUM); } if(!host_keyboard_led_state().num_lock) { tap_code(KC_NUM); }
if(!host_keyboard_led_state().caps_lock) { tap_code(KC_CAPS); } if(!host_keyboard_led_state().caps_lock) { tap_code(KC_CAPS); }
@ -68,13 +67,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
record->event.pressed ? tap_code(KC_SCRL) : tap_code(KC_SCRL); record->event.pressed ? tap_code(KC_SCRL) : tap_code(KC_SCRL);
return false; return false;
// makes num lock a hold instead of toggle // makes num lock a hold instead of toggle
// prevents accidental ploopy nano going into bootloader // prevents accidental ploopy nano going into bootloader
case KC_NUM: case KC_NUM:
record->event.pressed ? tap_code(KC_NUM) : tap_code(KC_NUM); record->event.pressed ? tap_code(KC_NUM) : tap_code(KC_NUM);
return false; return false;
// controls luna pet OLED animation
#if defined(WPM_ENABLE) #if defined(WPM_ENABLE)
case KC_SPC: case KC_SPC:
if (record->event.pressed) { if (record->event.pressed) {
@ -87,24 +86,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break; break;
#endif // WPM_ENABLE #endif // WPM_ENABLE
case BASELYR: // turn encoder for tab and shift tab
if (record->event.pressed) { // hold alt or ctrl while turning for window / tab switching
set_default_layer(true);
}
return false;
case FWD_TAB: case FWD_TAB:
case REV_TAB: case REV_TAB:
if (record->event.pressed) { if (record->event.pressed) {
if (keycode == FWD_TAB && !hold_forward_active) { if (keycode == FWD_TAB && !hold_forward_active) {
hold_forward_active = true; hold_forward_active = true;
hold_reverse_active = false; hold_reverse_active = false;
unregister_code(KC_LSFT); unregister_mods(MOD_MASK_SHIFT);
} }
if (keycode == REV_TAB && !hold_reverse_active) { if (keycode == REV_TAB && !hold_reverse_active) {
hold_forward_active = false; hold_forward_active = false;
hold_reverse_active = true; hold_reverse_active = true;
register_code(KC_LSFT); register_mods(MOD_MASK_SHIFT);
} }
hold_mod_timer = timer_read(); hold_mod_timer = timer_read();
register_code(KC_TAB); register_code(KC_TAB);
@ -113,49 +108,55 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
return false; return false;
case FWD_RGB: // turn encoder for mouse wheel zoom
case REV_RGB: case ZOOMIN:
case ZOOMOUT:
if (record->event.pressed) { if (record->event.pressed) {
switch (current_mods) { if (!hold_forward_active) {
#if defined(RGB_MATRIX_ENABLE) hold_forward_active = true;
case MOD_BIT(KC_LSFT): register_mods(MOD_MASK_CTRL);
keycode == FWD_RGB ? rgb_matrix_increase_hue() : rgb_matrix_decrease_hue();
break;
case MOD_BIT(KC_LCTL):
keycode == FWD_RGB ? rgb_matrix_increase_sat() : rgb_matrix_decrease_sat();
break;
case MOD_BIT(KC_LALT):
keycode == FWD_RGB ? rgb_matrix_increase_val() : rgb_matrix_decrease_val();
break;
case MOD_BIT(KC_LGUI):
keycode == FWD_RGB ? rgb_matrix_increase_speed() : rgb_matrix_decrease_speed();
break;
case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL):
keycode == FWD_RGB ? rgb_matrix_step() : rgb_matrix_step_reverse();
break;
#endif //RGB_MATRIX_ENABLE
default:
keycode == FWD_RGB ? set_default_layer(true) : set_default_layer(false);
break;
} }
hold_mod_timer = timer_read();
keycode == ZOOMIN ? register_code(KC_WH_U) : register_code(KC_WH_D);
} else {
keycode == ZOOMIN ? unregister_code(KC_WH_U) : unregister_code(KC_WH_D);
} }
return false; return false;
// turn encoder while holding mod combinations to adjust features
// e.g. RGB settings, haptic frequency, click frequency, base layer
case FWD_CFG: case FWD_CFG:
case REV_CFG: case REV_CFG:
if (record->event.pressed) { if (record->event.pressed) {
if (!hold_forward_active) {
hold_forward_active = true;
}
hold_mod_timer = timer_read();
switch (current_mods) { switch (current_mods) {
#if defined(HAPTIC_ENABLE) #if defined(RGB_MATRIX_ENABLE)
case MOD_BIT(KC_LSFT): case MOD_BIT(KC_LSFT):
keycode == FWD_CFG ? rgb_matrix_increase_hue() : rgb_matrix_decrease_hue();
break;
case MOD_BIT(KC_LCTL):
keycode == FWD_CFG ? rgb_matrix_increase_sat() : rgb_matrix_decrease_sat();
break;
case MOD_BIT(KC_LALT):
keycode == FWD_CFG ? rgb_matrix_increase_val() : rgb_matrix_decrease_val();
break;
case MOD_BIT(KC_LGUI):
keycode == FWD_CFG ? rgb_matrix_increase_speed() : rgb_matrix_decrease_speed();
break;
case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL):
keycode == FWD_CFG ? rgb_matrix_step() : rgb_matrix_step_reverse();
break;
#endif //RGB_MATRIX_ENABLE
#if defined(HAPTIC_ENABLE)
case MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT):
keycode == FWD_CFG ? haptic_mode_increase() : haptic_mode_decrease(); keycode == FWD_CFG ? haptic_mode_increase() : haptic_mode_decrease();
break; break;
#endif //HAPTIC_ENABLE #endif //HAPTIC_ENABLE
#if defined(AUDIO_ENABLE) #if defined(AUDIO_ENABLE)
case MOD_BIT(KC_LCTL): case MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI):
keycode == FWD_CFG ? clicky_freq_up() : clicky_freq_down(); keycode == FWD_CFG ? clicky_freq_up() : clicky_freq_down();
break; break;
#endif //AUDIO_ENABLE #endif //AUDIO_ENABLE
@ -166,57 +167,46 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
return false; return false;
case ZOOMIN: // press key while holding mod combinations to toggle features or enter bootloader
case ZOOMOUT:
if (record->event.pressed) {
if (!hold_forward_active) {
hold_forward_active = true;
register_code(KC_LCTL);
}
hold_mod_timer = timer_read();
keycode == ZOOMIN ? register_code(KC_WH_U) : register_code(KC_WH_D);
} else {
keycode == ZOOMIN ? unregister_code(KC_WH_U) : unregister_code(KC_WH_D);
}
return false;
case TOG_CFG: case TOG_CFG:
if (record->event.pressed) { if (record->event.pressed) {
switch (current_mods) { switch (current_mods) {
#if defined(RGB_MATRIX_ENABLE)
case MOD_BIT(KC_LSFT): case MOD_BIT(KC_LSFT):
reset_keyboard();
break;
case MOD_BIT(KC_LCTL):
reset_ploopynano();
break;
#if defined(RGB_MATRIX_ENABLE)
case MOD_BIT(KC_LALT):
rgb_matrix_toggle(); rgb_matrix_toggle();
break; break;
#endif //RGB_MATRIX_ENABLE #endif //RGB_MATRIX_ENABLE
#if defined(COMBO_ENABLE)
case MOD_BIT(KC_LGUI):
combo_toggle();
break;
#endif //COMBO_ENABLE
#if defined(HAPTIC_ENABLE) #if defined(HAPTIC_ENABLE)
case MOD_BIT(KC_LCTL): case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL):
haptic_toggle(); haptic_toggle();
break; break;
#endif //HAPTIC_ENABLE #endif //HAPTIC_ENABLE
#if defined(AUDIO_ENABLE) #if defined(AUDIO_ENABLE)
case MOD_BIT(KC_LALT): case MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT):
is_audio_on() ? audio_off(): audio_on(); is_audio_on() ? audio_off(): audio_on();
break; break;
case MOD_BIT(KC_LGUI): case MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI):
clicky_toggle(); clicky_toggle();
break; break;
#endif //AUDIO_ENABLE #endif //AUDIO_ENABLE
case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL):
reset_keyboard();
break;
case MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT):
reset_ploopynano();
break;
default: default:
set_default_layer(true); set_default_layer(true);
break; break;
} }
} }
unregister_mods(MOD_MASK_CSAG);
return false; return false;
//https://docs.qmk.fm/#/mod_tap?id=changing-both-tasp-and-hold //https://docs.qmk.fm/#/mod_tap?id=changing-both-tasp-and-hold
@ -274,8 +264,7 @@ void matrix_scan_user(void) {
// timer for the hold mods // timer for the hold mods
if (hold_forward_active || hold_reverse_active) { if (hold_forward_active || hold_reverse_active) {
if (timer_elapsed(hold_mod_timer) > HOLD_MOD_TIMEOUT) { if (timer_elapsed(hold_mod_timer) > HOLD_MOD_TIMEOUT) {
unregister_code(KC_LSFT); unregister_mods(MOD_MASK_CSAG);
unregister_code(KC_LCTL);
hold_forward_active = false; hold_forward_active = false;
hold_reverse_active = false; hold_reverse_active = false;
} }

View file

@ -22,8 +22,7 @@ enum layers {
_NAVIGATION, _NAVIGATION,
_NUMBER, _NUMBER,
_SYMBOL, _SYMBOL,
_MOUSE_FUNC, _MOUSE_FUNC
_CONFIG
}; };
// start at the second layer // start at the second layer
@ -54,21 +53,17 @@ enum keycodes {
TH_SCLN, TH_SCLN,
TH_QUOT, TH_QUOT,
FWD_TAB, // enables encoder to alt-tab/alt+shift-tab FWD_TAB, // turn encoder for tab and shift tab
REV_TAB, // alt-tab/alt+shift-tab or ctrl-tab/ctrl+shift tab REV_TAB, // hold alt or ctrl while turning for window / tab switching
FWD_RGB, // enables overloaded encoder to adjust RGB mode and settings ZOOMIN, // turn encoder for mouse wheel zoom
REV_RGB,
FWD_CFG, // enables overloaded encoder to adjust other features
REV_CFG, // e.g. haptic freq, click freq
TOG_CFG, // enables overloaded key press to toggle features on or off
ZOOMIN, // enables encoder to mouse wheel zoom
ZOOMOUT, ZOOMOUT,
BASELYR // enables key press to change base layer FWD_CFG, // turn encoder while holding mod combinations to adjust features
REV_CFG, // e.g. RGB settings, haptic frequency, click frequency, base layer
TOG_CFG // press key while holding mod combinations to toggle features or enter bootloader
}; };
#define ___x___ KC_NO #define ___x___ KC_NO
@ -95,8 +90,8 @@ enum keycodes {
#define SCR_TOP LCTL(KC_HOME) #define SCR_TOP LCTL(KC_HOME)
/* /*
- Any keycodes with prefix TR has behavior dependent on if the feature is enabled.
- If the feature is disabled then the key is just the normal key - If the feature is disabled then the key is just the normal key
- Any keycodes with prefix TR has behavior dependent on if the feature is enabled.
- We will only define things that are used across different layers. Entire layers are turned off in the keymap - We will only define things that are used across different layers. Entire layers are turned off in the keymap
*/ */
@ -180,17 +175,17 @@ enum keycodes {
#define LAYER_GAME \ #define LAYER_GAME \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_ESC, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_ESC, \
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6, KC_GRV, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6, KC_GRV, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_1, KC_2, KC_3, CM_TOGG, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_1, KC_2, KC_3, ___x___, \
KC_ENT, KC_SPC, KC_LSFT, _BASE_R4_________________, \ KC_ENT, KC_SPC, KC_LSFT, _BASE_R4_________________, \
SCR_TOP, KC_MUTE SCR_TOP, KC_MUTE
#define LAYER_NAVIGATION \ #define LAYER_NAVIGATION \
KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_APP, ___x___, DM_REC1, DM_PLY1, \ KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_CAPS, KC_APP, ___x___, ___x___, ___x___, \
___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSPC, _SCAG_MODS________________________, \ ___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_BSPC, _SCAG_MODS________________________, \
_UCCPR_L___________________________________, KC_DEL, KC_TAB, KC_VOLD, KC_VOLU, KC_MUTE, \ _UCCPR_L___________________________________, KC_DEL, KC_TAB, KC_VOLD, KC_VOLU, KC_MUTE, \
___x___, NUM, KC_ENT, _LAYER_TRANS_____________, \ ___x___, NUM, KC_ENT, _LAYER_TRANS_____________, \
SCR_TOP, BASELYR SCR_TOP, TOG_CFG
#define LAYER_NUMBER \ #define LAYER_NUMBER \
@ -198,13 +193,13 @@ enum keycodes {
_GACS_MODS________________________, KC_TAB, ___x___, KC_4, KC_5, KC_6, KC_DOT, \ _GACS_MODS________________________, KC_TAB, ___x___, KC_4, KC_5, KC_6, KC_DOT, \
_UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, KC_MINS, \ _UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, KC_MINS, \
_LAYER_TRANS_____________, KC_0, NAV, ___x___, \ _LAYER_TRANS_____________, KC_0, NAV, ___x___, \
BASELYR, SC_WIN ___x___, SC_WIN
#define LAYER_SYMBOL \ #define LAYER_SYMBOL \
___x___, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, ___x___, \ ___x___, ___x___, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \
___x___, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, ___x___, \ ___x___, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \
___x___, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, ___x___, \ ___x___, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \
_LAYER_TRANS_____________, _LAYER_TRANS_____________, \ _LAYER_TRANS_____________, _LAYER_TRANS_____________, \
___x___, ___x___ ___x___, ___x___
@ -213,5 +208,5 @@ enum keycodes {
MOU_FUN, ___x___, ___x___, TR_PDPI, TR_SDPI, TOG_CFG, KC_F7, KC_F8, KC_F9, KC_F10, \ MOU_FUN, ___x___, ___x___, TR_PDPI, TR_SDPI, TOG_CFG, KC_F7, KC_F8, KC_F9, KC_F10, \
_GACS_MODS________________________, TR_DRGS, FWD_CFG, KC_F4, KC_F5, KC_F6, KC_F11, \ _GACS_MODS________________________, TR_DRGS, FWD_CFG, KC_F4, KC_F5, KC_F6, KC_F11, \
_______, KC_BTN1, KC_BTN5, KC_BTN4, TR_SNIP, REV_CFG, KC_F1, KC_F2, KC_F3, KC_F12, \ _______, KC_BTN1, KC_BTN5, KC_BTN4, TR_SNIP, REV_CFG, KC_F1, KC_F2, KC_F3, KC_F12, \
KC_BTN1, KC_BTN3, KC_BTN2, REV_RGB, FWD_RGB, ___x___, \ KC_BTN1, KC_BTN3, KC_BTN2, DM_PLY1, DM_REC1, ___x___, \
SCR_TOP, ZOOMRST SCR_TOP, ZOOMRST