aboutsummaryrefslogtreecommitdiff
path: root/keyboards/amj40
diff options
context:
space:
mode:
authorFabian Topfstedt <topfstedt@schneevonmorgen.com>2017-10-06 20:08:35 +0200
committerJack Humbert <jack.humb@gmail.com>2017-10-06 08:08:35 -1000
commit120089d917d18debbf6f02d12c4d8cdb5000599d (patch)
tree4317679f1ba1728ea959ac75252b6143675cfbd0 /keyboards/amj40
parentd2bbfb9058f07ffee75272d954d189ad878fad28 (diff)
downloadqmk_firmware-120089d917d18debbf6f02d12c4d8cdb5000599d.tar.gz
qmk_firmware-120089d917d18debbf6f02d12c4d8cdb5000599d.zip
Consistent fabian layouts for amj40, let's split, planck and xd75 (#1812)
* slight modifier changes; added plover and reusing jack's default planck keymap as the basis * space is not shift when held anymore * added fabian layout (based on jack's default) * changed fabian layout (based on jack's default) * changed fabian layout (based on jack's default)
Diffstat (limited to 'keyboards/amj40')
-rwxr-xr-xkeyboards/amj40/keymaps/fabian/keymap.c137
1 files changed, 66 insertions, 71 deletions
diff --git a/keyboards/amj40/keymaps/fabian/keymap.c b/keyboards/amj40/keymaps/fabian/keymap.c
index 51064b636..41a128e2b 100755
--- a/keyboards/amj40/keymaps/fabian/keymap.c
+++ b/keyboards/amj40/keymaps/fabian/keymap.c
@@ -1,3 +1,18 @@
1/* Copyright 2015-2017 Jack Humbert
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
1#include "amj40.h" 16#include "amj40.h"
2 17
3// Set the custom keymap 18// Set the custom keymap
@@ -14,23 +29,16 @@
14 {k30, k31, k32, k33, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \ 29 {k30, k31, k32, k33, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \
15} 30}
16 31
17// Fillers to make layering more clear 32extern keymap_config_t keymap_config;
18#define _______ KC_TRNS
19#define XXXXXXX KC_NO
20
21// Custom
22#define CTL_ESC CTL_T(KC_ESC) // Tap for Escape, hold for Control
23#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
24#define SFT_BSP SFT_T(KC_BSPC) // Tap for Backspace, hold for Shift
25#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift)
26// #define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift)
27 33
28#define _QWERTY 0 34enum custom_layers {
29#define _COLEMAK 1 35 _QWERTY,
30#define _DVORAK 2 36 _COLEMAK,
31#define _LOWER 3 37 _DVORAK,
32#define _RAISE 4 38 _LOWER,
33#define _ADJUST 16 39 _RAISE,
40 _ADJUST
41};
34 42
35enum custom_keycodes { 43enum custom_keycodes {
36 QWERTY = SAFE_RANGE, 44 QWERTY = SAFE_RANGE,
@@ -38,9 +46,21 @@ enum custom_keycodes {
38 DVORAK, 46 DVORAK,
39 LOWER, 47 LOWER,
40 RAISE, 48 RAISE,
41 ADJUST, 49 BACKLIT,
50 EXT_PLV
42}; 51};
43 52
53#define XXXXXXX KC_NO
54#define _______ KC_TRNS
55
56#define CTL_ESC CTL_T(KC_ESC) // Tap for Escape, hold for Control
57#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift)
58#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift)
59#define SFT_BSP SFT_T(KC_BSPC) // Tap for Backspace, hold for Shift
60#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
61#define SFT_SPC SFT_T(KC_SPC) // Tap for Space, hold for Shift
62#define UMLAUT RALT(KC_U) // Combine Alt and U
63
44const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 64const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45/* Qwerty 65/* Qwerty
46 * ,-----------------------------------------------------------------------------------. 66 * ,-----------------------------------------------------------------------------------.
@@ -50,14 +70,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 * |------+------+------+------+------+------|------+------+------+------+------+------| 70 * |------+------+------+------+------+------|------+------+------+------+------+------|
51 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | 71 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
52 * |------+------+------+------+------+------+------+------+------+------+------+------| 72 * |------+------+------+------+------+------+------+------+------+------+------+------|
53 * |Adjust| Ctrl | Alt | GUI | Lower and Space | Raise and Bksp | GUI |AltGr | Ctrl | 73 * | Ctrl | Meh | Alt | GUI | Lower and Space | Raise | GUI |AltGr | Ctrl |
54 * `-----------------------------------------------------------------------------------' 74 * `-----------------------------------------------------------------------------------'
55 */ 75 */
56[_QWERTY] = KEYMAP( \ 76[_QWERTY] = KEYMAP( \
57 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ 77 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
58 CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ 78 CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
59 SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT , \ 79 SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \
60 F(2), KC_LCTL, KC_LALT, KC_LGUI, F(0), F(1), KC_RGUI, KC_RALT, KC_RCTL \ 80 KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, F(0), RAISE, KC_RGUI, KC_RALT, KC_RCTL \
61), 81),
62 82
63/* Colemak 83/* Colemak
@@ -68,14 +88,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
68 * |------+------+------+------+------+------|------+------+------+------+------+------| 88 * |------+------+------+------+------+------|------+------+------+------+------+------|
69 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | 89 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
70 * |------+------+------+------+------+------+------+------+------+------+------+------| 90 * |------+------+------+------+------+------+------+------+------+------+------+------|
71 * |Adjust| Ctrl | Alt | GUI | Lower and Space | Raise and Bksp | GUI |AltGr | Ctrl | 91 * | Ctrl | Meh | Alt | GUI | Lower and Space | Raise | GUI |AltGr | Ctrl |
72 * `-----------------------------------------------------------------------------------' 92 * `-----------------------------------------------------------------------------------'
73 */ 93 */
74[_COLEMAK] = KEYMAP( \ 94[_COLEMAK] = KEYMAP( \
75 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ 95 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
76 CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ 96 CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
77 SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT , \ 97 SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \
78 F(2), KC_LCTL, KC_LALT, KC_LGUI, F(0), F(1), KC_RGUI, KC_RALT, KC_RCTL \ 98 KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, F(0), RAISE, KC_RGUI, KC_RALT, KC_RCTL \
79), 99),
80 100
81/* Dvorak 101/* Dvorak
@@ -86,14 +106,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
86 * |------+------+------+------+------+------|------+------+------+------+------+------| 106 * |------+------+------+------+------+------|------+------+------+------+------+------|
87 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | 107 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
88 * |------+------+------+------+------+------+------+------+------+------+------+------| 108 * |------+------+------+------+------+------+------+------+------+------+------+------|
89 * |Adjust| Ctrl | Alt | GUI | Lower and Space | Raise and Bksp | GUI |AltGr | Ctrl | 109 * | Ctrl | Meh | Alt | GUI | Lower and Space | Raise | GUI |AltGr | Ctrl |
90 * `-----------------------------------------------------------------------------------' 110 * `-----------------------------------------------------------------------------------'
91 */ 111 */
92[_DVORAK] = KEYMAP( \ 112[_DVORAK] = KEYMAP( \
93 HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ 113 HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
94 CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ 114 CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
95 SFT_BSP, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT , \ 115 SFT_BSP, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT, \
96 F(2), KC_LCTL, KC_LALT, KC_LGUI, F(0), F(1), KC_RGUI, KC_RALT, KC_RCTL \ 116 KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, F(0), RAISE, KC_RGUI, KC_RALT, KC_RCTL \
97), 117),
98 118
99/* Lower 119/* Lower
@@ -104,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
104 * |------+------+------+------+------+------|------+------+------+------+------+------| 124 * |------+------+------+------+------+------|------+------+------+------+------+------|
105 * | | F7 | F8 | F9 | F10 | F11 | F12 | MS L | MS D |MS U | MS R |MS Btn| 125 * | | F7 | F8 | F9 | F10 | F11 | F12 | MS L | MS D |MS U | MS R |MS Btn|
106 * |------+------+------+------+------+------+------+------+------+------+------+------| 126 * |------+------+------+------+------+------+------+------+------+------+------+------|
107 * | | | | | | | | | Next | Vol- | Vol+ | Play | 127 * | | | | | | Next | Vol- | Vol+ | Play |
108 * `-----------------------------------------------------------------------------------' 128 * `-----------------------------------------------------------------------------------'
109 */ 129 */
110[_LOWER] = KEYMAP( \ 130[_LOWER] = KEYMAP( \
@@ -122,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
122 * |------+------+------+------+------+------|------+------+------+------+------+------| 142 * |------+------+------+------+------+------|------+------+------+------+------+------|
123 * | | F7 | F8 | F9 | F10 | F11 | F12 | Left | Down | Up | Rght |MS_BN2| 143 * | | F7 | F8 | F9 | F10 | F11 | F12 | Left | Down | Up | Rght |MS_BN2|
124 * |------+------+------+------+------+------+------+------+------+------+------+------| 144 * |------+------+------+------+------+------+------+------+------+------+------+------|
125 * | | | | | | | | | Next | Vol- | Vol+ | Play | 145 * | | | | | | Next | Vol- | Vol+ | Play |
126 * `-----------------------------------------------------------------------------------' 146 * `-----------------------------------------------------------------------------------'
127 */ 147 */
128[_RAISE] = KEYMAP( \ 148[_RAISE] = KEYMAP( \
@@ -134,72 +154,44 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
134 154
135/* Adjust (Lower + Raise) 155/* Adjust (Lower + Raise)
136 * ,-----------------------------------------------------------------------------------. 156 * ,-----------------------------------------------------------------------------------.
137 * |Reset |Colemk|Qwerty|Dvorak| | | | | MU | | |Reset | 157 * | | Reset| | | | | | | | | Reset| Del |
158 * |------+------+------+------+------+-------------+------+------+------+------+------|
159 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
138 * |------+------+------+------+------+------|------+------+------+------+------+------| 160 * |------+------+------+------+------+------|------+------+------+------+------+------|
139 * | |AGNorm|AGSwap| | | | | ML | MD | MR | | | 161 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
140 * |------+------+------+------+------+------+------+------+------+------+------+------|
141 * | |AudOn |AudOff| | | | |MBtn1 |MBtn2 |MBtn3 | | |
142 * |------+------+------+------+------+------+------+------+------+------+------+------| 162 * |------+------+------+------+------+------+------+------+------+------+------+------|
143 * | | | | | | | | | | | | | 163 * | | | | | | | | | |
144 * `-----------------------------------------------------------------------------------' 164 * `-----------------------------------------------------------------------------------'
145 */ 165 */
146[_ADJUST] = KEYMAP( \ 166[_ADJUST] = KEYMAP( \
147 RESET, COLEMAK, QWERTY, DVORAK, _______, _______, _______, _______, KC_MS_U, _______, _______, RESET, \ 167 _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL, \
148 _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, \ 168 _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
149 _______, AU_ON, AU_OFF, _______, _______, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3, _______, _______, \ 169 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \
150 _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 170 _______, _______, _______, _______, _______, _______, _______, _______, _______ \
151) 171)
152
153}; 172};
154 173
155#ifdef AUDIO_ENABLE
156float tone_qwerty[][2] = SONG(QWERTY_SOUND);
157float tone_dvorak[][2] = SONG(DVORAK_SOUND);
158float tone_colemak[][2] = SONG(COLEMAK_SOUND);
159#endif
160
161void persistent_default_layer_set(uint16_t default_layer) {
162 eeconfig_update_default_layer(default_layer);
163 default_layer_set(default_layer);
164}
165
166const uint16_t PROGMEM fn_actions[] = { 174const uint16_t PROGMEM fn_actions[] = {
167 [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), 175 [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC),
168 [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_BSPC),
169 [2] = ACTION_LAYER_TAP_KEY(_ADJUST, KC_LGUI),
170};
171
172const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
173{
174 return MACRO_NONE;
175}; 176};
176 177
177bool process_record_user(uint16_t keycode, keyrecord_t *record) { 178bool process_record_user(uint16_t keycode, keyrecord_t *record) {
178 switch (keycode) { 179 switch (keycode) {
179 case QWERTY: 180 case QWERTY:
180 if (record->event.pressed) { 181 if (record->event.pressed) {
181 #ifdef AUDIO_ENABLE 182 set_single_persistent_default_layer(_QWERTY);
182 PLAY_SONG(tone_qwerty);
183 #endif
184 persistent_default_layer_set(1UL<<_QWERTY);
185 } 183 }
186 return false; 184 return false;
187 break; 185 break;
188 case COLEMAK: 186 case COLEMAK:
189 if (record->event.pressed) { 187 if (record->event.pressed) {
190 #ifdef AUDIO_ENABLE 188 set_single_persistent_default_layer(_COLEMAK);
191 PLAY_SONG(tone_colemak);
192 #endif
193 persistent_default_layer_set(1UL<<_COLEMAK);
194 } 189 }
195 return false; 190 return false;
196 break; 191 break;
197 case DVORAK: 192 case DVORAK:
198 if (record->event.pressed) { 193 if (record->event.pressed) {
199 #ifdef AUDIO_ENABLE 194 set_single_persistent_default_layer(_DVORAK);
200 PLAY_SONG(tone_dvorak);
201 #endif
202 persistent_default_layer_set(1UL<<_DVORAK);
203 } 195 }
204 return false; 196 return false;
205 break; 197 break;
@@ -223,11 +215,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
223 } 215 }
224 return false; 216 return false;
225 break; 217 break;
226 case ADJUST: 218 case BACKLIT:
227 if (record->event.pressed) { 219 if (record->event.pressed) {
228 layer_on(_ADJUST); 220 register_code(KC_RSFT);
221 #ifdef BACKLIGHT_ENABLE
222 backlight_step();
223 #endif
229 } else { 224 } else {
230 layer_off(_ADJUST); 225 unregister_code(KC_RSFT);
231 } 226 }
232 return false; 227 return false;
233 break; 228 break;