[Keymap] Personal keymap for Let's Split keyboard. (#7702)
* Add Initial layout configuration.
* Set arduino pro micro's built in RX LED as Numlock
* Enable Autoshift feautre.
* Remove DVORAK layout.
* Add Numpad, update default layer.
* Update AutoShift timeout.
* Beautify ASCII Art.
* Update keymap.
* Add Initial verison of RGB lighting.
* Add Tap dance, hungarian letters.
.Xmodmap example: 09f058753d
* Update RGB to use only noeeprom functions.
* Change default rgb led color.
* Add `pragma once`.
* Emojis added.
* Add tap dance for hungarian letters, multimedia control, slash/backslash.
* Remove audio related code.
* Add Gaming layer.
* Remove unnecessary code, update copyright.
* Add readme.md
* Implement code review suggestions.
* Implement code review suggestions #2
			
			
This commit is contained in:
		
							parent
							
								
									156d319604
								
							
						
					
					
						commit
						2406c04d89
					
				
					 4 changed files with 413 additions and 0 deletions
				
			
		
							
								
								
									
										37
									
								
								keyboards/lets_split/keymaps/geripgeri/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								keyboards/lets_split/keymaps/geripgeri/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
/*
 | 
			
		||||
This is the c configuration file for the keymap
 | 
			
		||||
 | 
			
		||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
 | 
			
		||||
Copyright 2015 Jack Humbert
 | 
			
		||||
Copyright 2019 Gergely Peidl
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
#define AUTO_SHIFT_TIMEOUT 200
 | 
			
		||||
#define NO_AUTO_SHIFT_NUMERIC
 | 
			
		||||
 | 
			
		||||
// RGB lighting
 | 
			
		||||
#define RGBLIGHT_SLEEP
 | 
			
		||||
#undef RGBLED_NUM
 | 
			
		||||
#define RGBLED_NUM 32
 | 
			
		||||
 | 
			
		||||
#define RGBLIGHT_EFFECT_BREATHING
 | 
			
		||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
 | 
			
		||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
 | 
			
		||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
 | 
			
		||||
 | 
			
		||||
#define TAPPING_TERM 200
 | 
			
		||||
							
								
								
									
										368
									
								
								keyboards/lets_split/keymaps/geripgeri/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										368
									
								
								keyboards/lets_split/keymaps/geripgeri/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,368 @@
 | 
			
		|||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
enum layer_names {
 | 
			
		||||
  _QWERTY,
 | 
			
		||||
  _LOWER,
 | 
			
		||||
  _RAISE,
 | 
			
		||||
  _NUMPAD,
 | 
			
		||||
  _GAMING,
 | 
			
		||||
  _ADJUST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
  NUMPAD = SAFE_RANGE,
 | 
			
		||||
  SLIGHTLY,
 | 
			
		||||
  SMILE,
 | 
			
		||||
  JOY,
 | 
			
		||||
  RELAXED,
 | 
			
		||||
  HEART,
 | 
			
		||||
  SAD,
 | 
			
		||||
  CRY,
 | 
			
		||||
  NETRURAL,
 | 
			
		||||
  SCREAM,
 | 
			
		||||
  THUMBSUP
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum td_extra_keys {
 | 
			
		||||
  U,
 | 
			
		||||
  O,
 | 
			
		||||
  NEXTPREV,
 | 
			
		||||
  SLASH
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
  bool is_press_action;
 | 
			
		||||
  int state;
 | 
			
		||||
} tap;
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
  SINGLE_TAP = 1,
 | 
			
		||||
  SINGLE_HOLD = 2,
 | 
			
		||||
  DOUBLE_TAP = 3,
 | 
			
		||||
  DOUBLE_HOLD = 4,
 | 
			
		||||
  DOUBLE_SINGLE_TAP = 5, //send two single taps
 | 
			
		||||
  TRIPLE_TAP = 6,
 | 
			
		||||
  TRIPLE_HOLD = 7
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define LOWER MO(_LOWER)
 | 
			
		||||
#define RAISE MO(_RAISE)
 | 
			
		||||
 | 
			
		||||
int cur_dance (qk_tap_dance_state_t *state);
 | 
			
		||||
 | 
			
		||||
void u_finished (qk_tap_dance_state_t *state, void *user_data);
 | 
			
		||||
void o_finished (qk_tap_dance_state_t *state, void *user_data);
 | 
			
		||||
 | 
			
		||||
uint8_t rgb_mode = RGBLIGHT_MODE_BREATHING + 1;
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* Qwerty
 | 
			
		||||
 * ,-----------------------------------------.                ,-----------------------------------------.
 | 
			
		||||
 * | Tab  |   Q  |   W  |   E  |   R  |   T  |                |   Y  |   U  |   I  |   O  |   P  |  -   |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * | Esc  |   A  |   S  |   D  |   F  |   G  |                |   H  |   J  |   K  |   L  |   ;  |  '   |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * | Shift|   Z  |   X  |   C  |   V  |   B  |                |   N  |   M  |   ,  |   .  |   /  |Enter |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * | Ctrl | ALT  |Numpad| GUI  |Lower | Space|                | Bksp |Raise | Left | Down |  Up  |Right |
 | 
			
		||||
 * `-----------------------------------------'                `-----------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_QWERTY] = LAYOUT_ortho_4x12(
 | 
			
		||||
   KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,         KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_MINUS,
 | 
			
		||||
   KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,         KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
 | 
			
		||||
   KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,         KC_N,    KC_M,    KC_COMM, KC_DOT,  TD(SLASH), KC_ENT,
 | 
			
		||||
   KC_LCTL, KC_LALT, MO(_NUMPAD),  KC_LGUI, LOWER, KC_SPC,    KC_BSPC, RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Lower
 | 
			
		||||
 * ,-----------------------------------------.                ,-----------------------------------------.
 | 
			
		||||
 * |   ~  |   !  |   @  |   #  |   $  |   %  |                |   ^  |   &  |   *  |   (  |   )  |  =   |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |  :)  |  :D  |  :'D |  :$  |  <3  |      |                | Home | Pgup |      |   {  |   }  |  |   |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |  :(  |  :'( |  :|  |  :O  |  +1  |      |                | End  |Pgdown|      |   [  |   ]  |PrntSc|
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |Insert|                |  Del |      | Next | Vol- | Vol+ | Play |
 | 
			
		||||
 * `-----------------------------------------'                `-----------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_LOWER] = LAYOUT_ortho_4x12(
 | 
			
		||||
  KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,          KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL,
 | 
			
		||||
  SLIGHTLY, SMILE, JOY, RELAXED, HEART, _______,              KC_HOME, KC_PGUP, _______, KC_LCBR, KC_RCBR, KC_PIPE,
 | 
			
		||||
  SAD, CRY, NETRURAL, SCREAM, THUMBSUP, _______,              KC_END, KC_PGDOWN,_______, KC_LBRC, KC_RBRC, KC_PSCREEN,
 | 
			
		||||
  _______, _______, _______, _______, _______, KC_INSERT,     KC_DEL, _______,  TD(NEXTPREV), KC_VOLD, KC_VOLU, KC_MPLY
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Raise
 | 
			
		||||
 * ,-----------------------------------------.                ,-----------------------------------------.
 | 
			
		||||
 * |   `  |   1  |   2  |   3  |   4  |   5  |                |   6  |   7  |   8  |   9  |   0  |  Del |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |                |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |                |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |                |      |      |      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------'                `-----------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_RAISE] = LAYOUT_ortho_4x12(
 | 
			
		||||
  KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,          KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL,
 | 
			
		||||
  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,         KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Adjust (Lower + Raise)
 | 
			
		||||
 * ,-----------------------------------------.                ,-----------------------------------------.
 | 
			
		||||
 * | Reset|EEPRST|      |  EE  |      |      |                |      |  UE  |  IE  |  OE  |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |      |  AE  |      |      |      |      |                |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |                |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|                |------+------+------+------+------+------|
 | 
			
		||||
 * | TGLAS|      |      |      |      |      |                |      |      |      |      |      |GAMING|
 | 
			
		||||
 * `-----------------------------------------'                `-----------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_ADJUST] =  LAYOUT_ortho_4x12(
 | 
			
		||||
  RESET,   EEP_RST, _______, RALT(KC_SCLN), _______, _______,       _______, TD(U),  RALT(KC_Z),      TD(O),   _______, _______,
 | 
			
		||||
  _______, RALT(KC_QUOT), _______, _______, _______, _______,       _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  KC_ASTG, _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______, TG(_GAMING)
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Numpad
 | 
			
		||||
 * ,-----------------------------------------.               ,-----------------------------------------.
 | 
			
		||||
 * |      |      |      |      |      |      |               |   7  |   8  |   9  |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|               |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |               |   4  |   5  |   6  |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|               |------+------+------+------+------+------|
 | 
			
		||||
 * |  VAI |  SAI |  HUI |      |      |      |               |   3  |   2  |   1  |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|               |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |RGBMOD|RGBTGL|               | Calc |   0  |   +  |      |      |      |
 | 
			
		||||
 * `-----------------------------------------'               `-----------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_NUMPAD] = LAYOUT_ortho_4x12(
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       KC_7,    KC_8,   KC_9,    _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       KC_4,    KC_5,   KC_6,    _______, _______, _______,
 | 
			
		||||
  RGB_VAI, RGB_SAI, RGB_HUI, _______, _______, _______,       KC_1,    KC_2,   KC_3,    _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, RGB_MOD, RGB_TOG,       KC_CALC, KC_0,   KC_PPLS, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
/* Gaming
 | 
			
		||||
 * ,-----------------------------------------.               ,-----------------------------------------.
 | 
			
		||||
 * |      |      |      |      |      |      |               |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|               |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |               |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|               |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      |      |      |               |      |      |      |      |      |      |
 | 
			
		||||
 * |------+------+------+------+------+------|               |------+------+------+------+------+------|
 | 
			
		||||
 * |      |      |      |      | RAISE|      |               |      | LOWER|      |      |      |      |
 | 
			
		||||
 * `-----------------------------------------'               `-----------------------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_GAMING] = LAYOUT_ortho_4x12(
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, _______, _______, _______, RAISE,   _______,       _______, LOWER,   _______, _______, _______, _______
 | 
			
		||||
)};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch(keycode) {
 | 
			
		||||
    case RGB_VAI:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_increase_val_noeeprom();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_VAD:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_decrease_val_noeeprom();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_SAI:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_increase_sat_noeeprom();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_SAD:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_decrease_sat_noeeprom();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_HUI:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_increase_hue_noeeprom();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_HUD:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_decrease_hue_noeeprom();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_TOG:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	rgblight_toggle_noeeprom();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_MOD:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_step_noeeprom();
 | 
			
		||||
	rgb_mode = rgblight_get_mode();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RGB_RMOD:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
        rgblight_step_reverse_noeeprom();
 | 
			
		||||
	rgb_mode = rgblight_get_mode();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case SLIGHTLY:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":slightly_smiling_face:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case SMILE:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":smile:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case JOY:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":joy:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case RELAXED:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":relaxed:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case HEART:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":heart:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case SAD:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":white_frowning_face:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case CRY:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":cry:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case NETRURAL:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":neutral_face:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case SCREAM:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":scream:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case THUMBSUP:
 | 
			
		||||
      if(record->event.pressed) {
 | 
			
		||||
	SEND_STRING(":+1:");
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      return true;
 | 
			
		||||
  }
 | 
			
		||||
  return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
layer_state_t layer_state_set_user(layer_state_t state) {
 | 
			
		||||
  state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
 | 
			
		||||
  writePin(B0, !(state & (1UL << (_NUMPAD))));
 | 
			
		||||
 | 
			
		||||
  switch(biton32(state)) {
 | 
			
		||||
    case _RAISE:
 | 
			
		||||
      rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2);
 | 
			
		||||
      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
 | 
			
		||||
      break;
 | 
			
		||||
    case _LOWER:
 | 
			
		||||
      rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2 - 1);
 | 
			
		||||
      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
 | 
			
		||||
      break;
 | 
			
		||||
    case _NUMPAD:
 | 
			
		||||
      rgblight_setrgb_at(0,255,0, 0);
 | 
			
		||||
      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
 | 
			
		||||
      break;
 | 
			
		||||
    case _GAMING:
 | 
			
		||||
      rgb_mode = RGBLIGHT_MODE_RAINBOW_SWIRL + 5;
 | 
			
		||||
      autoshift_disable();
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      rgb_mode = RGBLIGHT_MODE_BREATHING + 1;
 | 
			
		||||
      rgblight_mode_noeeprom(rgb_mode);
 | 
			
		||||
      autoshift_enable();
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void led_set_user(uint8_t usb_led) {
 | 
			
		||||
  rgblight_sethsv_noeeprom(0, 255, 255);
 | 
			
		||||
  rgblight_mode_noeeprom(rgb_mode);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int cur_dance (qk_tap_dance_state_t *state) {
 | 
			
		||||
  if (state->count == 1) {
 | 
			
		||||
    if (state->interrupted || !state->pressed)  return SINGLE_TAP;
 | 
			
		||||
    //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
 | 
			
		||||
    else return SINGLE_HOLD;
 | 
			
		||||
  }
 | 
			
		||||
  else if (state->count == 2) {
 | 
			
		||||
    /*
 | 
			
		||||
     * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
 | 
			
		||||
     * action when hitting 'pp'. Suggested use case for this return value is when you want to send two
 | 
			
		||||
     * keystrokes of the key, and not the 'double tap' action/macro.
 | 
			
		||||
    */
 | 
			
		||||
    if (state->interrupted) return DOUBLE_SINGLE_TAP;
 | 
			
		||||
    else if (state->pressed) return DOUBLE_HOLD;
 | 
			
		||||
    else return DOUBLE_TAP;
 | 
			
		||||
  }
 | 
			
		||||
  //Assumes no one is trying to type the same letter three times (at least not quickly).
 | 
			
		||||
  //If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
 | 
			
		||||
  //an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
 | 
			
		||||
  if (state->count == 3) {
 | 
			
		||||
    if (state->interrupted || !state->pressed)  return TRIPLE_TAP;
 | 
			
		||||
    else return TRIPLE_HOLD;
 | 
			
		||||
  }
 | 
			
		||||
  else return 8; //magic number. At some point this method will expand to work for more presses
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static tap utap_state = {
 | 
			
		||||
  .is_press_action = true,
 | 
			
		||||
  .state = 0
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static tap otap_state = {
 | 
			
		||||
  .is_press_action = true,
 | 
			
		||||
  .state = 0
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void u_finished (qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  utap_state.state = cur_dance(state);
 | 
			
		||||
  switch(utap_state.state) {
 | 
			
		||||
    case SINGLE_TAP: SEND_STRING(SS_RALT("]")); break;
 | 
			
		||||
    case DOUBLE_TAP: SEND_STRING(SS_RALT("-")); break;
 | 
			
		||||
    case TRIPLE_TAP: SEND_STRING(SS_RALT("\\")); break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void o_finished (qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  otap_state.state = cur_dance(state);
 | 
			
		||||
  switch(otap_state.state) {
 | 
			
		||||
    case SINGLE_TAP: SEND_STRING(SS_RALT("=")); break;
 | 
			
		||||
    case DOUBLE_TAP: SEND_STRING(SS_RALT("0")); break;
 | 
			
		||||
    case TRIPLE_TAP: SEND_STRING(SS_RALT("[")); break;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
  [U] = ACTION_TAP_DANCE_FN(u_finished),
 | 
			
		||||
  [O] = ACTION_TAP_DANCE_FN(o_finished),
 | 
			
		||||
  [NEXTPREV] = ACTION_TAP_DANCE_DOUBLE(KC_MNXT, KC_MPRV),
 | 
			
		||||
  [SLASH] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_BSLS)
 | 
			
		||||
 };
 | 
			
		||||
							
								
								
									
										3
									
								
								keyboards/lets_split/keymaps/geripgeri/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/lets_split/keymaps/geripgeri/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
# Personal Layout
 | 
			
		||||
 | 
			
		||||
[Layout](http://www.keyboard-layout-editor.com/#/gists/8eae83bfb830d847c94c7ff423bbdc84)
 | 
			
		||||
							
								
								
									
										5
									
								
								keyboards/lets_split/keymaps/geripgeri/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								keyboards/lets_split/keymaps/geripgeri/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
AUTO_SHIFT_ENABLE = yes
 | 
			
		||||
AUTO_SHIFT_MODIFIERS = no
 | 
			
		||||
RGBLIGHT_ENABLE = yes
 | 
			
		||||
TAP_DANCE_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue