add bdn9/eosti keymap (#7105)
This commit is contained in:
		
							parent
							
								
									f87908228a
								
							
						
					
					
						commit
						454c99d128
					
				
					 4 changed files with 172 additions and 0 deletions
				
			
		
							
								
								
									
										1
									
								
								keyboards/keebio/bdn9/keymaps/eosti/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/keebio/bdn9/keymaps/eosti/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
#define TAPPING_TERM 175
 | 
			
		||||
							
								
								
									
										161
									
								
								keyboards/keebio/bdn9/keymaps/eosti/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								keyboards/keebio/bdn9/keymaps/eosti/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,161 @@
 | 
			
		|||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
enum layer_names {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _MACRO,
 | 
			
		||||
    _MOD
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
    M801 = SAFE_RANGE,
 | 
			
		||||
    M802,
 | 
			
		||||
    M803,
 | 
			
		||||
    M804,
 | 
			
		||||
    M805,
 | 
			
		||||
    M806,
 | 
			
		||||
    MAIL_C
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// tapdance keycodes
 | 
			
		||||
enum td_keycodes {
 | 
			
		||||
    LAY  // Our example key: `LALT` when held, `(` when tapped. Add additional keycodes for each tapdance.
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// define a type containing as many tapdance states as you need
 | 
			
		||||
typedef enum {
 | 
			
		||||
  SINGLE_TAP,
 | 
			
		||||
  SINGLE_HOLD,
 | 
			
		||||
} td_state_t;
 | 
			
		||||
 | 
			
		||||
// create a global instance of the tapdance state type
 | 
			
		||||
static td_state_t td_state;
 | 
			
		||||
 | 
			
		||||
// declare your tapdance functions:
 | 
			
		||||
 | 
			
		||||
// function to determine the current tapdance state
 | 
			
		||||
int cur_dance (qk_tap_dance_state_t *state);
 | 
			
		||||
 | 
			
		||||
// `finished` and `reset` functions for each tapdance keycode
 | 
			
		||||
void altlp_finished (qk_tap_dance_state_t *state, void *user_data);
 | 
			
		||||
void altlp_reset (qk_tap_dance_state_t *state, void *user_data);
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
    case M801:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        SEND_STRING("M801" SS_TAP(X_ENTER));
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case M802:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
          SEND_STRING("M802" SS_TAP(X_ENTER));
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case M803:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
          SEND_STRING("M803" SS_TAP(X_ENTER));
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
     case M804:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
          SEND_STRING("M804" SS_TAP(X_ENTER));
 | 
			
		||||
      }
 | 
			
		||||
      break; 
 | 
			
		||||
    case M805:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
          SEND_STRING("M805" SS_TAP(X_ENTER));
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case M806:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
          SEND_STRING("M806" SS_TAP(X_ENTER));
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case MAIL_C:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
          SEND_STRING(SS_TAP(X_ENTER) SS_TAP(X_DOWN) SS_TAP(X_DOWN) SS_TAP(X_ENTER));
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return true;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define EX_ARR LCTL(LSFT(KC_ENTER))
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [_BASE] = LAYOUT(
 | 
			
		||||
    // ┌────────┬────────┬────────┐
 | 
			
		||||
         KC_MUTE, KC_UP,  TD(LAY),
 | 
			
		||||
    // ├────────┼────────┼────────┤
 | 
			
		||||
         KC_LEFT, KC_DOWN, KC_RGHT,
 | 
			
		||||
    // ├────────┼────────┼────────┤
 | 
			
		||||
         KC_NO,   KC_NO,   KC_NO
 | 
			
		||||
    // └────────┴────────┴────────┘
 | 
			
		||||
        ),
 | 
			
		||||
    [_MACRO] = LAYOUT(
 | 
			
		||||
    // ┌────────┬────────┬────────┐
 | 
			
		||||
        _______,  KC_SPC, TG(_MACRO),
 | 
			
		||||
    // ├────────┼────────┼────────┤
 | 
			
		||||
          M801,    M802,    M803,
 | 
			
		||||
    // ├────────┼────────┼────────┤
 | 
			
		||||
         MAIL_C,  KC_NO,   EX_ARR
 | 
			
		||||
    // └────────┴────────┴────────┘
 | 
			
		||||
        ),
 | 
			
		||||
    [_MOD] = LAYOUT(
 | 
			
		||||
    // ┌────────┬────────┬────────┐
 | 
			
		||||
        _______,  BL_STEP,TG(_MOD),
 | 
			
		||||
    // ├────────┼────────┼────────┤
 | 
			
		||||
         KC_NO,  RGB_MOD,  KC_NO,
 | 
			
		||||
    // ├────────┼────────┼────────┤
 | 
			
		||||
         KC_NO,   KC_NO,   KC_NO
 | 
			
		||||
    // └────────┴────────┴────────┘
 | 
			
		||||
        )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// determine the tapdance state to return
 | 
			
		||||
int cur_dance (qk_tap_dance_state_t *state) {
 | 
			
		||||
  if (state->count == 1) {
 | 
			
		||||
    if (state->interrupted || !state->pressed) { return SINGLE_TAP; }
 | 
			
		||||
    else { return SINGLE_HOLD; }
 | 
			
		||||
  } else { return 3; } // any number higher than the maximum state value you return above
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// handle the possible states for each tapdance keycode you define:
 | 
			
		||||
 | 
			
		||||
void altlp_finished (qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  td_state = cur_dance(state);
 | 
			
		||||
  switch (td_state) {
 | 
			
		||||
    case SINGLE_TAP:
 | 
			
		||||
      layer_on(_MACRO);
 | 
			
		||||
      break;
 | 
			
		||||
    case SINGLE_HOLD:
 | 
			
		||||
      layer_on(_MOD);
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void altlp_reset (qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  switch (td_state) {
 | 
			
		||||
    case SINGLE_TAP:
 | 
			
		||||
      break;
 | 
			
		||||
    case SINGLE_HOLD:
 | 
			
		||||
      layer_off(_MOD);
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// define `ACTION_TAP_DANCE_FN_ADVANCED()` for each tapdance keycode, passing in `finished` and `reset` functions
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
  [LAY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altlp_finished, altlp_reset)
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										9
									
								
								keyboards/keebio/bdn9/keymaps/eosti/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								keyboards/keebio/bdn9/keymaps/eosti/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
# EosTi's BDN9 Macropad Layout
 | 
			
		||||
 | 
			
		||||
## Features
 | 
			
		||||
 | 
			
		||||
- Single encoder in the top left to control volume, push to mute
 | 
			
		||||
- Arrow keys on home layer
 | 
			
		||||
- Tap upper right to toggle to macro layer
 | 
			
		||||
- Hold upper right to change keyboard functions (aka RGB)
 | 
			
		||||
- 520 entire bytes free!
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/keebio/bdn9/keymaps/eosti/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/keebio/bdn9/keymaps/eosti/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
TAP_DANCE_ENABLE=yes
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue