aboutsummaryrefslogtreecommitdiff
path: root/keyboards/contra/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/contra/keymaps')
-rw-r--r--keyboards/contra/keymaps/alper/config.h35
-rw-r--r--keyboards/contra/keymaps/alper/keymap.c191
-rw-r--r--keyboards/contra/keymaps/alper/readme.md22
-rw-r--r--keyboards/contra/keymaps/basic/config.h39
-rw-r--r--keyboards/contra/keymaps/basic/keymap.c167
-rw-r--r--keyboards/contra/keymaps/basic/readme.md72
-rw-r--r--keyboards/contra/keymaps/bramver/README.md35
-rwxr-xr-xkeyboards/contra/keymaps/bramver/config.h9
-rw-r--r--keyboards/contra/keymaps/bramver/keymap.c126
-rwxr-xr-xkeyboards/contra/keymaps/bramver/rules.mk6
-rw-r--r--keyboards/contra/keymaps/dana/config.h30
-rw-r--r--keyboards/contra/keymaps/dana/keymap.c32
-rw-r--r--keyboards/contra/keymaps/dana/readme.md6
-rw-r--r--keyboards/contra/keymaps/dana/rules.mk22
-rw-r--r--keyboards/contra/keymaps/deastiny/config.h34
-rw-r--r--keyboards/contra/keymaps/deastiny/keymap.c142
-rw-r--r--keyboards/contra/keymaps/deastiny/readme.md56
-rw-r--r--keyboards/contra/keymaps/default/config.h35
-rw-r--r--keyboards/contra/keymaps/default/keymap.c260
-rw-r--r--keyboards/contra/keymaps/default/readme.md2
-rw-r--r--keyboards/contra/keymaps/erovia/config.h7
-rw-r--r--keyboards/contra/keymaps/erovia/keymap.c163
-rw-r--r--keyboards/contra/keymaps/erovia/readme.md76
-rwxr-xr-xkeyboards/contra/keymaps/erovia/rules.mk2
-rw-r--r--keyboards/contra/keymaps/losinggeneration/README.md30
-rw-r--r--keyboards/contra/keymaps/losinggeneration/config.h23
-rw-r--r--keyboards/contra/keymaps/losinggeneration/keymap.c40
-rw-r--r--keyboards/contra/keymaps/losinggeneration/rules.mk14
-rw-r--r--keyboards/contra/keymaps/maxr1998/config.h15
-rw-r--r--keyboards/contra/keymaps/maxr1998/keymap.c185
-rw-r--r--keyboards/contra/keymaps/maxr1998/readme.md2
-rw-r--r--keyboards/contra/keymaps/maxr1998/rules.mk11
-rw-r--r--keyboards/contra/keymaps/msiu/config.h34
-rw-r--r--keyboards/contra/keymaps/msiu/keymap.c176
-rw-r--r--keyboards/contra/keymaps/msiu/readme.md2
-rw-r--r--keyboards/contra/keymaps/ryanm101/config.h41
-rw-r--r--keyboards/contra/keymaps/ryanm101/keymap.c259
-rw-r--r--keyboards/contra/keymaps/ryanm101/readme.md11
-rw-r--r--keyboards/contra/keymaps/ryanm101/rules.mk1
-rw-r--r--keyboards/contra/keymaps/via/keymap.c98
-rw-r--r--keyboards/contra/keymaps/via/readme.md2
-rw-r--r--keyboards/contra/keymaps/via/rules.mk1
42 files changed, 2514 insertions, 0 deletions
diff --git a/keyboards/contra/keymaps/alper/config.h b/keyboards/contra/keymaps/alper/config.h
new file mode 100644
index 000000000..6114392f6
--- /dev/null
+++ b/keyboards/contra/keymaps/alper/config.h
@@ -0,0 +1,35 @@
1#pragma once
2
3
4#ifdef AUDIO_ENABLE
5 #define STARTUP_SONG SONG(PLANCK_SOUND)
6 // #define STARTUP_SONG SONG(NO_SOUND)
7
8 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
9 SONG(COLEMAK_SOUND), \
10 SONG(DVORAK_SOUND) \
11 }
12#endif
13
14#define MUSIC_MASK (keycode != KC_NO)
15
16/*
17 * MIDI options
18 */
19
20/* enable basic MIDI features:
21 - MIDI notes can be sent when in Music mode is on
22*/
23
24#define MIDI_BASIC
25
26/* enable advanced MIDI features:
27 - MIDI notes can be added to the keymap
28 - Octave shift and transpose
29 - Virtual sustain, portamento, and modulation wheel
30 - etc.
31*/
32//#define MIDI_ADVANCED
33
34/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
35//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/contra/keymaps/alper/keymap.c b/keyboards/contra/keymaps/alper/keymap.c
new file mode 100644
index 000000000..8be751355
--- /dev/null
+++ b/keyboards/contra/keymaps/alper/keymap.c
@@ -0,0 +1,191 @@
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 */
16
17#include QMK_KEYBOARD_H
18
19enum planck_layers {
20 _QWERTY,
21 _COLEMAK,
22 _DVORAK,
23 _LOWER,
24 _RAISE,
25 _ADJUST
26};
27
28enum planck_keycodes {
29 QWERTY = SAFE_RANGE,
30 COLEMAK,
31 DVORAK,
32 LOWER,
33 RAISE
34};
35
36const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37
38 /* Qwerty
39 * ,---------------------------------------------------------------------------------------------------.
40 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
41 * |-----------+------+------+------+------+-------------+------+----------+------+------+-------------|
42 * | Ctrl/Tab | A | S | D | F | G | H | J | K | L | ; | " |
43 * |-----------+------+------+------+------+------|------+------+----------+------+------+-------------|
44 * | Shift/Esc | Z | X | C | V | B | N | M | , | . | / | Shift/Enter |
45 * |-----------+------+------+------+------+------+------+------+----------+------+------+-------------|
46 * | Tab | Ctrl | Alt | GUI |Lower | Space |Raise | GUI/Left | Down | Up | Right |
47 * `---------------------------------------------------------------------------------------------------'
48 */
49 [_QWERTY] = LAYOUT_planck_mit(
50 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
51 MT(MOD_LCTL, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
52 MT(MOD_LSFT, KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT),
53 KC_TAB, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, MT(MOD_RGUI, KC_LEFT), KC_DOWN, KC_UP, KC_RGHT
54 ),
55
56 /* Colemak
57 * ,---------------------------------------------------------------------------------------------------.
58 * | Esc | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
59 * |-----------+------+------+------+------+-------------+------+----------+------+------+-------------|
60 * | Ctrl/Tab | A | R | S | T | D | H | N | E | I | O | " |
61 * |-----------+------+------+------+------+------|------+------+----------+------+------+-------------|
62 * | Shift/Esc | Z | X | C | V | B | K | M | , | . | / | Shift/Enter |
63 * |-----------+------+------+------+------+-------------+------+----------+------+------+------+------|
64 * | Tab | Ctrl | Alt | GUI |Lower | Space |Raise | GUI/Left | Down | Up | Right |
65 * `---------------------------------------------------------------------------------------------------'
66 */
67 [_COLEMAK] = LAYOUT_planck_mit(
68 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
69 MT(MOD_LCTL, KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
70 MT(MOD_LSFT, KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT),
71 KC_TAB, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, MT(MOD_RGUI, KC_LEFT), KC_DOWN, KC_UP, KC_RGHT
72 ),
73
74 /* Dvorak
75 * ,---------------------------------------------------------------------------------------------------.
76 * | Esc | " | , | . | P | Y | F | G | C | R | L | Bksp |
77 * |-----------+------+------+------+------+-------------+------+----------+------+------+-------------|
78 * | Ctrl/Tab | A | O | E | U | I | D | H | T | N | S | / |
79 * |-----------+------+------+------+------+------|------+------+----------+------+------+-------------|
80 * | Shift/Esc | ; | Q | J | K | X | B | M | W | V | Z | Shift/Enter |
81 * |-----------+------+------+------+------+------+------+------+----------+------+------+-------------|
82 * | Tab | Ctrl | Alt | GUI |Lower | Space |Raise | GUI/Left | Down | Up | Right |
83 * `---------------------------------------------------------------------------------------------------'
84 */
85 [_DVORAK] = LAYOUT_planck_mit(
86 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
87 MT(MOD_LCTL, KC_TAB), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
88 MT(MOD_LSFT, KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MT(MOD_RSFT, KC_ENT),
89 KC_TAB, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, MT(MOD_RGUI, KC_LEFT), KC_DOWN, KC_UP, KC_RGHT
90 ),
91
92 /* Lower
93 * ,-----------------------------------------------------------------------------------.
94 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
95 * |------+------+------+------+------+-------------+------+------+------+------+------|
96 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
97 * |------+------+------+------+------+------|------+------+------+------+------+------|
98 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
99 * |------+------+------+------+------+------+------+------+------+------+------+------|
100 * | | | | | | | | Next | Vol- | Vol+ | Play |
101 * `-----------------------------------------------------------------------------------'
102 */
103 [_LOWER] = LAYOUT_planck_mit(
104 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
105 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
106 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
107 _______, _______, _______, _______, _______, _______, _______, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY
108 ),
109
110 /* Raise
111 * ,----------------------------------------------------------------------------------------------.
112 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
113 * |-----------+---------+---------+------+------+-------------+------+------+------+------+------|
114 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
115 * |-----------+---------+---------+------+------+------|------+------+------+------+------+------|
116 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
117 * |-----------+---------+---------+------+------+------+------+------+------+------+------+------|
118 * | AppSwitch | PrevTab | NextTab | | | | | Next | Vol- | Vol+ | Play |
119 * `----------------------------------------------------------------------------------------------'
120 */
121 [_RAISE] = LAYOUT_planck_mit(
122 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
123 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
124 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
125 LGUI(KC_GRAVE), LGUI(LSFT(KC_LBRACKET)), LGUI(LSFT(KC_RBRACKET)), _______, _______, _______, _______, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY
126 ),
127
128 /* Adjust (Lower + Raise)
129 * ,-----------------------------------------------------------------------------------.
130 * | | Reset| | | | | | | | | | Del |
131 * |------+------+------+------+------+-------------+------+------+------+------+------|
132 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
133 * |------+------+------+------+------+------|------+------+------+------+------+------|
134 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
135 * |------+------+------+------+------+------+------+------+------+------+------+------|
136 * | | | | | | | | | | | |
137 * `-----------------------------------------------------------------------------------'
138 */
139 [_ADJUST] = LAYOUT_planck_mit(
140 _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
141 _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
142 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
143 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
144 )
145
146};
147
148bool process_record_user(uint16_t keycode, keyrecord_t *record) {
149 switch (keycode) {
150 case QWERTY:
151 if (record->event.pressed) {
152 print("mode just switched to qwerty and this is a huge string\n");
153 set_single_persistent_default_layer(_QWERTY);
154 }
155 return false;
156 break;
157 case COLEMAK:
158 if (record->event.pressed) {
159 set_single_persistent_default_layer(_COLEMAK);
160 }
161 return false;
162 break;
163 case DVORAK:
164 if (record->event.pressed) {
165 set_single_persistent_default_layer(_DVORAK);
166 }
167 return false;
168 break;
169 case LOWER:
170 if (record->event.pressed) {
171 layer_on(_LOWER);
172 update_tri_layer(_LOWER, _RAISE, _ADJUST);
173 } else {
174 layer_off(_LOWER);
175 update_tri_layer(_LOWER, _RAISE, _ADJUST);
176 }
177 return false;
178 break;
179 case RAISE:
180 if (record->event.pressed) {
181 layer_on(_RAISE);
182 update_tri_layer(_LOWER, _RAISE, _ADJUST);
183 } else {
184 layer_off(_RAISE);
185 update_tri_layer(_LOWER, _RAISE, _ADJUST);
186 }
187 return false;
188 break;
189 }
190 return true;
191}
diff --git a/keyboards/contra/keymaps/alper/readme.md b/keyboards/contra/keymaps/alper/readme.md
new file mode 100644
index 000000000..0b9cab507
--- /dev/null
+++ b/keyboards/contra/keymaps/alper/readme.md
@@ -0,0 +1,22 @@
1# Alper's Contra Layout
2
3![Dvorak Layout](https://i.imgur.com/BvBYgpz.png)
4
5## Rationale
6
7I based this off the default and changed some stuff because I'm a macOS user who types in Dvorak:
8
9* Ctrl/Tab: It is normal to remap Caps Lock to control there and having a press button there for Tab would solve a lot of problems. BUT on my Contra this button is broken, so I've mapped 0,0 to Tab as well.
10* Shift/Esc: A standard left shift with an Escape that I have not been utilizing much in favor of the top corner button.
11* Tab: The replacement tab.
12* Overloaded the Left arrow with another GUI (Command) button because that is essential on macOS.
13* Overloaded the Enter button with a Shift because like Command, it is essential for me to have these on both sides of the keyboard.
14* Raise-0,0: Switches between windows of an application.
15* Raise-0,1-2: Dedicated next and previous tab buttons since these key combinations caused a finger twister.
16
17
18## TODO
19
20* Try out tapdance for brackets (see ryanm101/keymap.c)
21* REMAP ESC To LT() so I can use it to select numbers (_NUMB) and functions more easily? (see msiu/keymap.c) https://docs.qmk.fm/#/feature_advanced_keycodes?id=switching-and-toggling-layers
22* Wipe everything except Dvorak and Qwerty (see deastiny/keymap.c) \ No newline at end of file
diff --git a/keyboards/contra/keymaps/basic/config.h b/keyboards/contra/keymaps/basic/config.h
new file mode 100644
index 000000000..cd03b846e
--- /dev/null
+++ b/keyboards/contra/keymaps/basic/config.h
@@ -0,0 +1,39 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "config_common.h"
5
6#ifdef AUDIO_ENABLE
7 #define STARTUP_SONG SONG(PLANCK_SOUND)
8 // #define STARTUP_SONG SONG(NO_SOUND)
9
10 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
11 SONG(COLEMAK_SOUND), \
12 SONG(DVORAK_SOUND) \
13 }
14#endif
15
16#define MUSIC_MASK (keycode != KC_NO)
17
18/*
19 * MIDI options
20 */
21
22/* enable basic MIDI features:
23 - MIDI notes can be sent when in Music mode is on
24*/
25
26#define MIDI_BASIC
27
28/* enable advanced MIDI features:
29 - MIDI notes can be added to the keymap
30 - Octave shift and transpose
31 - Virtual sustain, portamento, and modulation wheel
32 - etc.
33*/
34//#define MIDI_ADVANCED
35
36/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
37//#define MIDI_TONE_KEYCODE_OCTAVES 2
38
39#endif \ No newline at end of file
diff --git a/keyboards/contra/keymaps/basic/keymap.c b/keyboards/contra/keymaps/basic/keymap.c
new file mode 100644
index 000000000..1b5336b8e
--- /dev/null
+++ b/keyboards/contra/keymaps/basic/keymap.c
@@ -0,0 +1,167 @@
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 */
16
17#include QMK_KEYBOARD_H
18
19extern keymap_config_t keymap_config;
20
21enum planck_layers {
22 _QWERTY,
23 _COLEMAK,
24 _LOWER,
25 _RAISE,
26 _ADJUST
27};
28
29enum planck_keycodes {
30 QWERTY = SAFE_RANGE,
31 COLEMAK,
32 LOWER,
33 RAISE
34};
35
36const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37
38 /* Qwerty
39 * ,-----------------------------------------------------------------------------------.
40 * | ` | Q | W | E | R | T | Y | U | I | O | P | Bksp |
41 * |------+------+------+------+------+-------------+------+------+------+------+------|
42 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' |
43 * |------+------+------+------+------+------|------+------+------+------+------+------|
44 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
45 * |------+------+------+------+------+------+------+------+------+------+------+------|
46 * | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down |
47 * `-----------------------------------------------------------------------------------'
48 */
49 [_QWERTY] = LAYOUT_planck_mit(
50 KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
51 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
53 KC_ESC, KC_TAB, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN
54 ),
55
56 /* Colemak
57 * ,-----------------------------------------------------------------------------------.
58 * | ` | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
59 * |------+------+------+------+------+-------------+------+------+------+------+------|
60 * | Ctrl | A | R | S | T | D | H | N | E | I | O | ' |
61 * |------+------+------+------+------+------|------+------+------+------+------+------|
62 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
63 * |------+------+------+------+------+------+------+------+------+------+------+------|
64 * | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down |
65 * `-----------------------------------------------------------------------------------'
66 */
67 [_COLEMAK] = LAYOUT_planck_mit(
68 KC_GRV, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
69 KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
70 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
71 KC_ESC, KC_TAB, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN
72 ),
73
74 /* Lower
75 * ,-----------------------------------------------------------------------------------.
76 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
77 * |------+------+------+------+------+-------------+------+------+------+------+------|
78 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
79 * |------+------+------+------+------+------|------+------+------+------+------+------|
80 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
81 * |------+------+------+------+------+------+------+------+------+------+------+------|
82 * | | | | | | | | Next | Vol- | Vol+ | Play |
83 * `-----------------------------------------------------------------------------------'
84 */
85 [_LOWER] = LAYOUT_planck_mit(
86 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
87 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
88 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
89 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
90 ),
91
92 /* Raise
93 * ,-----------------------------------------------------------------------------------.
94 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
95 * |------+------+------+------+------+-------------+------+------+------+------+------|
96 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
97 * |------+------+------+------+------+------|------+------+------+------+------+------|
98 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
99 * |------+------+------+------+------+------+------+------+------+------+------+------|
100 * | | | | | | | | Next | Vol- | Vol+ | Play |
101 * `-----------------------------------------------------------------------------------'
102 */
103 [_RAISE] = LAYOUT_planck_mit(
104 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
105 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
106 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
107 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
108 ),
109
110 /* Adjust (Lower + Raise)
111 * ,-----------------------------------------------------------------------------------.
112 * | | | | | | | | | | | | Del |
113 * |------+------+------+------+------+-------------+------+------+------+------+------|
114 * | | | | | |AGnorm|AGswap|Qwerty|Colemk| | | |
115 * |------+------+------+------+------+------|------+------+------+------+------+------|
116 * | | | | | | | | | | | | |
117 * |------+------+------+------+------+------+------+------+------+------+------+------|
118 * | | | | | | | | | | | |
119 * `-----------------------------------------------------------------------------------'
120 */
121 [_ADJUST] = LAYOUT_planck_mit(
122 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
123 _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______,
124 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
125 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
126 )
127
128};
129
130bool process_record_user(uint16_t keycode, keyrecord_t *record) {
131 switch (keycode) {
132 case QWERTY:
133 if (record->event.pressed) {
134 print("mode just switched to qwerty and this is a huge string\n");
135 set_single_persistent_default_layer(_QWERTY);
136 }
137 return false;
138 break;
139 case COLEMAK:
140 if (record->event.pressed) {
141 set_single_persistent_default_layer(_COLEMAK);
142 }
143 return false;
144 break;
145 case LOWER:
146 if (record->event.pressed) {
147 layer_on(_LOWER);
148 update_tri_layer(_LOWER, _RAISE, _ADJUST);
149 } else {
150 layer_off(_LOWER);
151 update_tri_layer(_LOWER, _RAISE, _ADJUST);
152 }
153 return false;
154 break;
155 case RAISE:
156 if (record->event.pressed) {
157 layer_on(_RAISE);
158 update_tri_layer(_LOWER, _RAISE, _ADJUST);
159 } else {
160 layer_off(_RAISE);
161 update_tri_layer(_LOWER, _RAISE, _ADJUST);
162 }
163 return false;
164 break;
165 }
166 return true;
167}
diff --git a/keyboards/contra/keymaps/basic/readme.md b/keyboards/contra/keymaps/basic/readme.md
new file mode 100644
index 000000000..195bc2c1b
--- /dev/null
+++ b/keyboards/contra/keymaps/basic/readme.md
@@ -0,0 +1,72 @@
1# A Basic Contra Layout
2
3The *default* layout currently (as of Mar 19, 2018) has a lot of components from Planck's default layout and is not very suitable for a basic Contra board. This basic layout is developed from Planck's default layout but has removed the parts that's irrelevant to a Contra board.
4
5My other keyboard is a HHKB and I don't use `Tab` or `Esc` key that much and hence the unusual placements for those keys.
6
7## QWERTY (Normal) Layer
8```
9,-----------------------------------------------------------------------------------.
10 | ` | Q | W | E | R | T | Y | U | I | O | P | Bksp |
11 |------+------+------+------+------+-------------+------+------+------+------+------|
12 | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' |
13 |------+------+------+------+------+------|------+------+------+------+------+------|
14 | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
15 |------+------+------+------+------+------+------+------+------+------+------+------|
16 | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down |
17 `-----------------------------------------------------------------------------------'
18```
19
20## Colemak Layer
21Switch from `Adjust` layer.
22```
23,-----------------------------------------------------------------------------------.
24 | ` | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
25 |------+------+------+------+------+-------------+------+------+------+------+------|
26 | Ctrl | A | R | S | T | D | H | N | E | I | O | ' |
27 |------+------+------+------+------+------|------+------+------+------+------+------|
28 | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
29 |------+------+------+------+------+------+------+------+------+------+------+------|
30 | Esc | Tab | Alt | GUI |Lower | Space |Raise | Left |Right | Up |Down |
31 `-----------------------------------------------------------------------------------'
32```
33
34## Lower
35```
36,-----------------------------------------------------------------------------------.
37 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
38 |------+------+------+------+------+-------------+------+------+------+------+------|
39 | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
40 |------+------+------+------+------+------|------+------+------+------+------+------|
41 | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
42 |------+------+------+------+------+------+------+------+------+------+------+------|
43 | | | | | | | | Next | Vol- | Vol+ | Play |
44 `-----------------------------------------------------------------------------------'
45```
46
47## Raise
48```
49,-----------------------------------------------------------------------------------.
50 | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
51 |------+------+------+------+------+-------------+------+------+------+------+------|
52 | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
53 |------+------+------+------+------+------|------+------+------+------+------+------|
54 | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
55 |------+------+------+------+------+------+------+------+------+------+------+------|
56 | | | | | | | | Next | Vol- | Vol+ | Play |
57 `-----------------------------------------------------------------------------------'
58```
59
60## Adjust
61`AGnorm` and `AGswap` switches `alt` and `os` key on the keyboard.
62```
63,-----------------------------------------------------------------------------------.
64 | | | | | | | | | | | | Del |
65 |------+------+------+------+------+-------------+------+------+------+------+------|
66 | | | | | |AGnorm|AGswap|Qwerty|Colemk| | | |
67 |------+------+------+------+------+------|------+------+------+------+------+------|
68 | | | | | | | | | | | | |
69 |------+------+------+------+------+------+------+------+------+------+------+------|
70 | | | | | | | | | | | |
71 `-----------------------------------------------------------------------------------'
72``` \ No newline at end of file
diff --git a/keyboards/contra/keymaps/bramver/README.md b/keyboards/contra/keymaps/bramver/README.md
new file mode 100644
index 000000000..5327beba7
--- /dev/null
+++ b/keyboards/contra/keymaps/bramver/README.md
@@ -0,0 +1,35 @@
1# Contra layout
2
3My current setup consists of a very simple base layer, numbers layer, mouse layer and emoji layer.
4Still many options, but time will tell if changes are needed.
5
6## Keymap
7
8```
9#define SP_MSE LT(_MOUSE, KC_SPC)
10
11
12BASE layer
13 { KC_GESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC },
14 { KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_ENT },
15 { KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_QUOT },
16 { KC_LCTL , KC_GRV , KC_LALT , KC_LGUI , MO(1) , SP_MSE , SP_MSE , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , MO(2) },
17
18LOWER layer
19 { _______ , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL },
20 { _______ , KC_F1 , KC_F2 , KC_F3 , KC_LBRC , KC_MINS , KC_EQL , KC_RBRC , KC_F7 , KC_F8 , KC_F9 , _______ },
21 { _______ , KC_F4 , KC_F5 , KC_F6 , KC_HOME , KC_BSLS , KC_MPLY , KC_END , KC_F10 , KC_F11 , KC_F12 , _______ },
22 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
23
24EMOJI layer
25 { _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ },
26 { _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ },
27 { _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ },
28 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
29
30MOUSE layer
31 { _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______ },
32 { _______ , KC_WH_R , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_D , KC_WH_D , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_R , _______ },
33 { _______ , KC_VOLD , KC_VOLU , KC_MPRV , KC_MNXT , KC_MPLY , KC_MPLY , KC_MPRV , KC_MNXT , KC_VOLD , KC_VOLU , _______ },
34 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
35``` \ No newline at end of file
diff --git a/keyboards/contra/keymaps/bramver/config.h b/keyboards/contra/keymaps/bramver/config.h
new file mode 100755
index 000000000..de2a9b0ee
--- /dev/null
+++ b/keyboards/contra/keymaps/bramver/config.h
@@ -0,0 +1,9 @@
1#pragma once
2
3#define MOUSEKEY_DELAY 0
4#define MOUSEKEY_INTERVAL 16
5#define MOUSEKEY_MAX_SPEED 7
6#define MOUSEKEY_TIME_TO_MAX 60
7#define MOUSEKEY_WHEEL_MAX_SPEED 8
8#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
9#define MOUSEKEY_WHEEL_DELAY 0
diff --git a/keyboards/contra/keymaps/bramver/keymap.c b/keyboards/contra/keymaps/bramver/keymap.c
new file mode 100644
index 000000000..8ccaf686b
--- /dev/null
+++ b/keyboards/contra/keymaps/bramver/keymap.c
@@ -0,0 +1,126 @@
1/* Copyright 2018 darm
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 */
16#include QMK_KEYBOARD_H
17
18enum emoji_map {
19 UNAM, // unamused 😒
20 HEYE, // smiling face with heart shaped eyes 😍
21 OK, // ok hand sign 👌
22 SMIR, // smirk 😏
23 PRAY, // pray 🙏
24 CELE, // celebration 🙌
25 COOL, // smile with sunglasses 😎
26 EYES, // eyes
27 THNK, // BIG THONK
28 NAIL, // Nailcare
29 SOS, // Vuile sos
30 REDB, // Red B
31 HNDR, // 100
32 MONY,
33 FIRE,
34 CAR,
35 BUTT,
36 BNIS,
37 CUM,
38 CLAP,
39 TRIU, // Fart from nose
40 SCRM,
41 VOMI,
42 DTIV, // Detective
43 EXPL, // Brainsplosion
44 HAIR, // Haircut
45 DANC, // Salsa dancer
46 STRN, // Stronk
47 LEFT, // Point Left
48 RGHT, // Point Right
49};
50
51const uint32_t PROGMEM unicode_map[] = {
52 [UNAM] = 0x1F612,
53 [HEYE] = 0x1f60d,
54 [OK] = 0x1F44C,
55 [SMIR] = 0x1F60F,
56 [PRAY] = 0x1F64F,
57 [CELE] = 0x1F64C,
58 [COOL] = 0x1F60E,
59 [EYES] = 0x1F440,
60 [THNK] = 0x1F914,
61 [NAIL] = 0x1F485,
62 [SOS] = 0x1F198,
63 [REDB] = 0x1F171,
64 [HNDR] = 0x1F4AF,
65 [MONY] = 0x1F480,
66 [FIRE] = 0x1F525,
67 [CAR] = 0x1F697,
68 [BUTT] = 0x1F351,
69 [BNIS] = 0x1F346,
70 [CUM] = 0x1F4A6,
71 [CLAP] = 0x1F44F,
72 [TRIU] = 0x1F624,
73 [SCRM] = 0x1F631,
74 [VOMI] = 0x1F92E,
75 [DTIV] = 0x1F575,
76 [EXPL] = 0x1F92F,
77 [HAIR] = 0x2640,
78 [DANC] = 0x1F483,
79 [STRN] = 0x1F4AA,
80 [LEFT] = 0x1F448,
81 [RGHT] = 0x1F449,
82};
83
84// Layer shorthand
85#define _BASE 0
86#define _LOWER 1
87#define _EMOJI 2
88#define _MOUSE 3
89
90#define SP_MSE LT(_MOUSE, KC_SPC)
91
92const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
93
94 [_BASE] = LAYOUT_ortho_4x12(
95 KC_GESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC ,
96 KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_ENT ,
97 KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_QUOT ,
98 KC_LCTL , KC_GRV , KC_LALT , KC_LGUI , MO(1) , SP_MSE , SP_MSE , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , MO(2)
99 ),
100
101 [_LOWER] = LAYOUT_ortho_4x12(
102 _______ , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL ,
103 _______ , KC_F1 , KC_F2 , KC_F3 , KC_LBRC , KC_MINS , KC_EQL , KC_RBRC , KC_F7 , KC_F8 , KC_F9 , _______ ,
104 _______ , KC_F4 , KC_F5 , KC_F6 , KC_HOME , KC_BSLS , KC_MPLY , KC_END , KC_F10 , KC_F11 , KC_F12 , _______ ,
105 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
106 ),
107
108 [_EMOJI] = LAYOUT_ortho_4x12(
109 _______ , X(CLAP) , X(CUM) , X(BNIS) , X(BUTT) , X(CAR) , X(FIRE) , X(REDB) , X(MONY) , X(HNDR) , X(SOS) , _______ ,
110 _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ ,
111 _______ , X(TRIU) , X(SCRM) , X(VOMI) , X(DTIV) , X(EXPL) , X(HAIR) , X(DANC) , X(STRN) , X(LEFT) , X(RGHT) , _______ ,
112 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
113 ),
114
115 [_MOUSE] = LAYOUT_ortho_4x12(
116 _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______ ,
117 _______ , KC_WH_R , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_D , KC_WH_D , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_R , _______ ,
118 _______ , KC_VOLD , KC_VOLU , KC_MPRV , KC_MNXT , KC_MPLY , KC_MPLY , KC_MPRV , KC_MNXT , KC_VOLD , KC_VOLU , _______ ,
119 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
120 )
121
122};
123
124void matrix_init_user(void) {
125 set_unicode_input_mode(UC_LNX);
126}
diff --git a/keyboards/contra/keymaps/bramver/rules.mk b/keyboards/contra/keymaps/bramver/rules.mk
new file mode 100755
index 000000000..925b1c2b2
--- /dev/null
+++ b/keyboards/contra/keymaps/bramver/rules.mk
@@ -0,0 +1,6 @@
1MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
2EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
3NKRO_ENABLE = yes # USB Nkey Rollover
4UNICODEMAP_ENABLE = yes # Unicode
5BOOTLOADER = atmel-dfu
6
diff --git a/keyboards/contra/keymaps/dana/config.h b/keyboards/contra/keymaps/dana/config.h
new file mode 100644
index 000000000..2846b5791
--- /dev/null
+++ b/keyboards/contra/keymaps/dana/config.h
@@ -0,0 +1,30 @@
1/*
2Copyright 2012 Jun Wako <[email protected]>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_USER_H
19#define CONFIG_USER_H
20
21#include "../../config.h"
22
23
24#undef TAPPING_TERM
25#define TAPPING_TERM 190
26
27#define MUSIC_MASK (keycode != KC_NO)
28#define MIDI_ADVANCED
29
30#endif
diff --git a/keyboards/contra/keymaps/dana/keymap.c b/keyboards/contra/keymaps/dana/keymap.c
new file mode 100644
index 000000000..51fa9f75f
--- /dev/null
+++ b/keyboards/contra/keymaps/dana/keymap.c
@@ -0,0 +1,32 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include QMK_KEYBOARD_H
5
6extern keymap_config_t keymap_config;
7
8const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
9
10 /* Qwerty
11 * ,-----------------------------------------------------------------------------------.
12 * | ` | Q | W | E | R | T | Y | U | I | O | P | Bksp |
13 * |------+------+------+------+------+-------------+------+------+------+------+------|
14 * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
15 * |------+------+------+------+------+------|------+------+------+------+------+------|
16 * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift |
17 * |------+------+------+------+------+------+------+------+------+------+------+------|
18 * | Brite| Ctrl | Alt | Cmd |Lower | Space |Raise | Enter| Cmd | Alt |Ctrl |
19 * `-----------------------------------------------------------------------------------'
20 */
21 [0] = LAYOUT_ortho_4x12(
22 MI_C_4, MI_Cs_4, MI_D_4, MI_Ds_4, MI_E_4, MI_F_4, MI_Fs_4, MI_G_4, MI_Gs_4, MI_A_4, MI_As_4, MI_B_4,
23 MI_C_3, MI_Cs_3, MI_D_3, MI_Ds_3, MI_E_3, MI_F_3, MI_Fs_3, MI_G_3, MI_Gs_3, MI_A_3, MI_As_3, MI_B_3,
24 MI_C_2, MI_Cs_2, MI_D_2, MI_Ds_2, MI_E_2, MI_F_2, MI_Fs_2, MI_G_2, MI_Gs_2, MI_A_2, MI_As_2, MI_B_2,
25 MI_C_1, MI_Cs_1, MI_D_1, MI_Ds_1, MI_E_1, MI_F_1, MI_Fs_1, MI_G_1, MI_Gs_1, MI_A_1, MI_As_1, MI_B_1
26 )
27
28};
29
30
31
32
diff --git a/keyboards/contra/keymaps/dana/readme.md b/keyboards/contra/keymaps/dana/readme.md
new file mode 100644
index 000000000..75b4582d4
--- /dev/null
+++ b/keyboards/contra/keymaps/dana/readme.md
@@ -0,0 +1,6 @@
1# Dana musical MIDI keyboard layout
2
3Has the contra mapped as a MIDI keyboard, where each row is an octave.
4
5The keyboard has only MIDI, nothing else!
6
diff --git a/keyboards/contra/keymaps/dana/rules.mk b/keyboards/contra/keymaps/dana/rules.mk
new file mode 100644
index 000000000..bd29e0f41
--- /dev/null
+++ b/keyboards/contra/keymaps/dana/rules.mk
@@ -0,0 +1,22 @@
1
2
3# Build Options
4# change to "no" to disable the options, or define them in the Makefile in
5# the appropriate keymap folder that will get included automatically
6#
7BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
8MOUSEKEY_ENABLE = no # Mouse keys(+4700)
9EXTRAKEY_ENABLE = no # Audio control and System control(+450)
10CONSOLE_ENABLE = no # Console for debug(+400)
11COMMAND_ENABLE = no # Commands for debug and configuration
12NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
13BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
14MIDI_ENABLE = yes # MIDI controls
15AUDIO_ENABLE = no # Audio output on port C6
16UNICODE_ENABLE = no # Unicode
17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight
19
20# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
21SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
22
diff --git a/keyboards/contra/keymaps/deastiny/config.h b/keyboards/contra/keymaps/deastiny/config.h
new file mode 100644
index 000000000..6166fea4a
--- /dev/null
+++ b/keyboards/contra/keymaps/deastiny/config.h
@@ -0,0 +1,34 @@
1#pragma once
2
3#ifdef AUDIO_ENABLE
4 #define STARTUP_SONG SONG(PLANCK_SOUND)
5 // #define STARTUP_SONG SONG(NO_SOUND)
6
7 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
8 SONG(COLEMAK_SOUND), \
9 SONG(DVORAK_SOUND) \
10 }
11#endif
12
13#define MUSIC_MASK (keycode != KC_NO)
14
15/*
16 * MIDI options
17 */
18
19/* enable basic MIDI features:
20 - MIDI notes can be sent when in Music mode is on
21*/
22
23#define MIDI_BASIC
24
25/* enable advanced MIDI features:
26 - MIDI notes can be added to the keymap
27 - Octave shift and transpose
28 - Virtual sustain, portamento, and modulation wheel
29 - etc.
30*/
31//#define MIDI_ADVANCED
32
33/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
34//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/contra/keymaps/deastiny/keymap.c b/keyboards/contra/keymaps/deastiny/keymap.c
new file mode 100644
index 000000000..026db263e
--- /dev/null
+++ b/keyboards/contra/keymaps/deastiny/keymap.c
@@ -0,0 +1,142 @@
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 */
16
17#include QMK_KEYBOARD_H
18#include "keymap_extras/keymap_german.h"
19
20extern keymap_config_t keymap_config;
21
22enum planck_layers {
23 _DVORAK,
24 _LOWER,
25 _RAISE,
26 _ADJUST
27};
28
29enum planck_keycodes {
30 DVORAK = SAFE_RANGE,
31 LOWER,
32 RAISE
33};
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36
37/**
38,-----------------------------------------------------------------------------------.
39 | ESC | Ü | , | . | P | Y | F | G | C | T | Z | Bksp |
40 |------+------+------+------+------+-------------+------+------+------+------+------|
41 | TAB | A | O | E | I | U | H | D | R | N | S | L |
42 |------+------+------+------+------+------|------+------+------+------+------+------|
43 | Shift| Ä | Ö | Q | J | K | X | B | M | W | V |Enter |
44 |------+------+------+------+------+------+------+------+------+------+------+------|
45 | CTRL | GUI | Alt | MOD |Lower | Space |Raise | Left |Right | Up |Down |
46 `-----------------------------------------------------------------------------------'
47**/
48 [_DVORAK] = LAYOUT_planck_mit(
49 KC_ESC, DE_UDIA, DE_COMM, DE_DOT, DE_P, DE_Y, DE_F, DE_G, DE_C, DE_T, DE_Z, KC_BSPC,
50 KC_TAB, DE_A, DE_O, DE_E, DE_I, DE_U, DE_H, DE_D, DE_R, DE_N, DE_S, DE_L,
51 KC_LSFT, DE_ADIA, DE_ODIA, DE_Q, DE_J, DE_K, DE_X, DE_B, DE_M, DE_W, DE_V, KC_ENT ,
52 KC_LCTL, KC_LGUI, KC_LALT, MO(3), LOWER, KC_SPC, RAISE, KC_LEFT, KC_RIGHT, KC_UP, KC_DOWN
53 ),
54
55 /* Lower
56 * ,-----------------------------------------------------------------------------------.
57 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
58 * |------+------+------+------+------+-------------+------+------+------+------+------|
59 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
60 * |------+------+------+------+------+------|------+------+------+------+------+------|
61 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
62 * |------+------+------+------+------+------+------+------+------+------+------+------|
63 * | | | | | | | | Next | Vol- | Vol+ | Play |
64 * `-----------------------------------------------------------------------------------'
65 */
66 [_LOWER] = LAYOUT_planck_mit(
67 DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, KC_DEL,
68 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_UNDS, DE_PLUS, DE_LCBR, DE_RCBR, DE_PIPE,
69 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, DE_QUES,
70 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
71 ),
72
73 /* Raise
74 * ,-----------------------------------------------------------------------------------.
75 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
76 * |------+------+------+------+------+-------------+------+------+------+------+------|
77 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
78 * |------+------+------+------+------+------|------+------+------+------+------+------|
79 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
80 * |------+------+------+------+------+------+------+------+------+------+------+------|
81 * | | | | | | | | Next | Vol- | Vol+ | Play |
82 * `-----------------------------------------------------------------------------------'
83 */
84 [_RAISE] = LAYOUT_planck_mit(
85 DE_GRV, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, KC_DEL,
86 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_MINS, DE_EQL, DE_LBRC, DE_RBRC, DE_BSLS,
87 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, DE_SLSH,
88 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
89 ),
90
91 /* Adjust (MO(3))
92 * ,-----------------------------------------------------------------------------------.
93 * | | HOME | UP | END | | | | | | | | Del |
94 * |------+------+------+------+------+-------------+------+------+------+------+------|
95 * | | LEFT | DOWN | RIGHT| | | | | | | | |
96 * |------+------+------+------+------+------|------+------+------+------+------+------|
97 * | | | | | | | | | | | | |
98 * |------+------+------+------+------+------+------+------+------+------+------+------|
99 * | | | | | | | | | | | |
100 * `-----------------------------------------------------------------------------------'
101 */
102 [_ADJUST] = LAYOUT_planck_mit(
103 _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
104 _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______,
105 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
106 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
107 )
108
109};
110
111bool process_record_user(uint16_t keycode, keyrecord_t *record) {
112 switch (keycode) {
113 case DVORAK:
114 if (record->event.pressed) {
115 print("mode just switched to dvorak and this is a huge string\n");
116 set_single_persistent_default_layer(_DVORAK);
117 }
118 return false;
119 break;
120 case LOWER:
121 if (record->event.pressed) {
122 layer_on(_LOWER);
123 update_tri_layer(_LOWER, _RAISE, _ADJUST);
124 } else {
125 layer_off(_LOWER);
126 update_tri_layer(_LOWER, _RAISE, _ADJUST);
127 }
128 return false;
129 break;
130 case RAISE:
131 if (record->event.pressed) {
132 layer_on(_RAISE);
133 update_tri_layer(_LOWER, _RAISE, _ADJUST);
134 } else {
135 layer_off(_RAISE);
136 update_tri_layer(_LOWER, _RAISE, _ADJUST);
137 }
138 return false;
139 break;
140 }
141 return true;
142}
diff --git a/keyboards/contra/keymaps/deastiny/readme.md b/keyboards/contra/keymaps/deastiny/readme.md
new file mode 100644
index 000000000..61d722847
--- /dev/null
+++ b/keyboards/contra/keymaps/deastiny/readme.md
@@ -0,0 +1,56 @@
1# A Dvorak Type II based board
2
3As I switched from a Poker II some keys are based on my experience there.
4
5
6## DVORAK (Normal) Layer
7```
8,-----------------------------------------------------------------------------------.
9 | ESC | Ü | , | . | P | Y | F | G | C | T | Z | Bksp |
10 |------+------+------+------+------+-------------+------+------+------+------+------|
11 | TAB | A | O | E | I | U | H | D | R | N | S | L |
12 |------+------+------+------+------+------|------+------+------+------+------+------|
13 | Shift| Ä | Ö | Q | J | K | X | B | M | W | V |Enter |
14 |------+------+------+------+------+------+------+------+------+------+------+------|
15 | CTRL | OS | Alt | MO(3)|Lower | Space |Raise | Left |Right | Up |Down |
16 `-----------------------------------------------------------------------------------'
17```
18
19## Lower
20```
21,-----------------------------------------------------------------------------------.
22 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
23 |------+------+------+------+------+-------------+------+------+------+------+------|
24 | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
25 |------+------+------+------+------+------|------+------+------+------+------+------|
26 | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | ? |
27 |------+------+------+------+------+------+------+------+------+------+------+------|
28 | | | | | | | | Next | Vol- | Vol+ | Play |
29 `-----------------------------------------------------------------------------------'
30```
31
32## Raise
33```
34,-----------------------------------------------------------------------------------.
35 | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
36 |------+------+------+------+------+-------------+------+------+------+------+------|
37 | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
38 |------+------+------+------+------+------|------+------+------+------+------+------|
39 | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | / |
40 |------+------+------+------+------+------+------+------+------+------+------+------|
41 | | | | | | | | Next | Vol- | Vol+ | Play |
42 `-----------------------------------------------------------------------------------'
43```
44
45## Adjust (MO(3))
46```
47 ,-----------------------------------------------------------------------------------.
48 | | HOME | UP | END | | | | | | | | Del |
49 |------+------+------+------+------+-------------+------+------+------+------+------|
50 | | LEFT | DOWN | RIGHT| | | | | | | | |
51 |------+------+------+------+------+------|------+------+------+------+------+------|
52 | | | | | | | | | | | | |
53 |------+------+------+------+------+------+------+------+------+------+------+------|
54 | | | | | | | | | | | |
55 `-----------------------------------------------------------------------------------'
56``` \ No newline at end of file
diff --git a/keyboards/contra/keymaps/default/config.h b/keyboards/contra/keymaps/default/config.h
new file mode 100644
index 000000000..6114392f6
--- /dev/null
+++ b/keyboards/contra/keymaps/default/config.h
@@ -0,0 +1,35 @@
1#pragma once
2
3
4#ifdef AUDIO_ENABLE
5 #define STARTUP_SONG SONG(PLANCK_SOUND)
6 // #define STARTUP_SONG SONG(NO_SOUND)
7
8 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
9 SONG(COLEMAK_SOUND), \
10 SONG(DVORAK_SOUND) \
11 }
12#endif
13
14#define MUSIC_MASK (keycode != KC_NO)
15
16/*
17 * MIDI options
18 */
19
20/* enable basic MIDI features:
21 - MIDI notes can be sent when in Music mode is on
22*/
23
24#define MIDI_BASIC
25
26/* enable advanced MIDI features:
27 - MIDI notes can be added to the keymap
28 - Octave shift and transpose
29 - Virtual sustain, portamento, and modulation wheel
30 - etc.
31*/
32//#define MIDI_ADVANCED
33
34/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
35//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/contra/keymaps/default/keymap.c b/keyboards/contra/keymaps/default/keymap.c
new file mode 100644
index 000000000..6a653d9ce
--- /dev/null
+++ b/keyboards/contra/keymaps/default/keymap.c
@@ -0,0 +1,260 @@
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 */
16
17#include QMK_KEYBOARD_H
18
19
20enum planck_layers {
21 _QWERTY,
22 _COLEMAK,
23 _DVORAK,
24 _LOWER,
25 _RAISE,
26 _PLOVER,
27 _ADJUST
28};
29
30enum planck_keycodes {
31 QWERTY = SAFE_RANGE,
32 COLEMAK,
33 DVORAK,
34 PLOVER,
35 LOWER,
36 RAISE,
37 BACKLIT,
38 EXT_PLV
39};
40
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42
43 /* Qwerty
44 * ,-----------------------------------------------------------------------------------.
45 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
46 * |------+------+------+------+------+-------------+------+------+------+------+------|
47 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
48 * |------+------+------+------+------+------|------+------+------+------+------+------|
49 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
50 * |------+------+------+------+------+------+------+------+------+------+------+------|
51 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
52 * `-----------------------------------------------------------------------------------'
53 */
54 [_QWERTY] = LAYOUT_planck_mit(
55 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
56 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
57 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
58 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
59 ),
60
61 /* Colemak
62 * ,-----------------------------------------------------------------------------------.
63 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
64 * |------+------+------+------+------+-------------+------+------+------+------+------|
65 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
66 * |------+------+------+------+------+------|------+------+------+------+------+------|
67 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
68 * |------+------+------+------+------+------+------+------+------+------+------+------|
69 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
70 * `-----------------------------------------------------------------------------------'
71 */
72 [_COLEMAK] = LAYOUT_planck_mit(
73 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
74 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
75 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
76 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
77 ),
78
79 /* Dvorak
80 * ,-----------------------------------------------------------------------------------.
81 * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
82 * |------+------+------+------+------+-------------+------+------+------+------+------|
83 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
84 * |------+------+------+------+------+------|------+------+------+------+------+------|
85 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
86 * |------+------+------+------+------+------+------+------+------+------+------+------|
87 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
88 * `-----------------------------------------------------------------------------------'
89 */
90 [_DVORAK] = LAYOUT_planck_mit(
91 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
92 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
93 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
94 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
95 ),
96
97 /* Lower
98 * ,-----------------------------------------------------------------------------------.
99 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
100 * |------+------+------+------+------+-------------+------+------+------+------+------|
101 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
102 * |------+------+------+------+------+------|------+------+------+------+------+------|
103 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
104 * |------+------+------+------+------+------+------+------+------+------+------+------|
105 * | | | | | | | | Next | Vol- | Vol+ | Play |
106 * `-----------------------------------------------------------------------------------'
107 */
108 [_LOWER] = LAYOUT_planck_mit(
109 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
110 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
111 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
112 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
113 ),
114
115 /* Raise
116 * ,-----------------------------------------------------------------------------------.
117 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
118 * |------+------+------+------+------+-------------+------+------+------+------+------|
119 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
120 * |------+------+------+------+------+------|------+------+------+------+------+------|
121 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
122 * |------+------+------+------+------+------+------+------+------+------+------+------|
123 * | | | | | | | | Next | Vol- | Vol+ | Play |
124 * `-----------------------------------------------------------------------------------'
125 */
126 [_RAISE] = LAYOUT_planck_mit(
127 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
128 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
129 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
130 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
131 ),
132
133 /* Plover layer (http://opensteno.org)
134 * ,-----------------------------------------------------------------------------------.
135 * | # | # | # | # | # | # | # | # | # | # | # | # |
136 * |------+------+------+------+------+-------------+------+------+------+------+------|
137 * | | S | T | P | H | * | * | F | P | L | T | D |
138 * |------+------+------+------+------+------|------+------+------+------+------+------|
139 * | | S | K | W | R | * | * | R | B | G | S | Z |
140 * |------+------+------+------+------+------+------+------+------+------+------+------|
141 * | Exit | | | A | O | | E | U | | | |
142 * `-----------------------------------------------------------------------------------'
143 */
144
145 [_PLOVER] = LAYOUT_planck_mit(
146 KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
147 XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
148 XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
149 EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
150 ),
151
152 /* Adjust (Lower + Raise)
153 * ,-----------------------------------------------------------------------------------.
154 * | | Reset| | | | | | | | | | Del |
155 * |------+------+------+------+------+-------------+------+------+------+------+------|
156 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
157 * |------+------+------+------+------+------|------+------+------+------+------+------|
158 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
159 * |------+------+------+------+------+------+------+------+------+------+------+------|
160 * | | | | | | | | | | | |
161 * `-----------------------------------------------------------------------------------'
162 */
163 [_ADJUST] = LAYOUT_planck_mit(
164 _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
165 _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
166 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
167 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
168 )
169
170};
171
172
173#ifdef AUDIO_ENABLE
174 float plover_song[][2] = SONG(PLOVER_SOUND);
175 float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
176#endif
177
178bool process_record_user(uint16_t keycode, keyrecord_t *record) {
179 switch (keycode) {
180 case QWERTY:
181 if (record->event.pressed) {
182 print("mode just switched to qwerty and this is a huge string\n");
183 set_single_persistent_default_layer(_QWERTY);
184 }
185 return false;
186 break;
187 case COLEMAK:
188 if (record->event.pressed) {
189 set_single_persistent_default_layer(_COLEMAK);
190 }
191 return false;
192 break;
193 case DVORAK:
194 if (record->event.pressed) {
195 set_single_persistent_default_layer(_DVORAK);
196 }
197 return false;
198 break;
199 case LOWER:
200 if (record->event.pressed) {
201 layer_on(_LOWER);
202 update_tri_layer(_LOWER, _RAISE, _ADJUST);
203 } else {
204 layer_off(_LOWER);
205 update_tri_layer(_LOWER, _RAISE, _ADJUST);
206 }
207 return false;
208 break;
209 case RAISE:
210 if (record->event.pressed) {
211 layer_on(_RAISE);
212 update_tri_layer(_LOWER, _RAISE, _ADJUST);
213 } else {
214 layer_off(_RAISE);
215 update_tri_layer(_LOWER, _RAISE, _ADJUST);
216 }
217 return false;
218 break;
219 case BACKLIT:
220 if (record->event.pressed) {
221 register_code(KC_RSFT);
222 #ifdef BACKLIGHT_ENABLE
223 backlight_step();
224 #endif
225 } else {
226 unregister_code(KC_RSFT);
227 }
228 return false;
229 break;
230 case PLOVER:
231 if (record->event.pressed) {
232 #ifdef AUDIO_ENABLE
233 stop_all_notes();
234 PLAY_SONG(plover_song);
235 #endif
236 layer_off(_RAISE);
237 layer_off(_LOWER);
238 layer_off(_ADJUST);
239 layer_on(_PLOVER);
240 if (!eeconfig_is_enabled()) {
241 eeconfig_init();
242 }
243 keymap_config.raw = eeconfig_read_keymap();
244 keymap_config.nkro = 1;
245 eeconfig_update_keymap(keymap_config.raw);
246 }
247 return false;
248 break;
249 case EXT_PLV:
250 if (record->event.pressed) {
251 #ifdef AUDIO_ENABLE
252 PLAY_SONG(plover_gb_song);
253 #endif
254 layer_off(_PLOVER);
255 }
256 return false;
257 break;
258 }
259 return true;
260}
diff --git a/keyboards/contra/keymaps/default/readme.md b/keyboards/contra/keymaps/default/readme.md
new file mode 100644
index 000000000..80aba1095
--- /dev/null
+++ b/keyboards/contra/keymaps/default/readme.md
@@ -0,0 +1,2 @@
1# The Default Contra Layout
2
diff --git a/keyboards/contra/keymaps/erovia/config.h b/keyboards/contra/keymaps/erovia/config.h
new file mode 100644
index 000000000..11d6a2c1a
--- /dev/null
+++ b/keyboards/contra/keymaps/erovia/config.h
@@ -0,0 +1,7 @@
1#pragma once
2
3#define AUTO_SHIFT_TIMEOUT 150
4#define NO_AUTO_SHIFT_SPECIAL
5#define NO_AUTO_SHIFT_NUMERIC
6
7#define TAPPING_TERM 200
diff --git a/keyboards/contra/keymaps/erovia/keymap.c b/keyboards/contra/keymaps/erovia/keymap.c
new file mode 100644
index 000000000..9b72e5733
--- /dev/null
+++ b/keyboards/contra/keymaps/erovia/keymap.c
@@ -0,0 +1,163 @@
1#include QMK_KEYBOARD_H
2
3extern keymap_config_t keymap_config;
4
5enum planck_layers {
6 _QWERTY,
7 _COLEMAK,
8 _LOWER,
9 _RAISE,
10 _ADJUST
11};
12
13enum planck_keycodes {
14 QWERTY = SAFE_RANGE,
15 COLEMAK,
16 LOWER,
17 RAISE
18};
19
20enum {
21 TD_SPACE_CADET_SHIFT = 0,
22 TD_SPACE_CADET_ENTER = 1
23};
24
25qk_tap_dance_action_t tap_dance_actions[] = {
26 [TD_SPACE_CADET_SHIFT] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_LPRN),
27 [TD_SPACE_CADET_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_ENT, KC_RPRN)
28};
29
30#define TD_SHFT TD(TD_SPACE_CADET_SHIFT)
31#define TD_ENTR TD(TD_SPACE_CADET_ENTER)
32
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34
35/* Qwerty
36 * ,-----------------------------------------------------------------------------------.
37 * | ` | Q | W | E | R | T | Y | U | I | O | P | Bksp |
38 * |------+------+------+------+------+-------------+------+------+------+------+------|
39 * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
40 * |------+------+------+------+------+------|------+------+------+------+------+------|
41 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
42 * |------+------+------+------+------+------+------+------+------+------+------+------|
43 * | Ctrl | GUI | Alt | GUI |Lower | Tab |Space |Raise | Left | Down | Up |Right |
44 * `-----------------------------------------------------------------------------------'
45 */
46[_QWERTY] = LAYOUT_ortho_4x12(
47 KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
48 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
49 TD_SHFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD_ENTR,
50 KC_LCTL, KC_LGUI, KC_LALT, KC_LGUI, LOWER, KC_TAB, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
51),
52
53/* Colemak
54 * ,-----------------------------------------------------------------------------------.
55 * | ` | Q | W | F | P | B | J | L | U | Y | ; | Bksp |
56 * |------+------+------+------+------+-------------+------+------+------+------+------|
57 * | Ctrl | A | R | S | T | G | M | N | E | I | O | ' |
58 * |------+------+------+------+------+------|------+------+------+------+------+------|
59 * | Shift| Z | X | C | D | V | K | H | , | . | / |Enter |
60 * |------+------+------+------+------+------+------+------+------+------+------+------|
61 * | Ctrl | GUI | Alt | GUI |Lower | Tab |Space |Raise | Left | Down | Up |Right |
62 * `-----------------------------------------------------------------------------------'
63 */
64[_COLEMAK] = LAYOUT_ortho_4x12(
65 KC_GRV, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
66 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
67 TD(TD_SPACE_CADET_SHIFT), KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, TD(TD_SPACE_CADET_ENTER),
68 KC_LCTL, KC_LGUI, KC_LALT, KC_LGUI, LOWER, KC_TAB, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
69),
70
71/* Lower
72 * ,-----------------------------------------------------------------------------------.
73 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
74 * |------+------+------+------+------+-------------+------+------+------+------+------|
75 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
76 * |------+------+------+------+------+------|------+------+------+------+------+------|
77 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
78 * |------+------+------+------+------+------+------+------+------+------+------+------|
79 * | | | | | | | | Next | Vol- | Vol+ | Play |
80 * `-----------------------------------------------------------------------------------'
81 */
82[_LOWER] = LAYOUT_ortho_4x12(
83 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
84 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
85 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
86 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
87),
88
89/* Raise
90 * ,-----------------------------------------------------------------------------------.
91 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
92 * |------+------+------+------+------+-------------+------+------+------+------+------|
93 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
94 * |------+------+------+------+------+------|------+------+------+------+------+------|
95 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
96 * |------+------+------+------+------+------+------+------+------+------+------+------|
97 * | | | | | | | | Prev | Vol- | Mute | Stop |
98 * `-----------------------------------------------------------------------------------'
99 */
100[_RAISE] = LAYOUT_ortho_4x12(
101 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
102 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
103 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
104 _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MUTE, KC_MSTP
105),
106
107/* Adjust (Lower + Raise)
108 * ,-----------------------------------------------------------------------------------.
109 * | | | | | | | | | | | | |
110 * |------+------+------+------+------+-------------+------+------+------+------+------|
111 * | | | | | | | |Qwerty|Colemk| | | |
112 * |------+------+------+------+------+------|------+------+------+------+------+------|
113 * | | | | | | | | | | | | |
114 * |------+------+------+------+------+------+------+------+------+------+------+------|
115 * | | | | | | | | | | | AuSh |
116 * `-----------------------------------------------------------------------------------'
117 */
118[_ADJUST] = LAYOUT_ortho_4x12(
119 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
120 _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, _______, _______, _______,
121 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
122 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ASTG
123)
124
125};
126
127bool process_record_user(uint16_t keycode, keyrecord_t *record) {
128 switch (keycode) {
129 case QWERTY:
130 if (record->event.pressed) {
131 set_single_persistent_default_layer(_QWERTY);
132 }
133 return false;
134 break;
135 case COLEMAK:
136 if (record->event.pressed) {
137 set_single_persistent_default_layer(_COLEMAK);
138 }
139 return false;
140 break;
141 case LOWER:
142 if (record->event.pressed) {
143 layer_on(_LOWER);
144 update_tri_layer(_LOWER, _RAISE, _ADJUST);
145 } else {
146 layer_off(_LOWER);
147 update_tri_layer(_LOWER, _RAISE, _ADJUST);
148 }
149 return false;
150 break;
151 case RAISE:
152 if (record->event.pressed) {
153 layer_on(_RAISE);
154 update_tri_layer(_LOWER, _RAISE, _ADJUST);
155 } else {
156 layer_off(_RAISE);
157 update_tri_layer(_LOWER, _RAISE, _ADJUST);
158 }
159 return false;
160 break;
161 }
162 return true;
163}
diff --git a/keyboards/contra/keymaps/erovia/readme.md b/keyboards/contra/keymaps/erovia/readme.md
new file mode 100644
index 000000000..34cbdf0a1
--- /dev/null
+++ b/keyboards/contra/keymaps/erovia/readme.md
@@ -0,0 +1,76 @@
1# Erovia's Contra Keymap
2
3My personal Contra keymap based on the *basic* keymap.
4
5**Features**
6
7* Qwerty and Colemak Mod-DH support
8* autoshifting
9* double tap LSHIFT and ENTER for quick access to ( and )
10
11## QWERTY (Normal) Layer
12```
13,-----------------------------------------------------------------------------------.
14| ` | Q | W | E | R | T | Y | U | I | O | P | Bksp |
15|------+------+------+------+------+-------------+------+------+------+------+------|
16| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
17|------+------+------+------+------+------|------+------+------+------+------+------|
18| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
19|------+------+------+------+------+------+------+------+------+------+------+------|
20| Ctrl | GUI | Alt | GUI |Lower | Tab |Space |Raise | Left | Down | Up |Right |
21`-----------------------------------------------------------------------------------'
22```
23
24## Colemak Layer
25Switch from `Adjust` layer.
26```
27,-----------------------------------------------------------------------------------.
28| ` | Q | W | F | P | B | J | L | U | Y | ; | Bksp |
29|------+------+------+------+------+-------------+------+------+------+------+------|
30| Ctrl | A | R | S | T | G | M | N | E | I | O | ' |
31|------+------+------+------+------+------|------+------+------+------+------+------|
32| Shift| Z | X | C | D | V | K | H | , | . | / |Enter |
33|------+------+------+------+------+------+------+------+------+------+------+------|
34| Ctrl | GUI | Alt | GUI |Lower | Tab |Space |Raise | Left | Down | Up |Right |
35`-----------------------------------------------------------------------------------'
36```
37
38## Lower
39```
40,-----------------------------------------------------------------------------------.
41| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
42|------+------+------+------+------+-------------+------+------+------+------+------|
43| Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
44|------+------+------+------+------+------|------+------+------+------+------+------|
45| | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
46|------+------+------+------+------+------+------+------+------+------+------+------|
47| | | | | | | | Next | Vol- | Vol+ | Play |
48`-----------------------------------------------------------------------------------'
49```
50
51## Raise
52```
53,-----------------------------------------------------------------------------------.
54| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
55|------+------+------+------+------+-------------+------+------+------+------+------|
56| Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
57|------+------+------+------+------+------|------+------+------+------+------+------|
58| | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
59|------+------+------+------+------+------+------+------+------+------+------+------|
60| | | | | | | | Prev | Vol- | Mute | Stop |
61`-----------------------------------------------------------------------------------'
62```
63
64## Adjust
65`AuSh` toggles autoshifting.
66```
67,-----------------------------------------------------------------------------------.
68| | | | | | | | | | | | |
69|------+------+------+------+------+-------------+------+------+------+------+------|
70| | | | | | | |Qwerty|Colemk| | | |
71|------+------+------+------+------+------|------+------+------+------+------+------|
72| | | | | | | | | | | | |
73|------+------+------+------+------+------+------+------+------+------+------+------|
74| | | | | | | | | | | AuSh |
75`-----------------------------------------------------------------------------------'
76```
diff --git a/keyboards/contra/keymaps/erovia/rules.mk b/keyboards/contra/keymaps/erovia/rules.mk
new file mode 100755
index 000000000..97999d9cb
--- /dev/null
+++ b/keyboards/contra/keymaps/erovia/rules.mk
@@ -0,0 +1,2 @@
1AUTO_SHIFT_ENABLE = yes
2TAP_DANCE_ENABLE = yes
diff --git a/keyboards/contra/keymaps/losinggeneration/README.md b/keyboards/contra/keymaps/losinggeneration/README.md
new file mode 100644
index 000000000..affd2fb9b
--- /dev/null
+++ b/keyboards/contra/keymaps/losinggeneration/README.md
@@ -0,0 +1,30 @@
1losinggeneration's Contra Layout
2============================
3
4This build uses the MIT layout.
5
6See description of the layout in the common folder
7[here](../../../../users/losinggeneration/README.md)
8
9## Features
10- Adjust
11 - Removed AGSwap, AGNorm, & Del
12 - Added Caps Lock, F1-F12 in a 4x3 grid, arrow cluster,
13 and layer transitions to the new layers.
14 - Moved Reset & Audio control to the right side
15
16## Layouts
17
18### Adjust (Lower + Raise)
19
20```
21 ,-----------------------------------------------------------------------------------.
22 | | F1 | F2 | F3 | F4 | | RESET| Game |Numpad|Mouse | |Sleep |
23 |------+------+------+------+------+------+------+------+------+------+------+------|
24 | | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| |
25 |------+------+------+------+------+------+------+------+------+------+------+------|
26 | CAPS | F9 | F10 | F11 | F12 | | | | | | Up | |
27 |------+------+------+------+------+-------------+------+------+------+------+------|
28 | | | | | | | | XXX | Left | Down |Right |
29 `-----------------------------------------------------------------------------------'
30```
diff --git a/keyboards/contra/keymaps/losinggeneration/config.h b/keyboards/contra/keymaps/losinggeneration/config.h
new file mode 100644
index 000000000..4a64e977c
--- /dev/null
+++ b/keyboards/contra/keymaps/losinggeneration/config.h
@@ -0,0 +1,23 @@
1/*
2Copyright 2017 Danny Nguyen <[email protected]>
3Copyright 2018 Harley Laue <[email protected]>
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16long with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21#define USE_MIT_LAYOUT
22
23#define TAPPING_TERM 250
diff --git a/keyboards/contra/keymaps/losinggeneration/keymap.c b/keyboards/contra/keymaps/losinggeneration/keymap.c
new file mode 100644
index 000000000..d4a336c33
--- /dev/null
+++ b/keyboards/contra/keymaps/losinggeneration/keymap.c
@@ -0,0 +1,40 @@
1#include QMK_KEYBOARD_H
2#include "losinggeneration-config.h"
3#include "losinggeneration-keymap.h"
4
5extern keymap_config_t keymap_config;
6
7#define MT_CAPS LSFT_T(KC_CAPS)
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10
11[_QWERTY] = CATMAP( QWERTY_LAYER ),
12[_COLEMAK] = CATMAP( COLEMAK_LAYER ),
13[_WORKMAN] = CATMAP( WORKMAN_LAYER ),
14[_DVORAK] = CATMAP( DVORAK_LAYER ),
15[_GAME] = CATMAP( GAME_LAYER ),
16[_NUMPAD] = CATMAP( NUMPAD_LAYER ),
17[_MOUSE] = CATMAP( MOUSE_LAYER ),
18[_LOWER] = CATMAP( LOWER_LAYER ),
19[_RAISE] = CATMAP( RAISE_LAYER ),
20
21/* Adjust (Lower + Raise)
22 * ,-----------------------------------------------------------------------------------.
23 * | | F1 | F2 | F3 | F4 | | RESET| Game |Numpad|Mouse | |Sleep |
24 * |------+------+------+------+------+------+------+------+------+------+------+------|
25 * | | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| |
26 * |------+------+------+------+------+------+------+------+------+------+------+------|
27 * | CAPS | F9 | F10 | F11 | F12 | | | | | | Up | |
28 * |------+------+------+------+------+------+------+------+------+------+------+------|
29 * | | | | | | | | XXX | Left | Down |Right |
30 * `-----------------------------------------------------------------------------------'
31 */
32[_ADJUST] = CATMAP( \
33 _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, RESET , TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP, \
34 _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, QWERTY , COLEMAK, WORKMAN, DVORAK , _______, \
35 MT_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , _______, _______, _______, _______, _______, KC_UP , _______, \
36 _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT \
37)
38
39};
40
diff --git a/keyboards/contra/keymaps/losinggeneration/rules.mk b/keyboards/contra/keymaps/losinggeneration/rules.mk
new file mode 100644
index 000000000..34b0ba318
--- /dev/null
+++ b/keyboards/contra/keymaps/losinggeneration/rules.mk
@@ -0,0 +1,14 @@
1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically
4#
5AUDIO_ENABLE = no # Audio output on port C6
6BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
7BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
8BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
9COMMAND_ENABLE = no # Commands for debug and configuration
10CONSOLE_ENABLE = no # Console for debug(+400)
11MIDI_ENABLE = no # MIDI controls
12NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
13RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
14
diff --git a/keyboards/contra/keymaps/maxr1998/config.h b/keyboards/contra/keymaps/maxr1998/config.h
new file mode 100644
index 000000000..b384a2fd3
--- /dev/null
+++ b/keyboards/contra/keymaps/maxr1998/config.h
@@ -0,0 +1,15 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "config_common.h"
5
6#define TAPPING_TOGGLE 2
7
8#define RGB_DI_PIN F7 // pin the DI on the WS2812B is hooked-up to
9#define RGBLIGHT_ANIMATIONS // run RGB animations
10#define RGBLED_NUM 12 // number of LEDs
11#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
12#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
13#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
14
15#endif
diff --git a/keyboards/contra/keymaps/maxr1998/keymap.c b/keyboards/contra/keymaps/maxr1998/keymap.c
new file mode 100644
index 000000000..044ed0c0c
--- /dev/null
+++ b/keyboards/contra/keymaps/maxr1998/keymap.c
@@ -0,0 +1,185 @@
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 */
16
17#include "contra.h"
18#include "keymap_german.h"
19
20enum contra_layers {
21 _QWERTZ,
22 _FN,
23 _NR,
24 _NR_L3,
25 _FX,
26 _GAMING
27};
28
29#define KC_I3 LM(_NR, MOD_LALT)
30#define KC_NR SAFE_RANGE
31#define KC_N3 (SAFE_RANGE + 1)
32#define KC_FN MO(_FN)
33#define G_1 TO(_GAMING)
34#define G_0 TG(_GAMING)
35
36const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37
38/* Qwertz
39 * ,-----------------------------------------------------------------------------------.
40 * | Esc | Q | W | E | R | T | Z | U | I | O | P | Bksp |
41 * |------+------+------+------+------+-------------+------+------+------+------+------|
42 * | Tab | A | S | D | F | G | H | J | K | L | +* ~ | Enter|
43 * |------+------+------+------+------+------|------+------+------+------+------+------|
44 * | Shift| Y | X | C | V | B | N | M | , | . | Up | Shift|
45 * |------+------+------+------+------+------+------+------+------+------+------+------|
46 * | Ctrl | Sup | Alt | i3 | NumR | Space | Spec | Fun | Left | Down | Right|
47 * `-----------------------------------------------------------------------------------'
48 */
49[_QWERTZ] = {
50 {KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
51 {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT },
52 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT},
53 {KC_LCTL, KC_LGUI, KC_LALT, KC_I3, KC_NR, KC_SPC, KC_SPC, KC_N3, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT}
54},
55
56/* Function layer
57 * ,-----------------------------------------------------------------------------------.
58 * | | | | | | | | Ü | | Ö | | Del |
59 * |------+------+------+------+------+-------------+------+------+------+------+------|
60 * | Lock | Ä | ß | | | GAME | | RGBS | RGBB | RGBS | | |
61 * |------+------+------+------+------+------|------+------+------+------+------+------|
62 * | | | | | | | | RGBH-| RGBT | RGBH+| PgUp | |
63 * |------+------+------+------+------+------+------+------+------+------+------+------|
64 * | | | | ---- | ---- | | ---- | ---- | Home | PgDn | End |
65 * `-----------------------------------------------------------------------------------'
66 */
67[_FN] = {
68 {_______, _______, _______, _______, _______, _______, _______, DE_UDIA, _______, DE_ODIA, _______, KC_DEL },
69 {KC_LOCK, DE_ADIA, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_B, RGB_M_SW,_______, _______},
70 {_______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, RGB_HUI, KC_PGUP, _______},
71 {_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END }
72},
73
74/* Numrow layer (special characters with Shift and ISO_L3_Shift)
75 * ,-----------------------------------------------------------------------------------.
76 * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
77 * |------+------+------+------+------+-------------+------+------+------+------+------|
78 * | | | | | | | | | | | #' | |
79 * |------+------+------+------+------+------|------+------+------+------+------+------|
80 * | | <> | | | | | | | | | | -_ | |
81 * |------+------+------+------+------+------+------+------+------+------+------+------|
82 * | | | | ---- | ---- | | ---- | ---- | | | |
83 * `-----------------------------------------------------------------------------------'
84 */
85[_NR] = {
86 {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, _______},
87 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DE_HASH, _______},
88 {_______, DE_LABK, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______},
89 {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______}
90},
91[_NR_L3] = {
92 {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS },
93 {_______, DE_Q, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
94 {_______, DE_LABK, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______},
95 {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______}
96},
97
98/* Function keys
99 * ,-----------------------------------------------------------------------------------.
100 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
101 * |------+------+------+------+------+-------------+------+------+------+------+------|
102 * | | | | | | | | | | | | |
103 * |------+------+------+------+------+------|------+------+------+------+------+------|
104 * | | | | | | | | | | | | |
105 * |------+------+------+------+------+------+------+------+------+------+------+------|
106 * | | | | | | | | | | | |
107 * `-----------------------------------------------------------------------------------'
108 */
109[_FX] = {
110 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
111 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
112 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
113 {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______}
114},
115
116/* Gaming
117 * ,-----------------------------------------------------------------------------------.
118 * | | | | | | | | | | | | |
119 * |------+------+------+------+------+-------------+------+------+------+------+------|
120 * | | | | | | | | | | | | |
121 * |------+------+------+------+------+------|------+------+------+------+------+------|
122 * | | | | | | | | | | | | |
123 * |------+------+------+------+------+------+------+------+------+------+------+------|
124 * | Space| | | | | | | Leave| | | |
125 * `-----------------------------------------------------------------------------------'
126 */
127[_GAMING] = {
128 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
129 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
130 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
131 {KC_SPC, XXXXXXX, _______, _______, _______, KC_LCTL, KC_LCTL, _______, G_0, _______, _______, _______}
132}
133};
134
135void update_tri_layer_user(void);
136
137bool process_record_user(uint16_t keycode, keyrecord_t *record) {
138 switch(keycode) {
139 case KC_BSPC:
140 if (record->event.pressed) {
141 if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) {
142 register_code(DE_SS);
143 return false;
144 }
145 } else {
146 unregister_code(DE_SS);
147 }
148 return true;
149 case KC_NR:
150 if (record->event.pressed) {
151 layer_on(_NR);
152 } else {
153 layer_off(_NR);
154 }
155 update_tri_layer_user();
156 return false;
157 case KC_N3:
158 if (record->event.pressed) {
159 layer_on(_NR_L3);
160 } else {
161 layer_off(_NR_L3);
162 }
163 update_tri_layer_user();
164 return false;
165 default:
166 return true;
167 }
168}
169
170void update_tri_layer_user(void) {
171 update_tri_layer(_NR, _NR_L3, _FX);
172 if (layer_state_is(_NR_L3) && !layer_state_is(_FX)) {
173 register_code(KC_ALGR);
174 } else {
175 unregister_code(KC_ALGR);
176 }
177}
178
179void led_set_user(uint8_t usb_led) {
180 // Force-enable Numlock
181 if (!(usb_led & (1<<USB_LED_NUM_LOCK))) {
182 register_code(KC_NUMLOCK);
183 unregister_code(KC_NUMLOCK);
184 }
185}
diff --git a/keyboards/contra/keymaps/maxr1998/readme.md b/keyboards/contra/keymaps/maxr1998/readme.md
new file mode 100644
index 000000000..18d57e2cb
--- /dev/null
+++ b/keyboards/contra/keymaps/maxr1998/readme.md
@@ -0,0 +1,2 @@
1# Contra Layout by Maxr1998
2![img](https://i.imgur.com/dVnnRDT.jpg) \ No newline at end of file
diff --git a/keyboards/contra/keymaps/maxr1998/rules.mk b/keyboards/contra/keymaps/maxr1998/rules.mk
new file mode 100644
index 000000000..e1ba07429
--- /dev/null
+++ b/keyboards/contra/keymaps/maxr1998/rules.mk
@@ -0,0 +1,11 @@
1RGBLIGHT_ENABLE = yes
2KEY_LOCK_ENABLE = yes
3
4EXTRAFLAGS += -flto
5UNICODE_ENABLE = no
6MOUSEKEY_ENABLE = no
7
8### Debugging ###
9CONSOLE_ENABLE = no # yes
10COMMAND_ENABLE = no
11
diff --git a/keyboards/contra/keymaps/msiu/config.h b/keyboards/contra/keymaps/msiu/config.h
new file mode 100644
index 000000000..6166fea4a
--- /dev/null
+++ b/keyboards/contra/keymaps/msiu/config.h
@@ -0,0 +1,34 @@
1#pragma once
2
3#ifdef AUDIO_ENABLE
4 #define STARTUP_SONG SONG(PLANCK_SOUND)
5 // #define STARTUP_SONG SONG(NO_SOUND)
6
7 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
8 SONG(COLEMAK_SOUND), \
9 SONG(DVORAK_SOUND) \
10 }
11#endif
12
13#define MUSIC_MASK (keycode != KC_NO)
14
15/*
16 * MIDI options
17 */
18
19/* enable basic MIDI features:
20 - MIDI notes can be sent when in Music mode is on
21*/
22
23#define MIDI_BASIC
24
25/* enable advanced MIDI features:
26 - MIDI notes can be added to the keymap
27 - Octave shift and transpose
28 - Virtual sustain, portamento, and modulation wheel
29 - etc.
30*/
31//#define MIDI_ADVANCED
32
33/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
34//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/contra/keymaps/msiu/keymap.c b/keyboards/contra/keymaps/msiu/keymap.c
new file mode 100644
index 000000000..ee0598533
--- /dev/null
+++ b/keyboards/contra/keymaps/msiu/keymap.c
@@ -0,0 +1,176 @@
1#include QMK_KEYBOARD_H
2
3extern keymap_config_t keymap_config;
4
5enum planck_layers {
6 _QWERTY,
7 _DVORAK,
8 _LOWER,
9 _RAISE,
10 _NUMB,
11 _FUNC,
12 _ADJUST
13};
14
15enum planck_keycodes {
16 QWERTY = SAFE_RANGE,
17 DVORAK,
18 LOWER,
19 RAISE,
20 ADJUST
21};
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24
25 /* Qwerty
26 * ,------------------------------------------------------------------------------------------.
27 * | Tab / Numb | Q | W | E | R | T | Y | U | I | O | P | Bksp |
28 * |-------------+------+------+------+------+-------------+------+------+------+------+------|
29 * | Esc / Ctrl | A | S | D | F | G | H | J | K | L | ; | ' |
30 * |-------------+------+------+------+------+------|------+------+------+------+------+------|
31 * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter |
32 * |-------------+------+------+------+------+------+------+------+------+------+------+------|
33 * | Ctrl |Hyper | Alt | GUI |Lower | Func |Space |Raise | Left | Down | Up |Right |
34 * `------------------------------------------------------------------------------------------'
35 */
36 [_QWERTY] = LAYOUT_ortho_4x12(
37 LT(_NUMB, KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
38 LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
39 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
40 KC_LCTL, KC_HYPR, KC_LALT, KC_LGUI, LOWER, MO(_FUNC), KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
41 ),
42
43 /* Dvorak
44 * ,-----------------------------------------------------------------------------------.
45 * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
46 * |------+------+------+------+------+-------------+------+------+------+------+------|
47 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
48 * |------+------+------+------+------+------|------+------+------+------+------+------|
49 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
50 * |------+------+------+------+------+------+------+------+------+------+------+------|
51 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
52 * `-----------------------------------------------------------------------------------'
53 */
54 [_DVORAK] = LAYOUT_ortho_4x12(
55 _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
56 _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
57 _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
59 ),
60
61 /* Lower
62 * ,-----------------------------------------------------------------------------------.
63 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
64 * |------+------+------+------+------+-------------+------+------+------+------+------|
65 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
66 * |------+------+------+------+------+------|------+------+------+------+------+------|
67 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
68 * |------+------+------+------+------+------+------+------+------+------+------+------|
69 * | | | | | | | | Next | Vol- | Vol+ | Play |
70 * `-----------------------------------------------------------------------------------'
71 */
72 [_LOWER] = LAYOUT_ortho_4x12(
73 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
74 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
75 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
76 _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
77 ),
78
79 /* Raise
80 * ,-----------------------------------------------------------------------------------.
81 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
82 * |------+------+------+------+------+-------------+------+------+------+------+------|
83 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
84 * |------+------+------+------+------+------|------+------+------+------+------+------|
85 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
86 * |------+------+------+------+------+------+------+------+------+------+------+------|
87 * | | | | | | | | Next | Vol- | Vol+ | Play |
88 * `-----------------------------------------------------------------------------------'
89 */
90 [_RAISE] = LAYOUT_ortho_4x12(
91 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
92 _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
93 _______, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
94 _______, _______, _______, _______, _______, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
95 ),
96
97 /* Adjust (Lower + Raise)
98 * ,-----------------------------------------------------------------------------------.
99 * | | Reset| | | | | | | | | | Del |
100 * |------+------+------+------+------+-------------+------+------+------+------+------|
101 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
102 * |------+------+------+------+------+------|------+------+------+------+------+------|
103 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
104 * |------+------+------+------+------+------+------+------+------+------+------+------|
105 * | | | | | | | | | | | |
106 * `-----------------------------------------------------------------------------------'
107 */
108 [_ADJUST] = LAYOUT_ortho_4x12(
109 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
110 _______, _______, _______, _______, _______, _______, _______, QWERTY, DVORAK, _______, _______, _______,
111 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
112 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET
113 ),
114
115 [_FUNC] = LAYOUT_ortho_4x12(
116 _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_PSCR, _______,
117 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
118 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
119 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
120 ),
121
122 [_NUMB] = LAYOUT_ortho_4x12(
123 _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, KC_BSPC,
124 _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
125 _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______,
126 _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, _______, _______, _______
127 )
128
129};
130
131bool process_record_user(uint16_t keycode, keyrecord_t *record) {
132 switch (keycode) {
133 case QWERTY:
134 if (record->event.pressed) {
135 // print("mode just switched to qwerty and this is a huge string\n");
136 set_single_persistent_default_layer(_QWERTY);
137 }
138 return false;
139 break;
140 case DVORAK:
141 if (record->event.pressed) {
142 set_single_persistent_default_layer(_DVORAK);
143 }
144 return false;
145 break;
146 case LOWER:
147 if (record->event.pressed) {
148 layer_on(_LOWER);
149 update_tri_layer(_LOWER, _RAISE, _ADJUST);
150 } else {
151 layer_off(_LOWER);
152 update_tri_layer(_LOWER, _RAISE, _ADJUST);
153 }
154 return false;
155 break;
156 case RAISE:
157 if (record->event.pressed) {
158 layer_on(_RAISE);
159 update_tri_layer(_LOWER, _RAISE, _ADJUST);
160 } else {
161 layer_off(_RAISE);
162 update_tri_layer(_LOWER, _RAISE, _ADJUST);
163 }
164 return false;
165 break;
166 case ADJUST:
167 if (record->event.pressed) {
168 layer_on(_ADJUST);
169 } else {
170 layer_off(_ADJUST);
171 }
172 return false;
173 break;
174 }
175 return true;
176}
diff --git a/keyboards/contra/keymaps/msiu/readme.md b/keyboards/contra/keymaps/msiu/readme.md
new file mode 100644
index 000000000..80aba1095
--- /dev/null
+++ b/keyboards/contra/keymaps/msiu/readme.md
@@ -0,0 +1,2 @@
1# The Default Contra Layout
2
diff --git a/keyboards/contra/keymaps/ryanm101/config.h b/keyboards/contra/keymaps/ryanm101/config.h
new file mode 100644
index 000000000..e3d8b6b6b
--- /dev/null
+++ b/keyboards/contra/keymaps/ryanm101/config.h
@@ -0,0 +1,41 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "config_common.h"
5
6#define TAPPING_TERM 200
7
8#ifdef AUDIO_ENABLE
9 #define STARTUP_SONG SONG(PLANCK_SOUND)
10 // #define STARTUP_SONG SONG(NO_SOUND)
11
12 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
13 SONG(COLEMAK_SOUND), \
14 SONG(DVORAK_SOUND) \
15 }
16#endif
17
18#define MUSIC_MASK (keycode != KC_NO)
19
20/*
21 * MIDI options
22 */
23
24/* enable basic MIDI features:
25 - MIDI notes can be sent when in Music mode is on
26*/
27
28#define MIDI_BASIC
29
30/* enable advanced MIDI features:
31 - MIDI notes can be added to the keymap
32 - Octave shift and transpose
33 - Virtual sustain, portamento, and modulation wheel
34 - etc.
35*/
36//#define MIDI_ADVANCED
37
38/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
39//#define MIDI_TONE_KEYCODE_OCTAVES 2
40
41#endif
diff --git a/keyboards/contra/keymaps/ryanm101/keymap.c b/keyboards/contra/keymaps/ryanm101/keymap.c
new file mode 100644
index 000000000..721a9a06e
--- /dev/null
+++ b/keyboards/contra/keymaps/ryanm101/keymap.c
@@ -0,0 +1,259 @@
1#include "contra.h"
2#include "action_layer.h"
3
4extern keymap_config_t keymap_config;
5
6// Custom Key Combos
7#define LCKSCR LCTL(LGUI(KC_Q))
8//#define KC_CAD LCTL(LALT(KC_DEL)) // CTL+ALT+DEL (windows)
9//#define KC_CAE LGUI(LALT(KC_ESC)) // CMD+ALT+ESC (Force Close)
10//#define KC_SCREENSHOT LGUI(S(KC_4)) // CMD+SHIFT+4 (Mac Screenshot)
11
12#define _QWERTY 0
13#define _QWERTYMAC 1
14#define _L1 2
15#define _L2 3
16#define _L3 4
17
18enum custom_keycodes {
19 QWERTY = SAFE_RANGE,
20 QWERTYMAC,
21 L1,
22 L2,
23 L3
24};
25
26//Tap Dance Declarations
27#define COLON TD(CLN)
28#define QUOTE TD(QUOT)
29#define PARAN TD(PAR)
30#define CURLY TD(CUR)
31#define SQUAR TD(SQU)
32#define ANGUL TD(ANG)
33#define TMUX TD(TD_TMUX)
34#define CADCAE TD(CAD_CAE)
35#define SHIFTSLASHPIPE TD(TD_SHIFTSLASHPIPE)
36
37enum {
38 CLN = 0,
39 QUOT,
40 CAD_CAE,
41 PAR,
42 CUR,
43 SQU,
44 ANG,
45 TD_TMUX,
46 TD_SHIFTSLASHPIPE,
47};
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50
51 /* Qwerty
52 * ,-----------------------------------------------------------------------------------.
53 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
54 * |------+------+------+------+------+-------------+------+------+------+------+------|
55 * | Esc | A | S | D | F | G | H | J | K | L | ;: | '@ |
56 * |------+------+------+------+------+------|------+------+------+------+------+------|
57 * | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter |
58 * |------+------+------+------+------+------+------+------+------+------+------+------|
59 * | Ctrl | GUI | Alt | \| | L1 | | | L2 | Left | Down | Up |Right |
60 * `-----------------------------------------------------------------------------------'
61 */
62 [_QWERTY] = LAYOUT_ortho_4x12(
63 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
64 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, COLON, QUOTE,
65 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
66 KC_LCTL, KC_LGUI, KC_LALT, KC_NUBS, MO(_L1), XXXXXXX, KC_SPC, MO(_L2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
67 ),
68
69 /* QwertyMAC
70 * ,-----------------------------------------------------------------------------------.
71 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
72 * |------+------+------+------+------+-------------+------+------+------+------+------|
73 * | Esc | A | S | D | F | G | H | J | K | L | ;: | '@ |
74 * |------+------+------+------+------+------|------+------+------+------+------+------|
75 * | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter |
76 * |------+------+------+------+------+------+------+------+------+------+------+------|
77 * | Ctrl | Alt | GUI | \| | L1 | | | L2 | Left | Down | Up |Right |
78 * `-----------------------------------------------------------------------------------'
79 */
80 [_QWERTYMAC] = LAYOUT_ortho_4x12(
81 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
82 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, COLON, QUOTE,
83 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
84 KC_LCTL, KC_LALT, KC_LGUI, KC_NUBS, MO(_L1), XXXXXXX, KC_SPC, MO(_L2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
85 ),
86
87 /* L1
88 * ,-----------------------------------------------------------------------------------.
89 * | `¬ |INSERT| PGUP | HOME | <> | | () | 7& | 8* | 9( | | Bksp |
90 * |------+------+------+------+------+-------------+------+------+------+------+------|
91 * | |DELETE| PGDN | END | [] | {} | =+ | 4$ | 5% | 6^ | * | LMAC |
92 * |------+------+------+------+------+------|------+------+------+------+------+------|
93 * |LSHIFT|PSCRN | |CADCAE| L3 |LCKSCR| -_ | 1! | 2" | 3£ | /? |ENTER |
94 * |------+------+------+------+------+------+------+------+------+------+------+------|
95 * | Ctrl | GUI | Alt | #~ | | | | | 0) | .> | | MENU |
96 * `-----------------------------------------------------------------------------------'
97 */
98 [_L1] = LAYOUT_ortho_4x12(
99 KC_GRV, KC_INS, KC_PGUP, KC_HOME, ANGUL, XXXXXXX, PARAN, KC_7, KC_8, KC_9, XXXXXXX, KC_BSPC,
100 XXXXXXX, KC_DEL, KC_PGDN, KC_END, SQUAR, CURLY, KC_EQL, KC_4, KC_5, KC_6, S(KC_8), TG(_QWERTYMAC),
101 _______, KC_PSCR, XXXXXXX, CADCAE, MO(_L3), LCKSCR, KC_MINS, KC_1, KC_2, KC_3, KC_SLSH, KC_ENT,
102 _______, _______, _______, KC_NUHS, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, KC_0, ALGR_T(KC_DOT), XXXXXXX, KC_MENU
103 ),
104
105 /* L2
106 * ,-----------------------------------------------------------------------------------.
107 * |Sysreq| F9 | F10 | F11 | F12 | |NUMLK | 7 | 8 | 9 | * |Bksp |
108 * |------+------+------+------+------+-------------+------+------+------+------+------|
109 * | | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | / | |
110 * |------+------+------+------+------+------|------+------+------+------+------+------|
111 * | | F1 | F2 | F3 | F4 | | | 1 | 2 | 3 | + |KP_ENT|
112 * |------+------+------+------+------+------+------+------+------+------+------+------|
113 * | Ctrl | GUI | Alt | | | | | | 0 | . | - | |
114 * `-----------------------------------------------------------------------------------'
115 */
116 [_L2] = LAYOUT_ortho_4x12(
117 KC_SYSREQ, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_PAST, KC_BSPC,
118 XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PSLS, _______,
119 XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PENT,
120 _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, KC_P0, KC_PDOT, KC_PMNS, _______
121 ),
122
123 /* L3
124 * ,-----------------------------------------------------------------------------------.
125 * |RGBTOG|RGBHUI|RGBHUD|RGBSAI|RGBSAD| | | PGDN | PGUP | | | |
126 * |------+------+------+------+------+-------------+------+------+------+------+------|
127 * |BLTOG |BLSTEP|RGBVAI|RGBVAD|RGBMOD|RGBRMD| Left | Down | Up | Right| | |
128 * |------+------+------+------+------+------|------+------+------+------+------+------|
129 * | TMUX | | | | | | | | | | |Enter |
130 * |------+------+------+------+------+------+------+------+------+------+------+------|
131 * | | | | | | | | | | | | |
132 * `-----------------------------------------------------------------------------------'
133 */
134 [_L3] = LAYOUT_ortho_4x12(
135 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX,
136 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX,
137 TMUX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ENT,
138 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
139 )
140
141};
142
143// Parantheses
144void paranthesis_dance (qk_tap_dance_state_t *state, void *user_data) {
145 if (state->count == 1) {
146 SEND_STRING("()"); register_code(KC_LEFT); unregister_code(KC_LEFT);
147 } else if (state->count == 2) {
148 SEND_STRING("(");
149 } else if (state->count == 3) {
150 SEND_STRING(")");
151 }
152}
153
154void curly_dance (qk_tap_dance_state_t *state, void *user_data) {
155 if (state->count == 1) {
156 SEND_STRING("{}"); register_code(KC_LEFT); unregister_code(KC_LEFT);
157 } else if (state->count == 2) {
158 SEND_STRING("{");
159 } else if (state->count == 3) {
160 SEND_STRING("}");
161 }
162}
163
164void square_dance (qk_tap_dance_state_t *state, void *user_data) {
165 if (state->count == 1) {
166 SEND_STRING("[]"); register_code(KC_LEFT); unregister_code(KC_LEFT);
167 } else if (state->count == 2) {
168 SEND_STRING("[");
169 } else if (state->count == 3) {
170 SEND_STRING("]");
171 }
172}
173
174void angular_dance (qk_tap_dance_state_t *state, void *user_data) {
175 if (state->count == 1) {
176 SEND_STRING("<>"); register_code(KC_LEFT); unregister_code(KC_LEFT);
177 } else if (state->count == 2) {
178 SEND_STRING("<");
179 } else if (state->count == 3) {
180 SEND_STRING(">");
181 }
182}
183
184void tmux_dance (qk_tap_dance_state_t *state, void *user_data) {
185 if (state->count == 1) {
186 SEND_STRING("tmux"); register_code(KC_ENT); unregister_code(KC_ENT);
187 } else if (state->count == 2) {
188 register_mods(MOD_BIT(KC_LCTRL));
189 register_code(KC_B); unregister_code(KC_B);
190 unregister_mods(MOD_BIT(KC_LCTRL));
191 register_mods(MOD_BIT(KC_LSHIFT));
192 register_code(KC_5); unregister_code(KC_5);
193 unregister_mods(MOD_BIT(KC_LSHIFT));
194 }
195}
196
197void cmd_dance (qk_tap_dance_state_t *state, void *user_data) {
198 if (state->count == 1) {
199 register_mods(MOD_BIT(KC_LCTRL));
200 register_mods(MOD_BIT(KC_LALT));
201 register_code(KC_DELETE);
202 unregister_mods(MOD_BIT(KC_LCTRL));
203 unregister_mods(MOD_BIT(KC_LALT));
204 unregister_code(KC_DELETE);
205 } else if (state->count == 2) {
206 register_mods(MOD_BIT(KC_LGUI));
207 register_mods(MOD_BIT(KC_LALT));
208 register_code(KC_ESC);
209 unregister_mods(MOD_BIT(KC_LGUI));
210 unregister_mods(MOD_BIT(KC_LALT));
211 unregister_code(KC_ESC);
212 } else if (state->count == 3) {
213 register_mods(MOD_BIT(KC_LGUI));
214 register_mods(MOD_BIT(KC_LSHIFT));
215 register_code(KC_4);
216 unregister_mods(MOD_BIT(KC_LGUI));
217 unregister_mods(MOD_BIT(KC_LSHIFT));
218 unregister_code(KC_4);
219 }
220}
221
222void cmd_sft_slash_pipe_down (qk_tap_dance_state_t *state, void *user_data) {
223 if (state->count == 1) {
224 if (state->interrupted || state->pressed==0) {
225 register_code (KC_NONUS_BSLASH);
226 } else {
227 register_code (KC_LSFT);
228 }
229 } else if (state->count == 2) {
230 register_mods(MOD_BIT(KC_LSFT));
231 register_code(KC_NONUS_BSLASH);
232 }
233}
234
235void cmd_sft_slash_pipe_up (qk_tap_dance_state_t *state, void *user_data) {
236 if (state->count == 1) {
237 if (keyboard_report->mods & MOD_BIT(KC_LSFT)) {
238 unregister_code (KC_LSFT);
239 } else {
240 unregister_code (KC_NONUS_BSLASH);
241 }
242 } else if (state->count == 2) {
243 unregister_mods(MOD_BIT(KC_LSFT));
244 unregister_code(KC_NONUS_BSLASH);
245 }
246}
247
248 //All tap dance functions would go here. Only showing this one.
249 qk_tap_dance_action_t tap_dance_actions[] = {
250 [CLN] = ACTION_TAP_DANCE_DOUBLE (KC_SCLN, S(KC_SCLN ))
251 ,[QUOT] = ACTION_TAP_DANCE_DOUBLE (KC_QUOT, S(KC_2))
252 ,[CAD_CAE] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, cmd_dance )
253 ,[PAR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, paranthesis_dance )
254 ,[CUR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, curly_dance )
255 ,[SQU] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, square_dance )
256 ,[ANG] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, angular_dance )
257 ,[TD_TMUX] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, NULL, tmux_dance )
258 ,[TD_SHIFTSLASHPIPE] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, cmd_sft_slash_pipe_down, cmd_sft_slash_pipe_up)
259 };
diff --git a/keyboards/contra/keymaps/ryanm101/readme.md b/keyboards/contra/keymaps/ryanm101/readme.md
new file mode 100644
index 000000000..a289eefcb
--- /dev/null
+++ b/keyboards/contra/keymaps/ryanm101/readme.md
@@ -0,0 +1,11 @@
1# Layout Info
2Map is from my JJ40 but Contra has been done with a grid vs my JJ's MIT layout. Map will be updated as soon as i figure out what to do with the addional key.
3
4- Uses non-US keys
5- Keymap can be seen: Keymap -> http://www.keyboard-layout-editor.com/#/gists/7d111d72b138c3ef03ea4ffac4ddb7e4
6
7# Notes
8
9- .> on lower layer if tapped but ALTGR if held
10- RAISE -> uses TT() so tap to enter (NUMPAD Usage) or hold for momentary (F Keys)
11- LOWER on _RAISE goes straight to qwerty layout (Base layer)
diff --git a/keyboards/contra/keymaps/ryanm101/rules.mk b/keyboards/contra/keymaps/ryanm101/rules.mk
new file mode 100644
index 000000000..f5e8c3d6d
--- /dev/null
+++ b/keyboards/contra/keymaps/ryanm101/rules.mk
@@ -0,0 +1 @@
TAP_DANCE_ENABLE=yes \ No newline at end of file
diff --git a/keyboards/contra/keymaps/via/keymap.c b/keyboards/contra/keymaps/via/keymap.c
new file mode 100644
index 000000000..4bf7a9c17
--- /dev/null
+++ b/keyboards/contra/keymaps/via/keymap.c
@@ -0,0 +1,98 @@
1/* This program is free software: you can redistribute it and/or modify
2 * it under the terms of the GNU General Public License as published by
3 * the Free Software Foundation, either version 2 of the License, or
4 * (at your option) any later version.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program. If not, see <http://www.gnu.org/licenses/>.
13 */
14
15#include QMK_KEYBOARD_H
16
17
18enum planck_layers {
19 _BASE,
20 _LOWER,
21 _RAISE,
22 _ADJUST
23};
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26
27 /* Base
28 * ,-----------------------------------------------------------------------------------.
29 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
30 * |------+------+------+------+------+-------------+------+------+------+------+------|
31 * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
32 * |------+------+------+------+------+------|------+------+------+------+------+------|
33 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
34 * |------+------+------+------+------+------+------+------+------+------+------+------|
35 * | Adjst| Ctrl | Gui | Alt |Lower | Space |Raise | Left | Down | Up |Right |
36 * `-----------------------------------------------------------------------------------'
37 */
38 [_BASE] = LAYOUT_planck_mit(
39 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
40 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
41 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
42 MO(_ADJUST), KC_LCTL, KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
43 ),
44
45 /* Lower
46 * ,-----------------------------------------------------------------------------------.
47 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
48 * |------+------+------+------+------+-------------+------+------+------+------+------|
49 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
50 * |------+------+------+------+------+------|------+------+------+------+------+------|
51 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End | |
52 * |------+------+------+------+------+------+------+------+------+------+------+------|
53 * | | | | | | | | Next | Vol- | Vol+ | Play |
54 * `-----------------------------------------------------------------------------------'
55 */
56 [_LOWER] = LAYOUT_planck_mit(
57 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
58 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
59 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______,
60 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
61 ),
62
63 /* Raise
64 * ,-----------------------------------------------------------------------------------.
65 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
66 * |------+------+------+------+------+-------------+------+------+------+------+------|
67 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
68 * |------+------+------+------+------+------|------+------+------+------+------+------|
69 * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | |
70 * |------+------+------+------+------+------+------+------+------+------+------+------|
71 * | | | | | | | | Next | Vol- | Vol+ | Play |
72 * `-----------------------------------------------------------------------------------'
73 */
74 [_RAISE] = LAYOUT_planck_mit(
75 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
76 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
77 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______,
78 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
79 ),
80
81 /* Adjust
82 * ,----------------------------------------------------------- ------------------------.
83 * | | Reset| Debug| | | | | | | | | Del |
84 * |------+------+------+------+------+-------------+------+------+------+------+------|
85 * | | | | | | | | | | | | |
86 * |------+------+------+------+------+------|------+------+------+------+------+------|
87 * | | | | | | | | | | | | |
88 * |------+------+------+------+------+------+------+------+------+------+------+------|
89 * | | | | | | | | | | | |
90 * `-----------------------------------------------------------------------------------'
91 */
92 [_ADJUST] = LAYOUT_planck_mit(
93 _______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
94 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
95 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
97 )
98}; \ No newline at end of file
diff --git a/keyboards/contra/keymaps/via/readme.md b/keyboards/contra/keymaps/via/readme.md
new file mode 100644
index 000000000..3c863243d
--- /dev/null
+++ b/keyboards/contra/keymaps/via/readme.md
@@ -0,0 +1,2 @@
1# A basic Contra Layout with VIA enabled
2
diff --git a/keyboards/contra/keymaps/via/rules.mk b/keyboards/contra/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/contra/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes \ No newline at end of file