]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/lets_split/keymaps/adam/keymap.c
Merge pull request #1387 from antelaurijssen/master
[qmk_firmware.git] / keyboards / lets_split / keymaps / adam / keymap.c
1 #include "lets_split.h"
2 #include "action_layer.h"
3 #include "eeconfig.h"
4
5 extern keymap_config_t keymap_config;
6
7 // Each layer gets a name for readability, which is then used in the keymap matrix below.
8 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
9 // Layer names don't all need to be of the same length, obviously, and you can also skip them
10 // entirely and just use numbers.
11 #define BASE 0 // default layer
12 #define FLOCK 1 // symbols arrows and F keys on F held down
13 #define JLOCK 2 // same as Flock but with fall thru J and mapped to J held down
14
15 // Fillers to make layering more clear
16 #define _______ KC_TRNS
17 #define XXXXXXX KC_NO
18
19 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 /* Qwerty
22  * ,-----------------------------------------------------------------------------------.
23  * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
24  * |------+------+------+------+------+-------------+------+------+------+------+------|
25  * | Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "   |
26  * |------+------+------+------+------+------|------+------+------+------+------+------|
27  * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Enter |
28  * |------+------+------+------+------+------+------+------+------+------+------+------|
29  * | Brite| Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Left | Down |  Up  |Right |
30  * `-----------------------------------------------------------------------------------'
31  */
32 [BASE] = KEYMAP ( \
33   TD(1),         KC_2,       KC_3,         KC_4,     KC_5,         KC_MINS, KC_EQL,    KC_6,        KC_7,        KC_8,         KC_9,           KC_0,     \
34   KC_Q,         KC_W,       KC_E,         KC_R,     KC_T,         KC_TAB,  KC_TAB,    KC_Y,        KC_U,        KC_I,         KC_O,           KC_P,    \
35   SFT_T(KC_A),  ALT_T(KC_S),CTL_T(KC_D),  F(FLOCK), GUI_T(KC_G),  KC_BSPC, KC_DELETE, GUI_T(KC_H), F(JLOCK),    CTL_T(KC_K),  ALT_T(KC_L),    SFT_T(KC_SCLN), \
36   KC_Z,         KC_X,       KC_C,         KC_V,     KC_B,         KC_SPC,  KC_ENT,    KC_N,        KC_M,        KC_COMM,      KC_DOT,         KC_QUOTE
37 ),
38 [FLOCK] = KEYMAP ( \
39   KC_F1,      KC_F2,      KC_F3,       KC_F4,      KC_F5,      KC_F11,     KC_F12,     KC_F6,      KC_F7,      KC_F8,     KC_F9,    KC_F10, \
40   KC_LBRC,    KC_GRV,     KC_TILDE,    S(KC_1),    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    KC_HOME,    KC_PGUP,   XXXXXXX,  KC_RBRC, \
41   S(KC_LBRC), _______,    _______,     _______,    _______,    XXXXXXX,    XXXXXXX,    KC_LEFT,    KC_DOWN,    KC_UP,     KC_RIGHT, S(KC_RBRC), \
42   KC_BSLS,    KC_PIPE,    XXXXXXX,     XXXXXXX,    XXXXXXX,    KC_ESC,     KC_ESC,     XXXXXXX,    KC_END,     KC_PGDOWN, KC_QUES,  KC_SLASH \
43 ),
44 [JLOCK] = KEYMAP ( \
45   KC_F1,      KC_F2,      KC_F3,       KC_F4,      KC_F5,      KC_F11,     KC_F12,     KC_F6,      KC_F7,      KC_F8,     KC_F9,    KC_F10, \
46   KC_LBRC,    KC_GRV,     KC_TILDE,    S(KC_1),    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    KC_HOME,    KC_PGUP,   XXXXXXX,  KC_RBRC, \
47   S(KC_LBRC), _______,    _______,     _______,    _______,    XXXXXXX,    XXXXXXX,    KC_LEFT,    _______,    KC_UP,     KC_RIGHT, S(KC_RBRC), \
48   KC_BSLS,    KC_PIPE,    XXXXXXX,     XXXXXXX,    XXXXXXX,    KC_ESC,     KC_ESC,     XXXXXXX,    KC_END,     KC_PGDOWN, KC_QUES,  KC_SLASH \
49 )
50 };
51
52 const uint16_t PROGMEM fn_actions[] = {
53   [FLOCK] = ACTION_LAYER_TAP_KEY(FLOCK,KC_F),
54   [JLOCK] = ACTION_LAYER_TAP_KEY(JLOCK,KC_J)
55 };
56 #ifdef TAP_DANCE_ENABLE
57 void tap_1(qk_tap_dance_state_t *state, void *user_data) {
58   switch (state->count) {
59   case 1:
60     register_code (KC_1);
61     unregister_code (KC_1);
62     break;
63   case 2:
64     register_code (KC_ESC);
65     unregister_code (KC_ESC);
66     break;
67   case 3:
68     register_code (KC_LSFT);
69     register_code (KC_1);
70     unregister_code (KC_1);
71     unregister_code (KC_LSFT);
72   }
73 }
74
75 qk_tap_dance_action_t tap_dance_actions[] = {
76         [0]  = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_ESC),
77   [1]  = ACTION_TAP_DANCE_FN(tap_1)
78 };
79 #endif