Commit | Line | Data |
---|---|---|
4a8da0cb | 1 | #include "nyquist.h" |
aeade1b1 DN |
2 | #include "action_layer.h" |
3 | #include "eeconfig.h" | |
4 | ||
5 | extern keymap_config_t keymap_config; | |
6 | ||
7 | #define _QWERTY 0 | |
8 | #define _COLEMAK 1 | |
9 | #define _DVORAK 2 | |
10 | #define _LOWER 3 | |
11 | #define _RAISE 4 | |
12 | #define _FN3 5 | |
13 | #define _FN4 6 | |
14 | #define _ADJUST 16 | |
15 | ||
16 | enum custom_keycodes { | |
17 | QWERTY = SAFE_RANGE, | |
18 | COLEMAK, | |
19 | DVORAK, | |
20 | LOWER, | |
21 | RAISE, | |
22 | FN3, | |
23 | FN4, | |
24 | ADJUST, | |
25 | }; | |
26 | ||
27 | #define KC_ KC_TRNS | |
28 | #define _______ KC_TRNS | |
29 | ||
30 | #define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen | |
31 | #define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen | |
32 | #define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen | |
33 | #define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen | |
34 | #define KC_X0 MT(MOD_LCTL, KC_ESC) | |
35 | #define KC_X1 LOWER | |
36 | #define KC_X2 RAISE | |
37 | #define KC_X3 LT(_FN3, KC_GRV) | |
38 | #define KC_X4 MT(MOD_LSFT, KC_ENT) | |
2b677dda | 39 | #define KC_BL_S BL_STEP |
aeade1b1 DN |
40 | |
41 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
42 | ||
1f778684 | 43 | [_QWERTY] = LAYOUT_kc( |
aeade1b1 | 44 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
4a8da0cb DN |
45 | ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, |
46 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
aeade1b1 DN |
47 | TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, |
48 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
49 | X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, | |
50 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
51 | LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , | |
52 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
53 | X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT | |
54 | //`----+----+----+----+----+----' `----+----+----+----+----+----' | |
55 | ), | |
56 | ||
1f778684 | 57 | [_COLEMAK] = LAYOUT_kc( |
aeade1b1 | 58 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
4a8da0cb DN |
59 | ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, |
60 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
aeade1b1 DN |
61 | TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, |
62 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
63 | X0 , A , R , S , T , D , H , N , E , I , O ,QUOT, | |
64 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
65 | LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , | |
66 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
67 | X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT | |
68 | //`----+----+----+----+----+----' `----+----+----+----+----+----' | |
69 | ), | |
70 | ||
1f778684 | 71 | [_DVORAK] = LAYOUT_kc( |
aeade1b1 | 72 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
4a8da0cb DN |
73 | ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, |
74 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
aeade1b1 DN |
75 | TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, |
76 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
aae727d9 | 77 | X0 , A , O , E , U , I , D , H , T , N , S ,SLSH, |
aeade1b1 DN |
78 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
79 | LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , | |
80 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
81 | X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT | |
82 | //`----+----+----+----+----+----' `----+----+----+----+----+----' | |
83 | ), | |
84 | ||
1f778684 | 85 | [_LOWER] = LAYOUT_kc( |
aeade1b1 | 86 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
4a8da0cb DN |
87 | TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, |
88 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
aeade1b1 DN |
89 | , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , |
90 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
91 | DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE, | |
92 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
93 | ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , | |
94 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
2b677dda | 95 | BL_S, , , , , , DEL , , P0 ,PDOT, , |
aeade1b1 DN |
96 | //`----+----+----+----+----+----' `----+----+----+----+----+----' |
97 | ), | |
98 | ||
1f778684 | 99 | [_RAISE] = LAYOUT_kc( |
aeade1b1 | 100 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
4a8da0cb DN |
101 | TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC, |
102 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
aeade1b1 DN |
103 | ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , |
104 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
105 | DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, | |
106 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
107 | MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , | |
108 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
fe60cbd9 | 109 | , , , , , , , , , , , |
aeade1b1 DN |
110 | //`----+----+----+----+----+----' `----+----+----+----+----+----' |
111 | ), | |
112 | ||
1f778684 | 113 | [_FN3] = LAYOUT_kc( |
aeade1b1 DN |
114 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
115 | F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , | |
116 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
117 | , , , , , , , , , , , , | |
118 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | |
119 | , , , , , , , , , , , , | |
4a8da0cb DN |
120 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
121 | , , , , , , , , , , , , | |
aeade1b1 | 122 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
fe60cbd9 | 123 | , , , , , , , , , , , |
aeade1b1 DN |
124 | //`----+----+----+----+----+----' `----+----+----+----+----+----' |
125 | ), | |
126 | ||
127 | /* Adjust (Lower + Raise) | |
128 | * ,-----------------------------------------------------------------------------------. | |
129 | * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | | | |
130 | * |------+------+------+------+------+-------------+------+------+------+------+------| | |
131 | * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | | |
132 | * |------+------+------+------+------+------|------+------+------+------+------+------| | |
133 | * | | | | | | | | | | | | | | |
134 | * |------+------+------+------+------+------+------+------+------+------+------+------| | |
135 | * | | | | | | | | | | | | | |
136 | * `-----------------------------------------------------------------------------------' | |
137 | */ | |
1f778684 | 138 | [_ADJUST] = LAYOUT( \ |
4a8da0cb | 139 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ |
aeade1b1 DN |
140 | _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ |
141 | _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ | |
142 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ | |
143 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ | |
144 | ) | |
145 | ||
146 | ||
147 | }; | |
148 | ||
149 | #ifdef AUDIO_ENABLE | |
150 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); | |
151 | float tone_dvorak[][2] = SONG(DVORAK_SOUND); | |
152 | float tone_colemak[][2] = SONG(COLEMAK_SOUND); | |
153 | #endif | |
154 | ||
155 | void persistent_default_layer_set(uint16_t default_layer) { | |
156 | eeconfig_update_default_layer(default_layer); | |
157 | default_layer_set(default_layer); | |
158 | } | |
159 | ||
160 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
161 | switch (keycode) { | |
162 | case QWERTY: | |
163 | if (record->event.pressed) { | |
164 | #ifdef AUDIO_ENABLE | |
fe60cbd9 | 165 | PLAY_SONG(tone_qwerty); |
aeade1b1 DN |
166 | #endif |
167 | persistent_default_layer_set(1UL<<_QWERTY); | |
168 | } | |
169 | return false; | |
170 | break; | |
171 | case COLEMAK: | |
172 | if (record->event.pressed) { | |
173 | #ifdef AUDIO_ENABLE | |
fe60cbd9 | 174 | PLAY_SONG(tone_colemak); |
aeade1b1 DN |
175 | #endif |
176 | persistent_default_layer_set(1UL<<_COLEMAK); | |
177 | } | |
178 | return false; | |
179 | break; | |
180 | case DVORAK: | |
181 | if (record->event.pressed) { | |
182 | #ifdef AUDIO_ENABLE | |
fe60cbd9 | 183 | PLAY_SONG(tone_dvorak); |
aeade1b1 DN |
184 | #endif |
185 | persistent_default_layer_set(1UL<<_DVORAK); | |
186 | } | |
187 | return false; | |
188 | break; | |
189 | case LOWER: | |
190 | if (record->event.pressed) { | |
191 | layer_on(_LOWER); | |
192 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
193 | } else { | |
194 | layer_off(_LOWER); | |
195 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
196 | } | |
197 | return false; | |
198 | break; | |
199 | case RAISE: | |
200 | if (record->event.pressed) { | |
201 | layer_on(_RAISE); | |
202 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
203 | } else { | |
204 | layer_off(_RAISE); | |
205 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | |
206 | } | |
207 | return false; | |
208 | break; | |
209 | case ADJUST: | |
210 | if (record->event.pressed) { | |
211 | layer_on(_ADJUST); | |
212 | } else { | |
213 | layer_off(_ADJUST); | |
214 | } | |
215 | return false; | |
216 | break; | |
217 | } | |
218 | return true; | |
219 | } |