forked from mirrors/qmk_userspace
		
	Cleaned uppersonal userspace and keymaps (#1998)
* Cleanup of keymaps * Remove Tap Dance from Orthodox keymap * Cleaned up userspace and keymaps * Added sample (template)userspace files to my folder
This commit is contained in:
		
					parent
					
						
							
								4df4fa7c26
							
						
					
				
			
			
				commit
				
					
						0533362e82
					
				
			
		
					 14 changed files with 219 additions and 147 deletions
				
			
		| 
						 | 
				
			
			@ -225,7 +225,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
        KC_BSPC,        KC_A,         KC_R,   KC_S,   KC_T,   KC_D,
 | 
			
		||||
        KC_LSFT,        LCTL_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   TG(_OVERWATCH),
 | 
			
		||||
        LT(_SYMB,KC_GRV),KC_QUOT,      KC_LGUI,    KC_LBRACKET,KC_RBRACKET,
 | 
			
		||||
                                              ALT_T(KC_APP),  KC_LEAD,
 | 
			
		||||
                                              ALT_T(KC_APP),  KC_LGUI,
 | 
			
		||||
                                                              KC_HOME,
 | 
			
		||||
                                               KC_SPC,KC_BSPC,KC_END,
 | 
			
		||||
        // right hand
 | 
			
		||||
| 
						 | 
				
			
			@ -234,7 +234,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                          KC_H,   KC_N,   KC_E,   KC_I,   KC_O,             GUI_T(KC_QUOTE),
 | 
			
		||||
             TG(_OVERWATCH),KC_K,  KC_M,   KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
 | 
			
		||||
                          KC_LEFT,    KC_DOWN,    KC_UP,      KC_RIGHT,       TT(_SYMB),
 | 
			
		||||
             KC_LALT,        CTL_T(KC_ESC),
 | 
			
		||||
             KC_RGUI,        CTL_T(KC_ESC),
 | 
			
		||||
             KC_PGUP,
 | 
			
		||||
             KC_PGDN,KC_DELETE, KC_ENT
 | 
			
		||||
    ),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,7 @@
 | 
			
		|||
TAP_DANCE_ENABLE  = yes
 | 
			
		||||
SLEEP_LED_ENABLE  = no  # Breathing sleep LED during USB suspend
 | 
			
		||||
COMMAND_ENABLE    = yes  # Commands for debug and configuration
 | 
			
		||||
COMMAND_ENABLE    = no  # Commands for debug and configuration
 | 
			
		||||
RGBLIGHT_ENABLE   = yes
 | 
			
		||||
MIDI_ENABLE       = no
 | 
			
		||||
CONSOLE_ENABLE    = no
 | 
			
		||||
 | 
			
		||||
EXTRAFLAGS        = -flto
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,13 +28,13 @@
 | 
			
		|||
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
#define RGB_DI_PIN D3
 | 
			
		||||
#define RGBLED_NUM 7     // Number of LEDs
 | 
			
		||||
#define RGBLED_NUM 14     // Number of LEDs
 | 
			
		||||
#define RGBLIGHT_ANIMATIONS
 | 
			
		||||
#define RGBLIGHT_HUE_STEP 12
 | 
			
		||||
#define RGBLIGHT_SAT_STEP 12
 | 
			
		||||
#define RGBLIGHT_VAL_STEP 12
 | 
			
		||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
 | 
			
		||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
 | 
			
		||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 4
 | 
			
		||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
 | 
			
		||||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
 | 
			
		||||
#endif // RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,10 +47,10 @@ bool check_dtimer(uint8_t dtimer) {
 | 
			
		|||
 | 
			
		||||
#ifdef TAP_DANCE_ENABLE
 | 
			
		||||
enum {
 | 
			
		||||
  TD_DIABLO_1 = 0,
 | 
			
		||||
  TD_DIABLO_2,
 | 
			
		||||
  TD_DIABLO_3,
 | 
			
		||||
  TD_DIABLO_4
 | 
			
		||||
  TD_D3_1 = 0,
 | 
			
		||||
  TD_D3_2,
 | 
			
		||||
  TD_D3_3,
 | 
			
		||||
  TD_D3_4
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -89,10 +89,10 @@ void diablo_tapdance4(qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		|||
//Tap Dance Definitions
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
  // tap once to disable, and more to enable timed micros
 | 
			
		||||
  [TD_DIABLO_1] = ACTION_TAP_DANCE_FN(diablo_tapdance1),
 | 
			
		||||
  [TD_DIABLO_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2),
 | 
			
		||||
  [TD_DIABLO_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3),
 | 
			
		||||
  [TD_DIABLO_4] = ACTION_TAP_DANCE_FN(diablo_tapdance4),
 | 
			
		||||
  [TD_D3_1] = ACTION_TAP_DANCE_FN(diablo_tapdance1),
 | 
			
		||||
  [TD_D3_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2),
 | 
			
		||||
  [TD_D3_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3),
 | 
			
		||||
  [TD_D3_4] = ACTION_TAP_DANCE_FN(diablo_tapdance4),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
    KC_ESC, _______, _______, _______,\
 | 
			
		||||
    KC_S, KC_F, KC_I, KC_M,   \
 | 
			
		||||
    KC_1, KC_2, KC_3, KC_4, \
 | 
			
		||||
    TD(TD_DIABLO_1), TD(TD_DIABLO_2), TD(TD_DIABLO_3), TD(TD_DIABLO_4), \
 | 
			
		||||
    TD(TD_D3_1), TD(TD_D3_2), TD(TD_D3_3), TD(TD_D3_4), \
 | 
			
		||||
    _______, KC_DIABLO_CLEAR, KC_Q, SFT_T(KC_SPACE)  \
 | 
			
		||||
),
 | 
			
		||||
#else
 | 
			
		||||
| 
						 | 
				
			
			@ -135,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
    KC_OVERWATCH, _______, _______, XXXXXXX,\
 | 
			
		||||
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   \
 | 
			
		||||
    XXXXXXX, XXXXXXX, XXXXXXX, KC_JUSTGAME,   \
 | 
			
		||||
    KC_SYMM,  KC_DOOMFIST, KC_TORB, KC_GOODGAME,   \
 | 
			
		||||
    KC_SYMM, KC_TORB, XXXXXXX, KC_GOODGAME,   \
 | 
			
		||||
    KC_SALT,  KC_MORESALT, KC_SALTHARD, KC_GLHF   \
 | 
			
		||||
),
 | 
			
		||||
[_MEDIA] = KEYMAP( /* Base */
 | 
			
		||||
| 
						 | 
				
			
			@ -226,7 +226,7 @@ void matrix_init_keymap(void) {
 | 
			
		|||
 | 
			
		||||
void matrix_scan_keymap(void) {
 | 
			
		||||
  numlock_led_off();
 | 
			
		||||
  if (is_overwatch && biton32(layer_state) == _MACROS) {
 | 
			
		||||
  if ((is_overwatch && biton32(layer_state) == _MACROS) || (biton32(layer_state) == _NAV)) {
 | 
			
		||||
    numlock_led_on();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ COMMAND_ENABLE    = yes  # Commands for debug and configuration
 | 
			
		|||
RGBLIGHT_ENABLE   = yes
 | 
			
		||||
MIDI_ENABLE       = no
 | 
			
		||||
CONSOLE_ENABLE    = no
 | 
			
		||||
NKRO_ENABLE       = yes
 | 
			
		||||
 | 
			
		||||
EXTRAFLAGS        = -flto
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,5 +61,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
 | 
			
		||||
#endif // RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
#define C6_AUDIO
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,11 +20,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
#include "orthodox.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "eeconfig.h"
 | 
			
		||||
#include "drashna.h"
 | 
			
		||||
 | 
			
		||||
extern keymap_config_t keymap_config;
 | 
			
		||||
 | 
			
		||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
 | 
			
		||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
 | 
			
		||||
| 
						 | 
				
			
			@ -36,38 +33,6 @@ extern keymap_config_t keymap_config;
 | 
			
		|||
#define XXXXXXX KC_NO
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef TAP_DANCE_ENABLE
 | 
			
		||||
enum {
 | 
			
		||||
  TD_FLSH = 0,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// on the fourth tap, set the keyboard on flash state
 | 
			
		||||
// and set the underglow to red, because red == bad
 | 
			
		||||
void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		||||
  if (state->count >= 4) {
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
    rgblight_mode(1);
 | 
			
		||||
    rgblight_setrgb(0xff, 0x00, 0x00);
 | 
			
		||||
#endif
 | 
			
		||||
    reset_tap_dance(state);
 | 
			
		||||
    reset_keyboard();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//Tap Dance Definitions
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
  //Once for Blue, Twice for Green, Thrice for Red, and four to flash
 | 
			
		||||
  [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_flsh_finished, NULL),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
[_QWERTY] = KEYMAP(\
 | 
			
		||||
| 
						 | 
				
			
			@ -106,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
),
 | 
			
		||||
 | 
			
		||||
[_ADJUST] = KEYMAP(\
 | 
			
		||||
  KC_MAKE,    KC_RESET, TD(TD_FLSH), _______, _______, _______,                                                                _______, _______, _______, _______, _______, _______,  \
 | 
			
		||||
  KC_MAKE,KC_RESET, _______, _______, _______, _______,                                                                _______, _______, _______, _______, _______, _______,  \
 | 
			
		||||
  _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, _______, XXXXXXX, _______,          _______, XXXXXXX, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, _______, \
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, MAGIC_TOGGLE_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY  \
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -114,8 +79,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef FAUXCLICKY_ENABLE
 | 
			
		||||
float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A4, 0.0625);  // (_D4, 0.25);
 | 
			
		||||
float fauxclicky_released_note[2] = MUSICAL_NOTE(_A4, 0.0625); // (_C4, 0.125);
 | 
			
		||||
float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 0.25);       // (_C4, 0.25);
 | 
			
		||||
#endif 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,10 @@
 | 
			
		|||
CONSOLE_ENABLE    = no
 | 
			
		||||
TAP_DANCE_ENABLE  = yes
 | 
			
		||||
TAP_DANCE_ENABLE  = no
 | 
			
		||||
RGBLIGHT_ENABLE   = yes
 | 
			
		||||
AUDIO_ENABLE      = no
 | 
			
		||||
MOUSEKEY_ENABLE   = no
 | 
			
		||||
NKRO_ENABLE       = yes
 | 
			
		||||
FAUXCLICKY_ENABLE = no
 | 
			
		||||
EXTRAFLAGS        = -flto
 | 
			
		||||
FAUXCLICKY_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
ifndef QUANTUM_DIR
 | 
			
		||||
	include ../../../../Makefile
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,10 +38,10 @@ bool check_dtimer(uint8_t dtimer) {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
  TD_DIABLO_1 = 0,
 | 
			
		||||
  TD_DIABLO_2,
 | 
			
		||||
  TD_DIABLO_3,
 | 
			
		||||
  TD_DIABLO_4
 | 
			
		||||
  TD_D3_1 = 0,
 | 
			
		||||
  TD_D3_2,
 | 
			
		||||
  TD_D3_3,
 | 
			
		||||
  TD_D3_4
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -80,10 +80,10 @@ void diablo_tapdance4(qk_tap_dance_state_t *state, void *user_data) {
 | 
			
		|||
//Tap Dance Definitions
 | 
			
		||||
qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		||||
  // tap once to disable, and more to enable timed micros
 | 
			
		||||
  [TD_DIABLO_1] = ACTION_TAP_DANCE_FN(diablo_tapdance1),
 | 
			
		||||
  [TD_DIABLO_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2),
 | 
			
		||||
  [TD_DIABLO_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3),
 | 
			
		||||
  [TD_DIABLO_4] = ACTION_TAP_DANCE_FN(diablo_tapdance4),
 | 
			
		||||
  [TD_D3_1] = ACTION_TAP_DANCE_FN(diablo_tapdance1),
 | 
			
		||||
  [TD_D3_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2),
 | 
			
		||||
  [TD_D3_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3),
 | 
			
		||||
  [TD_D3_4] = ACTION_TAP_DANCE_FN(diablo_tapdance4),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -92,33 +92,33 @@ qk_tap_dance_action_t tap_dance_actions[] = {
 | 
			
		|||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
  [_NUMLOCK] = KEYMAP(
 | 
			
		||||
      LMACRO,  DIABLO,  GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      MEDIA,   KC_CALC, COVECUBE,KC_P7,   KC_P8,   KC_P9,   KC_PAST,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_HOME, KC_DEL,  KC_PGUP, KC_P4,   KC_P5,   KC_P6,   KC_PMNS,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_END,  KC_UP,   KC_PGDN, KC_P1,   KC_P2,   KC_P3,   KC_PPLS,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_LEFT, KC_DOWN, KC_RGHT, KC_P0,   KC_P00,  KC_PDOT, KC_PENT,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
 | 
			
		||||
      LMACRO,      DIABLO,      GAMEPAD,     KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      MEDIA,       KC_CALC,     COVECUBE,    KC_P7,   KC_P8,   KC_P9,   KC_PAST,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_HOME,     KC_DEL,      KC_PGUP,     KC_P4,   KC_P5,   KC_P6,   KC_PMNS,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_END,      KC_UP,       KC_PGDN,     KC_P1,       KC_P2,   KC_P3,   KC_PPLS,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_LEFT,     KC_DOWN, K   C_RGHT,      KC_P0,       KC_KP_00,KC_PDOT, KC_PENT,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_DIABLO] = KEYMAP(
 | 
			
		||||
      KC_ESC,  DIABLO,  KC_V,    KC_D,    XXXXXXX, XXXXXXX, KC_L,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_TAB,  KC_S,    KC_F,    KC_I,    KC_M,    KC_T,    KC_J,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_Q,    KC_1,    KC_2,    KC_3,    KC_4,    KC_G,    KC_F,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_LCTL, TD(TD_DIABLO_1), TD(TD_DIABLO_2), TD(TD_DIABLO_3), TD(TD_DIABLO_4), KC_Z, KC_DIABLO_CLEAR,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_LALT, KC_F4,   KC_F5,   KC_F8,   KC_F9,   KC_F10,  SFT_T(KC_SPACE),          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
 | 
			
		||||
      KC_ESC,      DIABLO,      KC_V,        KC_D,        XXXXXXX,     XXXXXXX,     KC_L,                     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_TAB,      KC_S,        KC_F,        KC_I,        KC_M,        KC_T,        KC_J,                     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_Q,        KC_1,        KC_2,        KC_3,        KC_4,        KC_G,        KC_F,                     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_LCTL,     TD(TD_D3_1), TD(TD_D3_2), TD(TD_D3_3), TD(TD_D3_4), KC_Z,        KC_DIABLO_CLEAR,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_LALT,     KC_F4,       KC_F5,       KC_F8,       KC_F9,       KC_F10,      SFT_T(KC_SPACE),          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_OVERWATCH] = KEYMAP(  // Game pad layout designed primarily for Overwatch
 | 
			
		||||
      LMACRO,   KC_ESC,  GAMEPAD, KC_1,    KC_2,    KC_3,    KC_4,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      MEDIA,   KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_Z,    KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_Y,    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_F1,   KC_U,    KC_I,    KC_Y,    KC_V,    KC_SPC,  KC_V,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
 | 
			
		||||
      LMACRO,      KC_ESC,      GAMEPAD,     KC_1,        KC_2,        KC_3,        KC_4,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      MEDIA,       KC_TAB,      KC_Q,        KC_W,        KC_E,        KC_R,        KC_T,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_Z,        KC_LCTL,     KC_A,        KC_S,        KC_D,        KC_F,        KC_G,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_Y,        KC_LSFT,     KC_Z,        KC_X,        KC_C,        KC_V,        KC_B,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_F1,       KC_U,        KC_I,        KC_Y,        KC_V,        KC_SPC,      KC_V,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_MACROS] = KEYMAP(
 | 
			
		||||
      LMACRO,       XXXXXXX,     GAMEPAD,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      LMACRO,      XXXXXXX,     GAMEPAD,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_SYMM,     KC_TORB,     KC_DOOMFIST, XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_SYMM,     KC_TORB,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_GLHF,     KC_GOODGAME, XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
 | 
			
		||||
      KC_SALT,     KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM,      XXXXXXX,     XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
 | 
			
		||||
  ),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,10 @@
 | 
			
		|||
#include "action.h"
 | 
			
		||||
#include "version.h"
 | 
			
		||||
 | 
			
		||||
// Add reconfigurable functions here, for keymap customization
 | 
			
		||||
// This allows for a global, userspace functions, and continued
 | 
			
		||||
// customization of the keymap.  Use _keymap instead of _user
 | 
			
		||||
// functions in the keymaps
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_init_keymap(void) {}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -13,8 +17,15 @@ __attribute__ ((weak))
 | 
			
		|||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
uint32_t layer_state_set_keymap (uint32_t state) {
 | 
			
		||||
  return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool is_overwatch = false;
 | 
			
		||||
 | 
			
		||||
// Call user matrix init, set default RGB colors and then
 | 
			
		||||
// call the keymap's init function
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
  uint8_t default_layer = eeconfig_read_default_layer();
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +55,8 @@ void matrix_init_user(void) {
 | 
			
		|||
  matrix_init_keymap();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// No global matrix scan code, so just run keymap's matix
 | 
			
		||||
// scan function
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
  matrix_scan_keymap();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -61,16 +74,10 @@ void persistent_default_layer_set(uint16_t default_layer) {
 | 
			
		|||
  default_layer_set(default_layer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Defines actions tor my global custom keycodes. Defined in drashna.h file
 | 
			
		||||
// Then runs the _keymap's recod handier if not processed here
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
 | 
			
		||||
  uint16_t kc;
 | 
			
		||||
  if (is_overwatch) {
 | 
			
		||||
    kc = KC_BSPC;
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    kc = KC_ENTER;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
#ifdef CONSOLE_ENABLE
 | 
			
		||||
  xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed);
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -143,6 +150,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
#if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_ergodox_ez))
 | 
			
		||||
  case KC_OVERWATCH:
 | 
			
		||||
    if (record->event.pressed) {
 | 
			
		||||
      is_overwatch = !is_overwatch;
 | 
			
		||||
| 
						 | 
				
			
			@ -154,8 +162,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_SALT:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("Salt, salt, salt...");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -165,8 +173,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_MORESALT:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("Please sir, can I have some more salt?!");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -176,10 +184,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_SALTHARD:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("Your salt only makes my penis that much harder, and even more aggressive!");
 | 
			
		||||
      SEND_STRING("Your salt only makes me harder, and even more aggressive!");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
      unregister_code(KC_ENTER);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -187,8 +195,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_GOODGAME:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("Good game, everyone!");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -198,8 +206,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_GLHF:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("Good luck, have fun!!!");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -209,8 +217,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_SYMM:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("Left click to win!");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -218,21 +226,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  case KC_DOOMFIST:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("Hey, look at me.  I'm Doomfist, and I'm overpowered!  All I do is spam punches all day!   I'm DPS, tank and defense, rolled into one! All I need is team healing to be complete!");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
      unregister_code(KC_ENTER);
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  case KC_JUSTGAME:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -242,8 +239,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_TORB:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("That was positively riveting!");
 | 
			
		||||
      register_code(KC_ENTER);
 | 
			
		||||
| 
						 | 
				
			
			@ -253,8 +250,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    break;
 | 
			
		||||
  case KC_AIM:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(kc);
 | 
			
		||||
      unregister_code(kc);
 | 
			
		||||
      register_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
      SEND_STRING("That aim is absolutely amazing. It's almost like you're a machine!" SS_TAP(X_ENTER));
 | 
			
		||||
      _delay_ms(50);
 | 
			
		||||
| 
						 | 
				
			
			@ -262,13 +259,31 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
#endif
 | 
			
		||||
  case KC_MAKE:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP " RGBLIGHT_ENABLE=yes" SS_TAP(X_ENTER));
 | 
			
		||||
      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
 | 
			
		||||
#ifndef CATERINA_BOOTLOADER
 | 
			
		||||
      SEND_STRING(":teensy ");
 | 
			
		||||
#else
 | 
			
		||||
      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP " RGBLIGHT_ENABLE=no"SS_TAP(X_ENTER));
 | 
			
		||||
      SEND_STRING(" ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
      SEND_STRING("RGBLIGHT_ENABLE=yes ");
 | 
			
		||||
#else
 | 
			
		||||
      SEND_STRING("RGBLIGHT_ENABLE=no ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
      SEND_STRING("AUDIO_ENABLE=yes ");
 | 
			
		||||
#else
 | 
			
		||||
      SEND_STRING("AUDIO_ENABLE=no ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef FAUXCLICKY_ENABLE
 | 
			
		||||
      SEND_STRING("FAUXCLICKY_ENABLE=yes ");
 | 
			
		||||
#else
 | 
			
		||||
      SEND_STRING("FAUXCLICKY_ENABLE=no ");
 | 
			
		||||
#endif
 | 
			
		||||
      SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
| 
						 | 
				
			
			@ -295,21 +310,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  case KC_P00:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      register_code(KC_P0);
 | 
			
		||||
      unregister_code(KC_P0);
 | 
			
		||||
      register_code(KC_P0);
 | 
			
		||||
      unregister_code(KC_P0);
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  return process_record_keymap(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint32_t layer_state_set_kb(uint32_t state) {
 | 
			
		||||
// Runs state check and changes underglow color and animation
 | 
			
		||||
// on layer change, no matter where the change was initiated
 | 
			
		||||
// Then runs keymap's layer change check
 | 
			
		||||
uint32_t layer_state_set_user (uint32_t state) {
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
  uint8_t default_layer = eeconfig_read_default_layer();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -329,7 +337,6 @@ uint32_t layer_state_set_kb(uint32_t state) {
 | 
			
		|||
  case _MACROS:
 | 
			
		||||
    rgblight_set_orange;
 | 
			
		||||
    is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
 | 
			
		||||
    rgblight_mode(18);
 | 
			
		||||
    break;
 | 
			
		||||
  case _MEDIA:
 | 
			
		||||
    rgblight_set_green;
 | 
			
		||||
| 
						 | 
				
			
			@ -375,5 +382,5 @@ uint32_t layer_state_set_kb(uint32_t state) {
 | 
			
		|||
    break;
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
  return state;
 | 
			
		||||
  return layer_state_set_keymap (state);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,8 +38,7 @@
 | 
			
		|||
#define rgblight_set_purple      rgblight_sethsv (0x10E, 0xFF, 0xFF);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
bool is_overwatch = false;
 | 
			
		||||
extern bool is_overwatch;
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
  PLACEHOLDER = SAFE_RANGE, // can always be here
 | 
			
		||||
| 
						 | 
				
			
			@ -59,15 +58,13 @@ enum custom_keycodes {
 | 
			
		|||
  KC_SALTHARD,
 | 
			
		||||
  KC_GOODGAME,
 | 
			
		||||
  KC_SYMM,
 | 
			
		||||
  KC_DOOMFIST,
 | 
			
		||||
  KC_JUSTGAME,
 | 
			
		||||
  KC_GLHF,
 | 
			
		||||
  KC_TORB,
 | 
			
		||||
  KC_AIM,
 | 
			
		||||
  KC_MAKE,
 | 
			
		||||
  KC_RESET,
 | 
			
		||||
  KC_P00,
 | 
			
		||||
  NEWPLACEHOLDER
 | 
			
		||||
  NEWPLACEHOLDER  //use "NEWPLACEHOLDER for keymap specific codes
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,3 @@
 | 
			
		|||
 | 
			
		||||
SRC += drashna.c
 | 
			
		||||
EXTRAFLAGS        = -flto
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										82
									
								
								users/drashna/template.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								users/drashna/template.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
#include "drashna.h"
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
#include "action.h"
 | 
			
		||||
#include "version.h"
 | 
			
		||||
 | 
			
		||||
// Add reconfigurable functions here, for keymap customization
 | 
			
		||||
// This allows for a global, userspace functions, and continued
 | 
			
		||||
// customization of the keymap.  Use _keymap instead of _user
 | 
			
		||||
// functions in the keymaps
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_init_keymap(void) {}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
void matrix_scan_keymap(void) {}
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
uint32_t layer_state_set_keymap (uint32_t state) {
 | 
			
		||||
  return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Call user matrix init, then call the keymap's init function
 | 
			
		||||
void matrix_init_user(void) {
 | 
			
		||||
  matrix_init_keymap();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// No global matrix scan code, so just run keymap's matix
 | 
			
		||||
// scan function
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
  matrix_scan_keymap();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Defines actions tor my global custom keycodes. Defined in drashna.h file
 | 
			
		||||
// Then runs the _keymap's recod handier if not processed here,
 | 
			
		||||
// And use "NEWPLACEHOLDER" for new safe range
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  
 | 
			
		||||
  switch (keycode) {
 | 
			
		||||
  case KC_MAKE:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
 | 
			
		||||
#ifndef CATERINA_BOOTLOADER
 | 
			
		||||
      SEND_STRING(":teensy ");
 | 
			
		||||
#else
 | 
			
		||||
      SEND_STRING(" ");
 | 
			
		||||
#endif
 | 
			
		||||
      SEND_STRING(SS_TAP(X_ENTER));
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  case KC_RESET:
 | 
			
		||||
    if (!record->event.pressed) {
 | 
			
		||||
      reset_keyboard();
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  case EPRM:
 | 
			
		||||
    if (record->event.pressed) {
 | 
			
		||||
      eeconfig_init();
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  case VRSN:
 | 
			
		||||
    if (record->event.pressed) {
 | 
			
		||||
      SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  return process_record_keymap(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Runs state check and changes underglow color and animation
 | 
			
		||||
// on layer change, no matter where the change was initiated
 | 
			
		||||
// Then runs keymap's layer change check
 | 
			
		||||
uint32_t layer_state_set_user (uint32_t state) {
 | 
			
		||||
  return layer_state_set_keymap (state);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								users/drashna/template.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								users/drashna/template.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
#ifndef USERSPACE
 | 
			
		||||
#define USERSPACE
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
// Define layer names 
 | 
			
		||||
#define BASE 0
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
  PLACEHOLDER = SAFE_RANGE, // can always be here
 | 
			
		||||
  EPRM,
 | 
			
		||||
  VRSN,
 | 
			
		||||
  KC_MAKE,
 | 
			
		||||
  KC_RESET,
 | 
			
		||||
  NEWPLACEHOLDER  //use "NEWPLACEHOLDER for keymap specific codes
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue