Commit | Line | Data |
---|---|---|
44f3c614 SC |
1 | #include QMK_KEYBOARD_H |
2 | ||
3 | extern keymap_config_t keymap_config; | |
4 | ||
5 | enum layer_names { | |
6 | _QWERTY, | |
46023610 | 7 | _COLEMAK, |
44f3c614 SC |
8 | _LOWER, |
9 | _RAISE, | |
10 | _ADJUST | |
11 | }; | |
12 | ||
13 | enum custom_keycodes { | |
da1f05fb | 14 | QWERTY = SAFE_RANGE, |
46023610 | 15 | COLEMAK, |
da1f05fb SC |
16 | LOWER, |
17 | RAISE | |
44f3c614 SC |
18 | }; |
19 | ||
20 | #define KC_ KC_TRNS | |
21 | ||
22 | #define KC_LOWR LOWER | |
23 | #define KC_RASE RAISE | |
24 | #define KC_RST RESET | |
25 | #define KC_BL_S BL_STEP | |
26 | ||
46023610 SC |
27 | // left shift as a left key too - makes perfect sense |
28 | #define KC_LESF LSFT_T(KC_LEFT) | |
44f3c614 SC |
29 | |
30 | ||
31 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
32 | ||
33 | [_QWERTY] = LAYOUT_kc( | |
34 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | |
35 | GESC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, | |
36 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
37 | TAB , Q , W , E , R , T , Y , U , I , O , P ,BSLS, | |
38 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
46023610 | 39 | LCTL, A , S , D , F , G , H , J , K , L ,SCLN,QUOT, |
44f3c614 | 40 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
46023610 | 41 | LESF, Z , X , C , V , B ,LBRC, RBRC, N , M ,COMM,DOT ,SLSH,RGHT, |
da1f05fb SC |
42 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
43 | LGUI,LOWR,ENT , SPC ,RASE,RALT | |
44 | // `----+----+----' `----+----+----' | |
45 | ), | |
46 | ||
46023610 | 47 | [_COLEMAK] = LAYOUT_kc( |
da1f05fb SC |
48 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
49 | GESC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, | |
50 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
46023610 | 51 | TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,BSLS, |
da1f05fb | 52 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
46023610 | 53 | LCTL, A , R , S , T , D , H , N , E , I , O ,QUOT, |
da1f05fb | 54 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
46023610 | 55 | LESF, Z , X , C , V , B ,LBRC, RBRC, K , M ,COMM,DOT ,SLSH,RGHT, |
44f3c614 SC |
56 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
57 | LGUI,LOWR,ENT , SPC ,RASE,RALT | |
58 | // `----+----+----' `----+----+----' | |
59 | ), | |
60 | ||
61 | [_LOWER] = LAYOUT_kc( | |
62 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | |
46023610 | 63 | GRV ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,DEL , |
44f3c614 | 64 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
da1f05fb | 65 | , , , , , , , ,BTN1, , , , |
44f3c614 | 66 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
da1f05fb | 67 | , , , , , , MS_L,MS_D,MS_U,MS_R, , , |
44f3c614 | 68 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
46023610 | 69 | , , , , , UP , , ,DOWN, , , , , , |
44f3c614 SC |
70 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
71 | , , , , , | |
72 | // `----+----+----' `----+----+----' | |
73 | ||
74 | ), | |
75 | [_RAISE] = LAYOUT_kc( | |
76 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | |
77 | F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , | |
78 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
79 | , ,VOLU, , ,LBRC, RBRC,UNDS,PLUS, , ,MUTE, | |
80 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
81 | ,MPLY,VOLD,MNXT, ,LPRN, RPRN,MINS,EQL , , , , | |
82 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | |
46023610 | 83 | , , , , , , , , , , , , , , |
44f3c614 SC |
84 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
85 | , , , , , | |
86 | // `----+----+----' `----+----+----' | |
87 | ), | |
88 | ||
89 | [_ADJUST] = LAYOUT( | |
eafd38e2 SC |
90 | //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------. |
91 | _______,_______,_______,_______,_______, QWERTY, COLEMAK,_______,_______,_______,_______,_______, | |
92 | //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| | |
93 | _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI, _______,_______,_______,_______,_______,_______, | |
94 | //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| | |
95 | RESET ,DEBUG ,_______,RGB_HUD,RGB_SAD,RGB_VAD, _______,_______,_______,_______,_______,_______, | |
96 | //|-------+-------+-------+-------+-------+-------+-------. ,-------|-------+-------+-------+-------+-------+-------| | |
97 | BL_STEP,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______, | |
98 | //`--------+-------+-------+----+--+-------+-------+-------/ \-------+-------+-------+---+---+-------+-------+-------' | |
99 | _______,_______,_______, _______,_______,_______ | |
100 | // `-------+-------+-------' `-------+-------+-------' | |
44f3c614 SC |
101 | ) |
102 | ||
103 | }; | |
104 | ||
44f3c614 SC |
105 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
106 | switch (keycode) { | |
da1f05fb SC |
107 | case QWERTY: |
108 | if (record->event.pressed) { | |
109 | set_single_persistent_default_layer(_QWERTY); | |
110 | } | |
111 | return false; | |
46023610 | 112 | case COLEMAK: |
da1f05fb | 113 | if (record->event.pressed) { |
46023610 | 114 | set_single_persistent_default_layer(_COLEMAK); |
da1f05fb SC |
115 | } |
116 | return false; | |
44f3c614 SC |
117 | case LOWER: |
118 | if (record->event.pressed) { | |
119 | layer_on(_LOWER); | |
120 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
121 | } else { | |
122 | layer_off(_LOWER); | |
123 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
124 | } | |
125 | return false; | |
44f3c614 SC |
126 | case RAISE: |
127 | if (record->event.pressed) { | |
128 | layer_on(_RAISE); | |
129 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
130 | } else { | |
131 | layer_off(_RAISE); | |
132 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
133 | } | |
134 | return false; | |
44f3c614 SC |
135 | } |
136 | return true; | |
137 | } |