@@ 25,7 25,14 @@ enum custom_keycodes {
CZ_ACUTED, // on hold send cz acute prepended to each symbol
ACHORDION_OFF,
ACHORDION_ON,
+ _QK_TAP_HOLD
};
+const uint16_t QK_TAP_HOLD = _QK_TAP_HOLD;
+
+tap_hold_action_t tap_hold_actions[] = {
+ [0] = ACTION_TAP_HOLD(KC_ESC, QK_REP, true),
+};
+const uint16_t QK_TAP_HOLD_SIZE = sizeof(tap_hold_actions) / sizeof(tap_hold_actions[0]);
#define SYM MO(_SYM)
#define NUM MO(_NUM)
@@ 75,20 82,22 @@ enum custom_keycodes {
#define WM_TERM G(S(KC_ENT))
#define WM_KILL G(S(KC_C))
+#define ESC_REP TH(0)
+
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
- KC_TAB, GUI_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, GUI_P, KC_BSLS,
- KC_ESC, SYM_A, LALT_S, LSFT_D, LCTL_F, KC_G, KC_H, LCTL_J, RSFT_K, LALT_L, SYM_SCLN, KC_QUOT,
- _______, KC_Z, KC_X, KC_C, NAV_V, KC_B, KC_N, WM_M, KC_COMM, KC_DOT, KC_SLSH, _______,
- CZ_ACUTED, QK_REP, NUM_SPC, ALT_ENT, KC_BSPC,CZ_CARETED
+ KC_TAB, GUI_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, GUI_P, _______,
+ KC_ESC, SYM_A, LALT_S, LSFT_D, LCTL_F, KC_G, KC_H, LCTL_J, RSFT_K, LALT_L, SYM_SCLN, _______,
+ QK_REP, KC_Z, KC_X, KC_C, NAV_V, KC_B, KC_N, WM_M, KC_COMM, KC_DOT, KC_SLSH, FKEYS,
+ CZ_ACUTED, KC_ESC, NUM_SPC, KC_ENT, KC_BSPC, CZ_CARETED
),
[_QWERTY_NOHOMEMODS] = LAYOUT(
- SUP_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SUP_BSLS,
- CTL_ESC, SYM_A, KC_S, KC_D, KC_F, NUM_G, KC_H, KC_J, KC_K, KC_L, SYM_SCLN, CTL_QUOT,
- OSM_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM_RSFT,
- CZ_ACUTED, QK_REP, ALT_SPC, ALT_ENT, KC_BSPC,CZ_CARETED
+ SUP_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SUP_BSLS,
+ CTL_ESC, SYM_A, KC_S, KC_D, KC_F, NUM_G, KC_H, KC_J, KC_K, KC_L, SYM_SCLN, CTL_QUOT,
+ OSM_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM_RSFT,
+ CZ_ACUTED, KC_ESC, ALT_SPC, ALT_ENT, KC_BSPC, CZ_CARETED
),
[_PLAIN] = LAYOUT(
@@ 102,56 111,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, 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, KC_SLSH, KC_RSFT,
- CZ_ACUTED, QK_REP, KC_SPC, ALT_ENT, KC_BSPC,CZ_CARETED
+ FKEYS, QK_REP, KC_SPC, ALT_ENT, KC_BSPC, CZ_CARETED
),
[_SYM] = LAYOUT(
- _______, _______, KC_LABK, KC_RABK, KC_BSLS, KC_GRAVE, KC_AMPR, KC_UNDS, KC_LBRC, KC_RBRC, KC_PERC, _______,
- _______, KC_EXLM, KC_MINUS, KC_PLUS, KC_EQUAL, KC_HASH, KC_PIPE, KC_TILD, KC_LPRN, KC_RPRN, KC_COLON, KC_DQUO,
- _______, KC_COLN, KC_SLASH, KC_ASTR, KC_CIRC, _______, _______, KC_DLR, KC_LCBR, KC_RCBR, KC_AT, _______,
- _______, _______, _______, QK_LLCK, _______, KC_DEL
+ _______, KC_QUOT, KC_LABK, KC_RABK, KC_BSLS, KC_GRAVE, KC_AMPR, KC_UNDS, KC_LBRC, KC_RBRC, KC_PERC, _______,
+ _______, KC_EXLM, KC_MINUS, KC_PLUS, KC_EQUAL, KC_HASH, KC_PIPE, KC_TILD, KC_LPRN, KC_RPRN, KC_DQUO, _______,
+ _______, KC_COLN, KC_SLASH, KC_ASTR, KC_CIRC, _______, _______, KC_DLR, KC_LCBR, KC_RCBR, KC_AT, _______,
+ _______, KC_TAB, _______, _______, KC_DEL, QK_LLCK
),
[_NAV] = LAYOUT(
- _______, KC_LGUI, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_DEL,
- _______, KC_LCTL, KC_LALT, OSM_LSFT, KC_LCTL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
- _______, _______, _______, QK_LLCK, _______, _______
+ _______, KC_LGUI, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_DEL,
+ _______, KC_LCTL, KC_LALT, OSM_LSFT, KC_LCTL, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
+ _______, _______, _______, _______, _______, QK_LLCK
),
[_FUNCTION] = LAYOUT(
- _______, _______, KC_F4, KC_F9, KC_F8, KC_F10, _______, _______, _______, _______, KC_RGUI, _______,
- _______, _______, KC_F3, KC_F2, KC_F1, KC_F11, _______, KC_LCTL, OSM_RSFT, KC_LALT, KC_RGUI, _______,
- _______, _______, KC_F5, KC_F6, KC_F7, KC_F12, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, QK_LLCK, _______, _______
+ _______, _______, KC_F4, KC_F9, KC_F8, KC_F10, _______, _______, _______, _______, KC_RGUI, _______,
+ _______, _______, KC_F3, KC_F2, KC_F1, KC_F11, _______, KC_LCTL, OSM_RSFT, KC_LALT, KC_RGUI, _______,
+ CTRL, _______, KC_F5, KC_F6, KC_F7, KC_F12, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, QK_LLCK
),
[_NUM] = LAYOUT(
- _______, _______, _______, _______, _______, _______, KC_PLUS, KC_8, KC_9, KC_4, _______, _______,
- _______, KC_LGUI, KC_LALT, KC_LCTL, OSM_LSFT, _______, KC_EQUAL, KC_1, KC_2, KC_3, KC_SLASH, _______,
- _______, _______, _______, _______, _______, _______, KC_MINUS, KC_7, KC_6, KC_5, KC_DOT, _______,
- _______, _______, _______, KC_0, QK_LLCK, _______
+ _______, _______, _______, _______, _______, _______, KC_PLUS, KC_8, KC_9, KC_4, _______, _______,
+ _______, KC_LGUI, KC_LALT, KC_LCTL, OSM_LSFT, _______, KC_EQUAL, KC_1, KC_2, KC_3, KC_SLASH, _______,
+ _______, _______, _______, _______, _______, _______, KC_MINUS, KC_7, KC_6, KC_5, KC_DOT, _______,
+ _______, _______, _______, KC_0, QK_LLCK, QK_LLCK
),
[_WM] = LAYOUT(
- _______, WM_MON2, WM_WS(4), WM_WS(9), WM_WS(8), _______, _______, _______, WM_RUN, WM_TERM, _______, _______,
- _______, WM_MON1, WM_WS(3), WM_WS(2), WM_WS(1), _______, _______, KC_RCTL, KC_RSFT, KC_LALT, KC_RGUI, WM_KILL,
- _______, WM_MON3, WM_WS(5), WM_WS(6), WM_WS(7), _______, _______, _______, _______, _______, _______, WM_RUN2,
- _______, _______, QK_LLCK, _______, _______, _______
+ _______, WM_MON2, WM_WS(4), WM_WS(9), WM_WS(8), _______, _______, _______, WM_RUN, WM_TERM, _______, _______,
+ _______, WM_MON1, WM_WS(3), WM_WS(2), WM_WS(1), _______, _______, KC_RCTL, KC_RSFT, KC_LALT, KC_RGUI, WM_KILL,
+ _______, WM_MON3, WM_WS(5), WM_WS(6), WM_WS(7), _______, _______, _______, _______, _______, _______, WM_RUN2,
+ _______, _______, QK_LLCK, _______, _______, _______
),
[_CTRL] = LAYOUT(
- _______, _______, _______, _______, _______, _______, DT_UP, _______, _______, _______, _______, ACHORDION_ON,
- _______, _______, _______, _______, _______, _______, DT_DOWN, _______, _______, _______, _______, ACHORDION_OFF,
- _______, _______, _______, _______, _______, _______, DT_PRNT, _______, _______, _______, _______, _______,
- _______, _______, _______, QWERTY, NOHOMODS, GAMES
+ _______, _______, _______, _______, _______, _______, DT_UP, _______, _______, _______, _______, ACHORDION_ON,
+ _______, _______, _______, _______, _______, _______, DT_DOWN, _______, _______, _______, _______, ACHORDION_OFF,
+ _______, _______, _______, _______, _______, _______, DT_PRNT, _______, _______, _______, _______, _______,
+ _______, _______, _______, QWERTY, NOHOMODS, GAMES
),
[_TTY] = LAYOUT(
- _______, _______, LCA(KC_F4), LCA(KC_F9), LCA(KC_F8), LCA(KC_F10), _______, _______, _______, _______, _______, _______,
- _______, _______, LCA(KC_F3), LCA(KC_F2), LCA(KC_F1), LCA(KC_F11), _______, _______, _______, _______, _______, _______,
- _______, _______, LCA(KC_F5), LCA(KC_F6), LCA(KC_F7), LCA(KC_F12), _______, _______, _______, _______, _______, _______,
- _______, _______, QK_LLCK, _______, _______, _______
+ _______, _______, LCA(KC_F4), LCA(KC_F9), LCA(KC_F8), LCA(KC_F10), _______, _______, _______, _______, _______, _______,
+ _______, _______, LCA(KC_F3), LCA(KC_F2), LCA(KC_F1), LCA(KC_F11), _______, _______, _______, _______, _______, _______,
+ _______, _______, LCA(KC_F5), LCA(KC_F6), LCA(KC_F7), LCA(KC_F12), _______, _______, _______, _______, _______, _______,
+ _______, _______, QK_LLCK, _______, _______, _______
),
@@ 179,6 188,7 @@ void keyboard_pre_init_user(void) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
static bool achordion = true;
+ /* if (!process_record_tap_hold(keycode, record)) { return false; } */
if (!process_czech_acute(keycode, record, CZ_ACUTED, _PLAIN)) { return false; }
if (!process_czech_caret(keycode, record, CZ_CARETED, _PLAIN)) { return false; }
if (!process_layer_lock(keycode, record, QK_LLCK)) { return false; }
@@ 216,6 226,7 @@ bool achordion_chord(uint16_t tap_hold_keycode,
void matrix_scan_user(void) {
achordion_task();
+ matrix_scan_tap_hold();
}
bool achordion_eager_mod(uint8_t mod) {