1 #include QMK_KEYBOARD_H
23 #include "dynamic_macro.h"
25 #define LONGPRESS_DELAY 150
26 #define LAYER_TOGGLE_DELAY 900
28 #define __MOD__ KC_TRNS
29 #define F_FNSPC LT(_NUMSYM, KC_SPC)
30 #define F_NUMSPC LT(_NUMPAD, KC_SPC)
31 #define F_FNTAB LT(_FUNCTION, KC_TAB)
33 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
35 F_FNTAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_MINS
, KC_BSPC
, \
36 CTL_T(KC_ESC
), KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, LT(_ADJUST
, KC_QUOT
), \
37 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, SFT_T(KC_ENT
), \
38 XXXXXXX
, KC_LALT
, KC_LGUI
, XXXXXXX
, XXXXXXX
, F_FNSPC
, XXXXXXX
, MO(_FUNCTION
), MO(_ADJUST
), XXXXXXX \
41 [_QWERTYNUMMODS
] = LAYOUT( \
42 F_FNTAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_MINS
, KC_BSPC
, \
43 CTL_T(KC_ESC
), KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, LT(_ADJUST
, KC_QUOT
), \
44 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, SFT_T(KC_ENT
), \
45 XXXXXXX
, KC_LALT
, KC_LGUI
, XXXXXXX
, XXXXXXX
, F_NUMSPC
, XXXXXXX
, MO(_FKEYNUMPAD
), MO(_ADJUST
), XXXXXXX \
49 KC_GRV
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, _______
, KC_DEL
, \
50 __MOD__
, _______
, _______
, _______
, _______
, _______
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
, _______
, _______
, \
51 _______
, _______
, _______
, _______
, _______
, KC_SPC
, KC_MINS
, KC_EQL
, KC_LBRC
, KC_RBRC
, KC_BSLS
, _______
, \
52 XXXXXXX
, __MOD__
, __MOD__
, XXXXXXX
, XXXXXXX
, _______
, XXXXXXX
, __MOD__
, __MOD__
, XXXXXXX \
55 [_FUNCTION
] = LAYOUT( \
56 __MOD__
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, \
57 __MOD__
, _______
, _______
, _______
, _______
, _______
, KC_MPRV
, KC_VOLD
, KC_VOLU
, KC_MNXT
, _______
, _______
, \
58 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, \
59 XXXXXXX
, __MOD__
, __MOD__
, XXXXXXX
, XXXXXXX
, _______
, XXXXXXX
, __MOD__
, __MOD__
, XXXXXXX \
63 KC_GRV
, _______
, KC_UP
, _______
, KC_7
, KC_8
, KC_9
, KC_0
, KC_MINS
, KC_EQL
, KC_PSCR
, KC_LBRC
, KC_RBRC
, \
64 _______
, KC_LEFT
, KC_DOWN
, KC_RGHT
, KC_4
, KC_5
, KC_6
, KC_INS
, KC_HOME
, KC_PGUP
, _______
, _______
, \
65 _______
, _______
, _______
, _______
, KC_1
, KC_2
, KC_3
, KC_DEL
, KC_END
, KC_PGDN
, _______
, _______
, \
66 XXXXXXX
, _______
, _______
, XXXXXXX
, XXXXXXX
, _______
, XXXXXXX
, __MOD__
, __MOD__
, XXXXXXX \
69 [_FKEYNUMPAD
] = LAYOUT( \
70 _______
, _______
, KC_VOLU
, _______
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_PSCR
, _______
, _______
, \
71 _______
, KC_MPRV
, KC_VOLD
, KC_MNXT
, KC_F4
, KC_F5
, KC_F6
, KC_J
, KC_K
, KC_L
, KC_SCLN
, _______
, \
72 _______
, _______
, _______
, _______
, KC_F1
, KC_F2
, KC_F3
, KC_MUTE
, KC_MPRV
, KC_MNXT
, KC_MSTP
, _______
, \
73 XXXXXXX
, _______
, _______
, XXXXXXX
, XXXXXXX
, _______
, XXXXXXX
, __MOD__
, __MOD__
, XXXXXXX \
77 _______
, RESET
, _______
, _______
, _______
, _______
, _______
, DYN_REC_START1
, DYN_REC_START2
, _______
, KC_PSCR
, _______
, _______
, \
78 _______
, _______
, _______
, _______
, USEFNMODS
, _______
, _______
, DYN_MACRO_PLAY1
, DYN_MACRO_PLAY2
, MACSLEEP
, _______
, _______
, \
79 _______
, _______
, _______
, _______
, _______
, _______
, USENUMMODS
, _______
, _______
, _______
, _______
, _______
, \
80 XXXXXXX
, _______
, _______
, XXXXXXX
, XXXXXXX
, _______
, XXXXXXX
, __MOD__
, __MOD__
, XXXXXXX \
84 void persistent_default_layer_set(uint16_t default_layer
)
86 eeconfig_update_default_layer(default_layer
);
87 default_layer_set(default_layer
);
90 static bool singular_key
= false;
92 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
)
94 uint16_t macro_kc
= (keycode
== MO(_ADJUST
) ? DYN_REC_STOP
: keycode
);
95 if (!process_record_dynamic_macro(macro_kc
, record
))
100 print("process record");
105 if (record
->event
.pressed
)
107 // ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_POWER);
108 register_code(KC_RSFT
);
109 register_code(KC_RCTL
);
110 register_code(KC_POWER
);
111 unregister_code(KC_POWER
);
112 unregister_code(KC_RCTL
);
113 unregister_code(KC_RSFT
);
118 if (record
->event
.pressed
)
120 persistent_default_layer_set(1UL << _QWERTY
);
122 PLAY_NOTE_ARRAY(tone_fnpc
, false, 0);
129 if (record
->event
.pressed
)
131 persistent_default_layer_set(1UL << _QWERTYNUMMODS
);
133 PLAY_NOTE_ARRAY(tone_fnmac
, false, 0);
135 print("Space-Numpad");
140 singular_key
= false;
147 void matrix_init_user(void)
152 // debug_enable = true;