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:
		
							parent
							
								
									a2a79ed324
								
							
						
					
					
						commit
						a48bbe358b
					
				
					 12 changed files with 102 additions and 161 deletions
				
			
		| 
						 | 
				
			
			@ -19,16 +19,13 @@ LAYOUT_rollow_wrapper (                             \
 | 
			
		|||
#define ROLLOW(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_QWERTY]     = ROLLOW(LAYER_QWERTY),
 | 
			
		||||
  [_COLEMAK_DH] = ROLLOW(LAYER_COLEMAK_DH),
 | 
			
		||||
  [_GAME]       = ROLLOW(LAYER_GAME),
 | 
			
		||||
  [_NAVIGATION] = ROLLOW(LAYER_NAVIGATION),
 | 
			
		||||
  [_NUMBER]     = ROLLOW(LAYER_NUMBER),
 | 
			
		||||
  [_SYMBOL]     = ROLLOW(LAYER_SYMBOL),
 | 
			
		||||
  [_MOUSE_FUNC] = ROLLOW(LAYER_MOUSE_FUNC),
 | 
			
		||||
  [_CONFIG]     = ROLLOW(LAYER_CONFIG)
 | 
			
		||||
 | 
			
		||||
  [_MOUSE_FUNC] = ROLLOW(LAYER_MOUSE_FUNC)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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*/
 | 
			
		||||
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) },
 | 
			
		||||
  [_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) },
 | 
			
		||||
  [_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) },
 | 
			
		||||
  [_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) },
 | 
			
		||||
  [_CONFIG]     = { ENCODER_CCW_CW(BASELYR, RBSELYR), ENCODER_CCW_CW(BASELYR, RBSELYR) }
 | 
			
		||||
 | 
			
		||||
  [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(ZOOMIN,  ZOOMOUT) }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -34,14 +34,11 @@ LAYOUT_cnano_wrapper (                              \
 | 
			
		|||
#define CNANO(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_QWERTY]     = CNANO(LAYER_QWERTY),
 | 
			
		||||
  [_COLEMAK_DH] = CNANO(LAYER_COLEMAK_DH),
 | 
			
		||||
  [_GAME]       = CNANO(LAYER_GAME),
 | 
			
		||||
  [_NAVIGATION] = CNANO(LAYER_NAVIGATION),
 | 
			
		||||
  [_NUMBER]     = CNANO(LAYER_NUMBER),
 | 
			
		||||
  [_SYMBOL]     = CNANO(LAYER_SYMBOL),
 | 
			
		||||
  [_MOUSE_FUNC] = CNANO(LAYER_MOUSE_FUNC),
 | 
			
		||||
  [_CONFIG]     = CNANO(LAYER_CONFIG)
 | 
			
		||||
 | 
			
		||||
  [_MOUSE_FUNC] = CNANO(LAYER_MOUSE_FUNC)
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -35,16 +35,13 @@ LAYOUT_swoop_wrapper (                              \
 | 
			
		|||
#define SWOOP(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_QWERTY]     = SWOOP(LAYER_QWERTY),
 | 
			
		||||
  [_COLEMAK_DH] = SWOOP(LAYER_COLEMAK_DH),
 | 
			
		||||
  [_GAME]       = SWOOP(LAYER_GAME),
 | 
			
		||||
  [_NAVIGATION] = SWOOP(LAYER_NAVIGATION),
 | 
			
		||||
  [_NUMBER]     = SWOOP(LAYER_NUMBER),
 | 
			
		||||
  [_SYMBOL]     = SWOOP(LAYER_SYMBOL),
 | 
			
		||||
  [_MOUSE_FUNC] = SWOOP(LAYER_MOUSE_FUNC),
 | 
			
		||||
  [_CONFIG]     = SWOOP(LAYER_CONFIG)
 | 
			
		||||
 | 
			
		||||
  [_MOUSE_FUNC] = SWOOP(LAYER_MOUSE_FUNC)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -52,16 +49,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
/* The encoder presses are handled in the keymap */
 | 
			
		||||
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) },
 | 
			
		||||
  [_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) },
 | 
			
		||||
  [_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) },
 | 
			
		||||
  [_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)  },
 | 
			
		||||
  [_CONFIG]     = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RBSELYR, BASELYR) }
 | 
			
		||||
 | 
			
		||||
  [_MOUSE_FUNC] = { ENCODER_CCW_CW(KC_WH_U,  KC_WH_D), ENCODER_CCW_CW(ZOOMOUT, ZOOMIN)  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif //ENCODER_MAP_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,14 +34,11 @@ LAYOUT_crkbd_wrapper (                                            \
 | 
			
		|||
#define CRKBD(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_QWERTY]     = CRKBD(LAYER_QWERTY),
 | 
			
		||||
  [_COLEMAK_DH] = CRKBD(LAYER_COLEMAK_DH),
 | 
			
		||||
  [_GAME]       = CRKBD(LAYER_GAME),
 | 
			
		||||
  [_NAVIGATION] = CRKBD(LAYER_NAVIGATION),
 | 
			
		||||
  [_NUMBER]     = CRKBD(LAYER_NUMBER),
 | 
			
		||||
  [_SYMBOL]     = CRKBD(LAYER_SYMBOL),
 | 
			
		||||
  [_MOUSE_FUNC] = CRKBD(LAYER_MOUSE_FUNC),
 | 
			
		||||
  [_CONFIG]     = CRKBD(LAYER_CONFIG)
 | 
			
		||||
 | 
			
		||||
  [_MOUSE_FUNC] = CRKBD(LAYER_MOUSE_FUNC)
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -19,7 +19,6 @@ LAYOUT_klor_wrapper (                                         \
 | 
			
		|||
#define KLOR(...) LAYOUT_3x5_3_keymap(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_QWERTY]     = KLOR(LAYER_QWERTY),
 | 
			
		||||
  [_COLEMAK_DH] = KLOR(LAYER_COLEMAK_DH),
 | 
			
		||||
  [_GAME]       = KLOR(LAYER_GAME),
 | 
			
		||||
| 
						 | 
				
			
			@ -27,24 +26,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
  [_NUMBER]     = KLOR(LAYER_NUMBER),
 | 
			
		||||
  [_SYMBOL]     = KLOR(LAYER_SYMBOL),
 | 
			
		||||
  [_MOUSE_FUNC] = KLOR(LAYER_MOUSE_FUNC)
 | 
			
		||||
  //[_CONFIG]     = KLOR(LAYER_CONFIG)
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(ENCODER_MAP_ENABLE)
 | 
			
		||||
 | 
			
		||||
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) },
 | 
			
		||||
  [_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) },
 | 
			
		||||
  [_NAVIGATION] = { ENCODER_CCW_CW(KC_LEFT,  KC_RGHT), ENCODER_CCW_CW(REV_RGB, FWD_RGB) },
 | 
			
		||||
  [_NUMBER]     = { ENCODER_CCW_CW(REV_CFG,  FWD_CFG), ENCODER_CCW_CW(REV_TAB, FWD_TAB) },
 | 
			
		||||
  [_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) },
 | 
			
		||||
  [_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)  }
 | 
			
		||||
  //[_CONFIG]     = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RBSELYR, BASELYR) }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -19,14 +19,11 @@ LAYOUT_planck_wrapper (
 | 
			
		|||
#define PLANCK(...) LAYOUT_3x5_keymap(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_QWERTY]     = PLANCK(LAYER_QWERTY),
 | 
			
		||||
  [_COLEMAK_DH] = PLANCK(LAYER_COLEMAK_DH),
 | 
			
		||||
  [_GAME]       = PLANCK(LAYER_GAME),
 | 
			
		||||
  [_NAVIGATION] = PLANCK(LAYER_NAVIGATION),
 | 
			
		||||
  [_NUMBER]     = PLANCK(LAYER_NUMBER),
 | 
			
		||||
  [_SYMBOL]     = PLANCK(LAYER_SYMBOL),
 | 
			
		||||
  [_MOUSE_FUNC] = PLANCK(LAYER_MOUSE_FUNC),
 | 
			
		||||
  [_CONFIG]     = PLANCK(LAYER_CONFIG)
 | 
			
		||||
 | 
			
		||||
  [_MOUSE_FUNC] = PLANCK(LAYER_MOUSE_FUNC)
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -16,23 +16,18 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#include "t4corun.h"
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [0] = LAYOUT( KC_NO )
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static bool num_lock_state = false;
 | 
			
		||||
static bool scroll_lock_state = false;
 | 
			
		||||
 | 
			
		||||
void keyboard_post_init_user(void) {
 | 
			
		||||
 | 
			
		||||
    num_lock_state  = host_keyboard_led_state().num_lock;
 | 
			
		||||
    scroll_lock_state  = host_keyboard_led_state().scroll_lock;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool led_update_user(led_t led_state) {
 | 
			
		||||
 | 
			
		||||
    // when scroll lock is pressed, toggle drag scroll state
 | 
			
		||||
    if ( scroll_lock_state != led_state.scroll_lock ) {
 | 
			
		||||
        toggle_drag_scroll();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,6 @@
 | 
			
		|||
#include "combo.h"
 | 
			
		||||
 | 
			
		||||
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) {
 | 
			
		||||
    case MOUSE_BUTTON2:
 | 
			
		||||
      if ( get_highest_layer(layer_state | default_layer_state) > FIRST_DEFAULT_LAYER ) {
 | 
			
		||||
| 
						 | 
				
			
			@ -13,7 +8,7 @@ bool combo_should_trigger (uint16_t combo_index, combo_t *combo, uint16_t keycod
 | 
			
		|||
      }
 | 
			
		||||
 | 
			
		||||
    case MOUSE_DRGTOG:
 | 
			
		||||
      if (( get_highest_layer(layer_state | default_layer_state) != FIRST_DEFAULT_LAYER ) 
 | 
			
		||||
      if (( get_highest_layer(layer_state | default_layer_state) != FIRST_DEFAULT_LAYER )
 | 
			
		||||
       && ( get_highest_layer(layer_state | default_layer_state) != _MOUSE_FUNC )) {
 | 
			
		||||
          return false;
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,9 +45,6 @@ void render_layer_state (uint8_t col, uint8_t line, bool moveCursor) {
 | 
			
		|||
    case _MOUSE_FUNC:
 | 
			
		||||
      oled_write_P(PSTR(OLED_RENDER_LAYER_5), false);
 | 
			
		||||
      break;
 | 
			
		||||
    case _CONFIG:
 | 
			
		||||
      oled_write_P(PSTR(OLED_RENDER_LAYER_6), false);
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      oled_write_P(PSTR(OLED_RENDER_LAYER_1), false);
 | 
			
		||||
      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_4), current_layer == _SYMBOL);
 | 
			
		||||
  oled_write_P(PSTR(OLED_RENDER_LAYER_5), current_layer == _MOUSE_FUNC);
 | 
			
		||||
  oled_write_P(PSTR(OLED_RENDER_LAYER_6), current_layer == _CONFIG);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,6 @@
 | 
			
		|||
#   define OLED_RENDER_LAYER_3           "Number    "
 | 
			
		||||
#   define OLED_RENDER_LAYER_4           "Symbol    "
 | 
			
		||||
#   define OLED_RENDER_LAYER_5           "Mouse+Func"
 | 
			
		||||
#   define OLED_RENDER_LAYER_6           "Config    "
 | 
			
		||||
#else
 | 
			
		||||
//128x32 are ? x 5 char wide
 | 
			
		||||
#   define OLED_RENDER_DEFAULT_LAYER1    "Qwrty"
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +23,6 @@
 | 
			
		|||
#   define OLED_RENDER_LAYER_3           " Num "
 | 
			
		||||
#   define OLED_RENDER_LAYER_4           " Sym "
 | 
			
		||||
#   define OLED_RENDER_LAYER_5           " MFn "
 | 
			
		||||
#   define OLED_RENDER_LAYER_6           " Cfg "
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void render_oled_128x64 (void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,13 +23,13 @@ bool isLunaJumping(void) { return isJumping; }
 | 
			
		|||
bool isJumpShown(void) { return showedJump; }
 | 
			
		||||
 | 
			
		||||
// 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Hold Navigation and Number to get Symbol
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) { 
 | 
			
		||||
  return update_tri_layer_state(state, _NAVIGATION, _NUMBER, _SYMBOL); 
 | 
			
		||||
  return update_tri_layer_state(state, _NAVIGATION, _NUMBER, _SYMBOL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// helper function to adjust default layer
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +43,6 @@ void set_default_layer(bool forward) {
 | 
			
		|||
// helper function to put ploopy nano into bootloader
 | 
			
		||||
// my ploopy nano will reset when num/caps/scroll lock is enabled
 | 
			
		||||
void reset_ploopynano(void) {
 | 
			
		||||
 | 
			
		||||
  // turn on all three host states
 | 
			
		||||
  if(!host_keyboard_led_state().num_lock) { tap_code(KC_NUM); }
 | 
			
		||||
  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);
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // makes num lock a hold instead of toggle
 | 
			
		||||
    // prevents accidental ploopy nano going into bootloader
 | 
			
		||||
    case KC_NUM:
 | 
			
		||||
      record->event.pressed ? tap_code(KC_NUM) : tap_code(KC_NUM);
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    // controls luna pet OLED animation
 | 
			
		||||
#if defined(WPM_ENABLE)
 | 
			
		||||
    case KC_SPC:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
| 
						 | 
				
			
			@ -87,24 +86,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      break;
 | 
			
		||||
#endif // WPM_ENABLE
 | 
			
		||||
 | 
			
		||||
    case BASELYR:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        set_default_layer(true);
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    // turn encoder for tab and shift tab
 | 
			
		||||
    // hold alt or ctrl while turning for window / tab switching
 | 
			
		||||
    case FWD_TAB:
 | 
			
		||||
    case REV_TAB:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        if (keycode == FWD_TAB && !hold_forward_active) {
 | 
			
		||||
          hold_forward_active = true;
 | 
			
		||||
          hold_reverse_active = false;
 | 
			
		||||
          unregister_code(KC_LSFT);
 | 
			
		||||
          unregister_mods(MOD_MASK_SHIFT);
 | 
			
		||||
        }
 | 
			
		||||
        if (keycode == REV_TAB && !hold_reverse_active) {
 | 
			
		||||
          hold_forward_active = false;
 | 
			
		||||
          hold_reverse_active = true;
 | 
			
		||||
          register_code(KC_LSFT);
 | 
			
		||||
          register_mods(MOD_MASK_SHIFT);
 | 
			
		||||
        }
 | 
			
		||||
        hold_mod_timer = timer_read();
 | 
			
		||||
        register_code(KC_TAB);
 | 
			
		||||
| 
						 | 
				
			
			@ -113,65 +108,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    case FWD_RGB:
 | 
			
		||||
    case REV_RGB:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        switch (current_mods) {
 | 
			
		||||
#if defined(RGB_MATRIX_ENABLE)
 | 
			
		||||
          case MOD_BIT(KC_LSFT):
 | 
			
		||||
            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;    
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    case FWD_CFG:
 | 
			
		||||
    case REV_CFG:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        switch (current_mods) {
 | 
			
		||||
#if defined(HAPTIC_ENABLE)
 | 
			
		||||
          case MOD_BIT(KC_LSFT):
 | 
			
		||||
            keycode == FWD_CFG ? haptic_mode_increase() : haptic_mode_decrease();
 | 
			
		||||
            break;
 | 
			
		||||
#endif //HAPTIC_ENABLE
 | 
			
		||||
#if defined(AUDIO_ENABLE)
 | 
			
		||||
          case MOD_BIT(KC_LCTL):
 | 
			
		||||
            keycode == FWD_CFG ? clicky_freq_up() : clicky_freq_down();
 | 
			
		||||
            break;
 | 
			
		||||
#endif //AUDIO_ENABLE
 | 
			
		||||
          default:
 | 
			
		||||
            keycode == FWD_CFG ? set_default_layer(true) : set_default_layer(false);
 | 
			
		||||
            break;    
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    // turn encoder for mouse wheel zoom
 | 
			
		||||
    case ZOOMIN:
 | 
			
		||||
    case ZOOMOUT:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        if (!hold_forward_active) {
 | 
			
		||||
          hold_forward_active = true;
 | 
			
		||||
          register_code(KC_LCTL);
 | 
			
		||||
          register_mods(MOD_MASK_CTRL);
 | 
			
		||||
        }
 | 
			
		||||
        hold_mod_timer = timer_read();
 | 
			
		||||
        keycode == ZOOMIN ? register_code(KC_WH_U) : register_code(KC_WH_D);
 | 
			
		||||
| 
						 | 
				
			
			@ -180,43 +123,90 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    case TOG_CFG:
 | 
			
		||||
    // turn encoder while holding mod combinations to adjust features
 | 
			
		||||
    // e.g. RGB settings, haptic frequency, click frequency, base layer
 | 
			
		||||
    case FWD_CFG:
 | 
			
		||||
    case REV_CFG:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        if (!hold_forward_active) {
 | 
			
		||||
          hold_forward_active = true;
 | 
			
		||||
        }
 | 
			
		||||
        hold_mod_timer = timer_read();
 | 
			
		||||
        switch (current_mods) {
 | 
			
		||||
#if defined(RGB_MATRIX_ENABLE)
 | 
			
		||||
          case MOD_BIT(KC_LSFT):
 | 
			
		||||
            rgb_matrix_toggle();
 | 
			
		||||
            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();
 | 
			
		||||
            break;
 | 
			
		||||
#endif //HAPTIC_ENABLE
 | 
			
		||||
#if defined(AUDIO_ENABLE)
 | 
			
		||||
          case MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI):
 | 
			
		||||
            keycode == FWD_CFG ? clicky_freq_up() : clicky_freq_down();
 | 
			
		||||
            break;
 | 
			
		||||
#endif //AUDIO_ENABLE
 | 
			
		||||
          default:
 | 
			
		||||
            keycode == FWD_CFG ? set_default_layer(true) : set_default_layer(false);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    // press key while holding mod combinations to toggle features or enter bootloader
 | 
			
		||||
    case TOG_CFG:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        switch (current_mods) {
 | 
			
		||||
          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();
 | 
			
		||||
            break;
 | 
			
		||||
#endif //RGB_MATRIX_ENABLE
 | 
			
		||||
#if defined(COMBO_ENABLE)
 | 
			
		||||
          case MOD_BIT(KC_LGUI):
 | 
			
		||||
            combo_toggle();
 | 
			
		||||
            break;
 | 
			
		||||
#endif //COMBO_ENABLE
 | 
			
		||||
#if defined(HAPTIC_ENABLE)
 | 
			
		||||
          case MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL):
 | 
			
		||||
            haptic_toggle();
 | 
			
		||||
            break;
 | 
			
		||||
#endif //HAPTIC_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();
 | 
			
		||||
            break;
 | 
			
		||||
          
 | 
			
		||||
          case MOD_BIT(KC_LGUI):
 | 
			
		||||
          case MOD_BIT(KC_LALT) | MOD_BIT(KC_LGUI):
 | 
			
		||||
            clicky_toggle();
 | 
			
		||||
            break;
 | 
			
		||||
#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:
 | 
			
		||||
            set_default_layer(true);
 | 
			
		||||
            break;    
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      unregister_mods(MOD_MASK_CSAG);
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    //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
 | 
			
		||||
  if (hold_forward_active || hold_reverse_active) {
 | 
			
		||||
    if (timer_elapsed(hold_mod_timer) > HOLD_MOD_TIMEOUT) {
 | 
			
		||||
      unregister_code(KC_LSFT);
 | 
			
		||||
      unregister_code(KC_LCTL);
 | 
			
		||||
      unregister_mods(MOD_MASK_CSAG);
 | 
			
		||||
      hold_forward_active = false;
 | 
			
		||||
      hold_reverse_active = false;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,8 +22,7 @@ enum layers {
 | 
			
		|||
  _NAVIGATION,
 | 
			
		||||
  _NUMBER,
 | 
			
		||||
  _SYMBOL,
 | 
			
		||||
  _MOUSE_FUNC,
 | 
			
		||||
  _CONFIG
 | 
			
		||||
  _MOUSE_FUNC
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// start at the second layer
 | 
			
		||||
| 
						 | 
				
			
			@ -54,21 +53,17 @@ enum keycodes {
 | 
			
		|||
  TH_SCLN,
 | 
			
		||||
  TH_QUOT,
 | 
			
		||||
 | 
			
		||||
  FWD_TAB,  // enables encoder to alt-tab/alt+shift-tab
 | 
			
		||||
  REV_TAB,  // alt-tab/alt+shift-tab or ctrl-tab/ctrl+shift tab
 | 
			
		||||
  FWD_TAB,  // turn encoder for tab and 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
 | 
			
		||||
  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 
 | 
			
		||||
  ZOOMIN,   // turn encoder for mouse wheel zoom
 | 
			
		||||
  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
 | 
			
		||||
| 
						 | 
				
			
			@ -95,8 +90,8 @@ enum keycodes {
 | 
			
		|||
#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
 | 
			
		||||
- 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
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -180,17 +175,17 @@ enum keycodes {
 | 
			
		|||
#define LAYER_GAME                                                                          \
 | 
			
		||||
  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_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_________________,                   \
 | 
			
		||||
                                      SCR_TOP, KC_MUTE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#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________________________, \
 | 
			
		||||
  _UCCPR_L___________________________________, KC_DEL,  KC_TAB,  KC_VOLD, KC_VOLU, KC_MUTE, \
 | 
			
		||||
                    ___x___, NUM,     KC_ENT,  _LAYER_TRANS_____________,                   \
 | 
			
		||||
                                      SCR_TOP, BASELYR
 | 
			
		||||
                                      SCR_TOP, TOG_CFG
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define LAYER_NUMBER                                                                        \
 | 
			
		||||
| 
						 | 
				
			
			@ -198,13 +193,13 @@ enum keycodes {
 | 
			
		|||
  _GACS_MODS________________________, KC_TAB,  ___x___, KC_4,    KC_5,    KC_6,    KC_DOT,  \
 | 
			
		||||
  _UCCPR_L___________________________________, ___x___, KC_1,    KC_2,    KC_3,    KC_MINS, \
 | 
			
		||||
                    _LAYER_TRANS_____________, KC_0,    NAV,     ___x___,                   \
 | 
			
		||||
                                      BASELYR, SC_WIN
 | 
			
		||||
                                      ___x___, SC_WIN
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define LAYER_SYMBOL                                                                        \
 | 
			
		||||
  ___x___, ___x___, KC_AT,   KC_DLR,  TR_GRV,  TR_EQL,  KC_HASH, KC_ASTR, ___x___, ___x___, \
 | 
			
		||||
  ___x___, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, KC_AMPR, KC_QUES, TR_LBRC, KC_RBRC, ___x___, \
 | 
			
		||||
  ___x___, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, ___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, TR_SQUO, \
 | 
			
		||||
  ___x___, TR_LABK, KC_RABK, TR_BSLS, KC_EXLM, TR_PERC, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \
 | 
			
		||||
                    _LAYER_TRANS_____________, _LAYER_TRANS_____________,                   \
 | 
			
		||||
                                      ___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,  \
 | 
			
		||||
  _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_BTN3, KC_BTN2, REV_RGB, FWD_RGB, ___x___,                   \
 | 
			
		||||
                    KC_BTN1, KC_BTN3, KC_BTN2, DM_PLY1, DM_REC1, ___x___,                   \
 | 
			
		||||
                                      SCR_TOP, ZOOMRST
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue