aboutsummaryrefslogtreecommitdiff
path: root/keyboards/evyd13/wasdat_code
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2020-11-28 12:02:18 -0800
committerGitHub <noreply@github.com>2020-11-28 12:02:18 -0800
commitc66df1664497546f32662409778731143e45a552 (patch)
treeda73a2d532a27685a31d932b3a44a707d4a3af81 /keyboards/evyd13/wasdat_code
parent15385d4113414d42bd062c60c9de5df797d3157f (diff)
downloadqmk_firmware-c66df1664497546f32662409778731143e45a552.tar.gz
qmk_firmware-c66df1664497546f32662409778731143e45a552.zip
2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
Diffstat (limited to 'keyboards/evyd13/wasdat_code')
-rw-r--r--keyboards/evyd13/wasdat_code/config.h230
-rw-r--r--keyboards/evyd13/wasdat_code/info.json459
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default/keymap.c53
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default/readme.md1
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c44
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default_iso/readme.md1
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/via/keymap.c46
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/via/rules.mk2
-rw-r--r--keyboards/evyd13/wasdat_code/matrix.c369
-rw-r--r--keyboards/evyd13/wasdat_code/readme.md19
-rw-r--r--keyboards/evyd13/wasdat_code/rules.mk36
-rw-r--r--keyboards/evyd13/wasdat_code/wasdat_code.c47
-rw-r--r--keyboards/evyd13/wasdat_code/wasdat_code.h107
13 files changed, 1414 insertions, 0 deletions
diff --git a/keyboards/evyd13/wasdat_code/config.h b/keyboards/evyd13/wasdat_code/config.h
new file mode 100644
index 000000000..f4b15ced3
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/config.h
@@ -0,0 +1,230 @@
1/*
2Copyright 2019 Evy Dekkers
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#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0xB00E
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Evyd13
27#define PRODUCT Wasdat Code
28#define DESCRIPTION Custom controller for the WASD CODE TKL and 104-key keyboards
29
30/* key matrix size */
31#define MATRIX_ROWS 8
32#define MATRIX_COLS 16
33
34/*
35 * Keyboard Matrix Assignments
36 *
37 * Change this to how you wired your keyboard
38 * COLS: AVR pins used for columns, left to right
39 * ROWS: AVR pins used for rows, top to bottom
40 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
41 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
42 *
43*/
44#define MATRIX_ROW_PINS { E6, C7, C6, B6, B5, B4, D7, D6 }
45#define MATRIX_COL_PINS { }
46#define UNUSED_PINS
47
48/* COL2ROW, ROW2COL*/
49#define DIODE_DIRECTION ROW2COL
50
51// For QMK DFU
52#define QMK_ESC_OUTPUT E6
53#define QMK_ESC_INPUT F0
54#define QMK_LED B1
55
56/*
57 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
58 */
59//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
60
61#define BACKLIGHT_PIN B7
62#define BACKLIGHT_BREATHING
63#define BACKLIGHT_LEVELS 5
64
65// #define RGB_DI_PIN E2
66// #ifdef RGB_DI_PIN
67// #define RGBLED_NUM 16
68// #define RGBLIGHT_HUE_STEP 8
69// #define RGBLIGHT_SAT_STEP 8
70// #define RGBLIGHT_VAL_STEP 8
71// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
72// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
73// /*== all animations enable ==*/
74// #define RGBLIGHT_ANIMATIONS
75// /*== or choose animations ==*/
76// #define RGBLIGHT_EFFECT_BREATHING
77// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
78// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
79// #define RGBLIGHT_EFFECT_SNAKE
80// #define RGBLIGHT_EFFECT_KNIGHT
81// #define RGBLIGHT_EFFECT_CHRISTMAS
82// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
83// #define RGBLIGHT_EFFECT_RGB_TEST
84// #define RGBLIGHT_EFFECT_ALTERNATING
85// /*== customize breathing effect ==*/
86// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
87// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
88// /*==== use exp() and sin() ====*/
89// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
90// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
91// #endif
92
93/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
94#define DEBOUNCE 5
95
96/* define if matrix has ghost (lacks anti-ghosting diodes) */
97//#define MATRIX_HAS_GHOST
98
99/* number of backlight levels */
100
101/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
102#define LOCKING_SUPPORT_ENABLE
103/* Locking resynchronize hack */
104#define LOCKING_RESYNC_ENABLE
105
106/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
107 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
108 */
109// #define GRAVE_ESC_CTRL_OVERRIDE
110
111/*
112 * Force NKRO
113 *
114 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
115 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
116 * makefile for this to work.)
117 *
118 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
119 * until the next keyboard reset.
120 *
121 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
122 * fully operational during normal computer usage.
123 *
124 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
125 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
126 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
127 * power-up.
128 *
129 */
130//#define FORCE_NKRO
131
132/*
133 * Magic Key Options
134 *
135 * Magic keys are hotkey commands that allow control over firmware functions of
136 * the keyboard. They are best used in combination with the HID Listen program,
137 * found here: https://www.pjrc.com/teensy/hid_listen.html
138 *
139 * The options below allow the magic key functionality to be changed. This is
140 * useful if your keyboard/keypad is missing keys and you want magic key support.
141 *
142 */
143
144/* key combination for magic key command */
145/* defined by default; to change, uncomment and set to the combination you want */
146// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
147
148/* control how magic key switches layers */
149//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
150//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
151//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
152
153/* override magic key keymap */
154//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
155//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
156//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
157//#define MAGIC_KEY_HELP H
158//#define MAGIC_KEY_HELP_ALT SLASH
159//#define MAGIC_KEY_DEBUG D
160//#define MAGIC_KEY_DEBUG_MATRIX X
161//#define MAGIC_KEY_DEBUG_KBD K
162//#define MAGIC_KEY_DEBUG_MOUSE M
163//#define MAGIC_KEY_VERSION V
164//#define MAGIC_KEY_STATUS S
165//#define MAGIC_KEY_CONSOLE C
166//#define MAGIC_KEY_LAYER0 0
167//#define MAGIC_KEY_LAYER0_ALT GRAVE
168//#define MAGIC_KEY_LAYER1 1
169//#define MAGIC_KEY_LAYER2 2
170//#define MAGIC_KEY_LAYER3 3
171//#define MAGIC_KEY_LAYER4 4
172//#define MAGIC_KEY_LAYER5 5
173//#define MAGIC_KEY_LAYER6 6
174//#define MAGIC_KEY_LAYER7 7
175//#define MAGIC_KEY_LAYER8 8
176//#define MAGIC_KEY_LAYER9 9
177//#define MAGIC_KEY_BOOTLOADER B
178//#define MAGIC_KEY_BOOTLOADER_ALT ESC
179//#define MAGIC_KEY_LOCK CAPS
180//#define MAGIC_KEY_EEPROM E
181//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
182//#define MAGIC_KEY_NKRO N
183//#define MAGIC_KEY_SLEEP_LED Z
184
185/*
186 * Feature disable options
187 * These options are also useful to firmware size reduction.
188 */
189
190/* disable debug print */
191//#define NO_DEBUG
192
193/* disable print */
194//#define NO_PRINT
195
196/* disable action features */
197//#define NO_ACTION_LAYER
198//#define NO_ACTION_TAPPING
199//#define NO_ACTION_ONESHOT
200//#define NO_ACTION_MACRO
201//#define NO_ACTION_FUNCTION
202
203/*
204 * MIDI options
205 */
206
207/* Prevent use of disabled MIDI features in the keymap */
208//#define MIDI_ENABLE_STRICT 1
209
210/* enable basic MIDI features:
211 - MIDI notes can be sent when in Music mode is on
212*/
213//#define MIDI_BASIC
214
215/* enable advanced MIDI features:
216 - MIDI notes can be added to the keymap
217 - Octave shift and transpose
218 - Virtual sustain, portamento, and modulation wheel
219 - etc.
220*/
221//#define MIDI_ADVANCED
222
223/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
224//#define MIDI_TONE_KEYCODE_OCTAVES 1
225
226/* Bootmagic Lite key configuration */
227#define BOOTMAGIC_LITE_ROW 2
228#define BOOTMAGIC_LITE_COLUMN 3
229
230#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/evyd13/wasdat_code/info.json b/keyboards/evyd13/wasdat_code/info.json
new file mode 100644
index 000000000..4e6ed630c
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/info.json
@@ -0,0 +1,459 @@
1{
2 "keyboard_name": "Wasdat Code",
3 "url": "https://maartenwut.com/product/wasdat-code/",
4 "maintainer": "evyd13",
5 "width": 22.5,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT_fullsize_ansi": {
9 "layout": [
10 {"label":"Esc", "x":0, "y":0},
11 {"label":"F1", "x":2, "y":0},
12 {"label":"F2", "x":3, "y":0},
13 {"label":"F3", "x":4, "y":0},
14 {"label":"F4", "x":5, "y":0},
15 {"label":"F5", "x":6.5, "y":0},
16 {"label":"F6", "x":7.5, "y":0},
17 {"label":"F7", "x":8.5, "y":0},
18 {"label":"F8", "x":9.5, "y":0},
19 {"label":"F9", "x":11, "y":0},
20 {"label":"F10", "x":12, "y":0},
21 {"label":"F11", "x":13, "y":0},
22 {"label":"F12", "x":14, "y":0},
23
24 {"label":"PrtSc", "x":15.25, "y":0},
25 {"label":"Scroll Lock", "x":16.25, "y":0},
26 {"label":"Pause", "x":17.25, "y":0},
27
28 {"label":"~", "x":0, "y":1.5},
29 {"label":"1", "x":1, "y":1.5},
30 {"label":"2", "x":2, "y":1.5},
31 {"label":"3", "x":3, "y":1.5},
32 {"label":"4", "x":4, "y":1.5},
33 {"label":"5", "x":5, "y":1.5},
34 {"label":"6", "x":6, "y":1.5},
35 {"label":"7", "x":7, "y":1.5},
36 {"label":"8", "x":8, "y":1.5},
37 {"label":"9", "x":9, "y":1.5},
38 {"label":"0", "x":10, "y":1.5},
39 {"label":"_", "x":11, "y":1.5},
40 {"label":"+", "x":12, "y":1.5},
41 {"label":"Backspace", "x":13, "y":1.5, "w":2},
42
43 {"label":"Insert", "x":15.25, "y":1.5},
44 {"label":"Home", "x":16.25, "y":1.5},
45 {"label":"PgUp", "x":17.25, "y":1.5},
46
47 {"label":"Num Lock", "x":18.5, "y":1.5},
48 {"label":"/", "x":19.5, "y":1.5},
49 {"label":"*", "x":20.5, "y":1.5},
50 {"label":"-", "x":21.5, "y":1.5},
51
52 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
53 {"label":"Q", "x":1.5, "y":2.5},
54 {"label":"W", "x":2.5, "y":2.5},
55 {"label":"E", "x":3.5, "y":2.5},
56 {"label":"R", "x":4.5, "y":2.5},
57 {"label":"T", "x":5.5, "y":2.5},
58 {"label":"Y", "x":6.5, "y":2.5},
59 {"label":"U", "x":7.5, "y":2.5},
60 {"label":"I", "x":8.5, "y":2.5},
61 {"label":"O", "x":9.5, "y":2.5},
62 {"label":"P", "x":10.5, "y":2.5},
63 {"label":"{", "x":11.5, "y":2.5},
64 {"label":"}", "x":12.5, "y":2.5},
65 {"label":"|", "x":13.5, "y":2.5, "w":1.5},
66
67 {"label":"Delete", "x":15.25, "y":2.5},
68 {"label":"End", "x":16.25, "y":2.5},
69 {"label":"PgDn", "x":17.25, "y":2.5},
70
71 {"label":"7", "x":18.5, "y":2.5},
72 {"label":"8", "x":19.5, "y":2.5},
73 {"label":"9", "x":20.5, "y":2.5},
74 {"label":"+", "x":21.5, "y":2.5, "h":2},
75
76 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
77 {"label":"A", "x":1.75, "y":3.5},
78 {"label":"S", "x":2.75, "y":3.5},
79 {"label":"D", "x":3.75, "y":3.5},
80 {"label":"F", "x":4.75, "y":3.5},
81 {"label":"G", "x":5.75, "y":3.5},
82 {"label":"H", "x":6.75, "y":3.5},
83 {"label":"J", "x":7.75, "y":3.5},
84 {"label":"K", "x":8.75, "y":3.5},
85 {"label":"L", "x":9.75, "y":3.5},
86 {"label":":", "x":10.75, "y":3.5},
87 {"label":"\"", "x":11.75, "y":3.5},
88 {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
89
90 {"label":"4", "x":18.5, "y":3.5},
91 {"label":"5", "x":19.5, "y":3.5},
92 {"label":"6", "x":20.5, "y":3.5},
93
94 {"label":"Shift", "x":0, "y":4.5, "w":2.25},
95 {"label":"Z", "x":2.25, "y":4.5},
96 {"label":"X", "x":3.25, "y":4.5},
97 {"label":"C", "x":4.25, "y":4.5},
98 {"label":"V", "x":5.25, "y":4.5},
99 {"label":"B", "x":6.25, "y":4.5},
100 {"label":"N", "x":7.25, "y":4.5},
101 {"label":"M", "x":8.25, "y":4.5},
102 {"label":"<", "x":9.25, "y":4.5},
103 {"label":">", "x":10.25, "y":4.5},
104 {"label":"?", "x":11.25, "y":4.5},
105 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
106
107 {"label":"\u2191", "x":16.25, "y":4.5},
108
109 {"label":"1", "x":18.5, "y":4.5},
110 {"label":"2", "x":19.5, "y":4.5},
111 {"label":"3", "x":20.5, "y":4.5},
112 {"label":"Enter", "x":21.5, "y":4.5, "h":2},
113
114 {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
115 {"label":"Win", "x":1.25, "y":5.5, "w":1.25},
116 {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
117 {"x":3.75, "y":5.5, "w":6.25},
118 {"label":"Alt", "x":10, "y":5.5, "w":1.25},
119 {"label":"Win", "x":11.25, "y":5.5, "w":1.25},
120 {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
121 {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
122
123 {"label":"\u2190", "x":15.25, "y":5.5},
124 {"label":"\u2193", "x":16.25, "y":5.5},
125 {"label":"\u2192", "x":17.25, "y":5.5},
126
127 {"label":"0", "x":18.5, "y":5.5, "w":2},
128 {"label":".", "x":20.5, "y":5.5}
129 ]
130 },
131 "LAYOUT_fullsize_iso": {
132 "layout": [
133 {"label":"Esc", "x":0, "y":0},
134 {"label":"F1", "x":2, "y":0},
135 {"label":"F2", "x":3, "y":0},
136 {"label":"F3", "x":4, "y":0},
137 {"label":"F4", "x":5, "y":0},
138 {"label":"F5", "x":6.5, "y":0},
139 {"label":"F6", "x":7.5, "y":0},
140 {"label":"F7", "x":8.5, "y":0},
141 {"label":"F8", "x":9.5, "y":0},
142 {"label":"F9", "x":11, "y":0},
143 {"label":"F10", "x":12, "y":0},
144 {"label":"F11", "x":13, "y":0},
145 {"label":"F12", "x":14, "y":0},
146
147 {"label":"PrtSc", "x":15.25, "y":0},
148 {"label":"Scroll Lock", "x":16.25, "y":0},
149 {"label":"Pause", "x":17.25, "y":0},
150
151 {"label":"\u00ac", "x":0, "y":1.5},
152 {"label":"!", "x":1, "y":1.5},
153 {"label":"\"", "x":2, "y":1.5},
154 {"label":"\u00a3", "x":3, "y":1.5},
155 {"label":"$", "x":4, "y":1.5},
156 {"label":"%", "x":5, "y":1.5},
157 {"label":"^", "x":6, "y":1.5},
158 {"label":"&", "x":7, "y":1.5},
159 {"label":"*", "x":8, "y":1.5},
160 {"label":"(", "x":9, "y":1.5},
161 {"label":")", "x":10, "y":1.5},
162 {"label":"_", "x":11, "y":1.5},
163 {"label":"+", "x":12, "y":1.5},
164 {"label":"Backspace", "x":13, "y":1.5, "w":2},
165
166 {"label":"Insert", "x":15.25, "y":1.5},
167 {"label":"Home", "x":16.25, "y":1.5},
168 {"label":"PgUp", "x":17.25, "y":1.5},
169
170 {"label":"Num Lock", "x":18.5, "y":1.5},
171 {"label":"/", "x":19.5, "y":1.5},
172 {"label":"*", "x":20.5, "y":1.5},
173 {"label":"-", "x":21.5, "y":1.5},
174
175 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
176 {"label":"Q", "x":1.5, "y":2.5},
177 {"label":"W", "x":2.5, "y":2.5},
178 {"label":"E", "x":3.5, "y":2.5},
179 {"label":"R", "x":4.5, "y":2.5},
180 {"label":"T", "x":5.5, "y":2.5},
181 {"label":"Y", "x":6.5, "y":2.5},
182 {"label":"U", "x":7.5, "y":2.5},
183 {"label":"I", "x":8.5, "y":2.5},
184 {"label":"O", "x":9.5, "y":2.5},
185 {"label":"P", "x":10.5, "y":2.5},
186 {"label":"{", "x":11.5, "y":2.5},
187 {"label":"}", "x":12.5, "y":2.5},
188
189 {"label":"Delete", "x":15.25, "y":2.5},
190 {"label":"End", "x":16.25, "y":2.5},
191 {"label":"PgDn", "x":17.25, "y":2.5},
192
193 {"label":"7", "x":18.5, "y":2.5},
194 {"label":"8", "x":19.5, "y":2.5},
195 {"label":"9", "x":20.5, "y":2.5},
196 {"label":"+", "x":21.5, "y":2.5, "h":2},
197
198 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
199 {"label":"A", "x":1.75, "y":3.5},
200 {"label":"S", "x":2.75, "y":3.5},
201 {"label":"D", "x":3.75, "y":3.5},
202 {"label":"F", "x":4.75, "y":3.5},
203 {"label":"G", "x":5.75, "y":3.5},
204 {"label":"H", "x":6.75, "y":3.5},
205 {"label":"J", "x":7.75, "y":3.5},
206 {"label":"K", "x":8.75, "y":3.5},
207 {"label":"L", "x":9.75, "y":3.5},
208 {"label":":", "x":10.75, "y":3.5},
209 {"label":"@", "x":11.75, "y":3.5},
210 {"label":"~", "x":12.75, "y":3.5},
211 {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
212
213 {"label":"4", "x":18.5, "y":3.5},
214 {"label":"5", "x":19.5, "y":3.5},
215 {"label":"6", "x":20.5, "y":3.5},
216
217 {"label":"Shift", "x":0, "y":4.5, "w":1.25},
218 {"label":"|", "x":1.25, "y":4.5},
219 {"label":"Z", "x":2.25, "y":4.5},
220 {"label":"X", "x":3.25, "y":4.5},
221 {"label":"C", "x":4.25, "y":4.5},
222 {"label":"V", "x":5.25, "y":4.5},
223 {"label":"B", "x":6.25, "y":4.5},
224 {"label":"N", "x":7.25, "y":4.5},
225 {"label":"M", "x":8.25, "y":4.5},
226 {"label":"<", "x":9.25, "y":4.5},
227 {"label":">", "x":10.25, "y":4.5},
228 {"label":"?", "x":11.25, "y":4.5},
229 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
230
231 {"label":"\u2191", "x":16.25, "y":4.5},
232
233 {"label":"1", "x":18.5, "y":4.5},
234 {"label":"2", "x":19.5, "y":4.5},
235 {"label":"3", "x":20.5, "y":4.5},
236 {"label":"Enter", "x":21.5, "y":4.5, "h":2},
237
238 {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
239 {"label":"Win", "x":1.25, "y":5.5, "w":1.25},
240 {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
241 {"x":3.75, "y":5.5, "w":6.25},
242 {"label":"AltGr", "x":10, "y":5.5, "w":1.25},
243 {"label":"Win", "x":11.25, "y":5.5, "w":1.25},
244 {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
245 {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
246
247 {"label":"\u2190", "x":15.25, "y":5.5},
248 {"label":"\u2193", "x":16.25, "y":5.5},
249 {"label":"\u2192", "x":17.25, "y":5.5},
250
251 {"label":"0", "x":18.5, "y":5.5, "w":2},
252 {"label":".", "x":20.5, "y":5.5}
253 ]
254 },
255 "LAYOUT_tkl_ansi": {
256 "layout": [
257 {"label":"Esc", "x":0, "y":0},
258 {"label":"F1", "x":2, "y":0},
259 {"label":"F2", "x":3, "y":0},
260 {"label":"F3", "x":4, "y":0},
261 {"label":"F4", "x":5, "y":0},
262 {"label":"F5", "x":6.5, "y":0},
263 {"label":"F6", "x":7.5, "y":0},
264 {"label":"F7", "x":8.5, "y":0},
265 {"label":"F8", "x":9.5, "y":0},
266 {"label":"F9", "x":11, "y":0},
267 {"label":"F10", "x":12, "y":0},
268 {"label":"F11", "x":13, "y":0},
269 {"label":"F12", "x":14, "y":0},
270
271 {"label":"PrtSc", "x":15.25, "y":0},
272 {"label":"Scroll Lock", "x":16.25, "y":0},
273 {"label":"Pause", "x":17.25, "y":0},
274
275 {"label":"~", "x":0, "y":1.5},
276 {"label":"1", "x":1, "y":1.5},
277 {"label":"2", "x":2, "y":1.5},
278 {"label":"3", "x":3, "y":1.5},
279 {"label":"4", "x":4, "y":1.5},
280 {"label":"5", "x":5, "y":1.5},
281 {"label":"6", "x":6, "y":1.5},
282 {"label":"7", "x":7, "y":1.5},
283 {"label":"8", "x":8, "y":1.5},
284 {"label":"9", "x":9, "y":1.5},
285 {"label":"0", "x":10, "y":1.5},
286 {"label":"_", "x":11, "y":1.5},
287 {"label":"+", "x":12, "y":1.5},
288 {"label":"Backspace", "x":13, "y":1.5, "w":2},
289
290 {"label":"Insert", "x":15.25, "y":1.5},
291 {"label":"Home", "x":16.25, "y":1.5},
292 {"label":"Page Up", "x":17.25, "y":1.5},
293
294 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
295 {"label":"Q", "x":1.5, "y":2.5},
296 {"label":"W", "x":2.5, "y":2.5},
297 {"label":"E", "x":3.5, "y":2.5},
298 {"label":"R", "x":4.5, "y":2.5},
299 {"label":"T", "x":5.5, "y":2.5},
300 {"label":"Y", "x":6.5, "y":2.5},
301 {"label":"U", "x":7.5, "y":2.5},
302 {"label":"I", "x":8.5, "y":2.5},
303 {"label":"O", "x":9.5, "y":2.5},
304 {"label":"P", "x":10.5, "y":2.5},
305 {"label":"{", "x":11.5, "y":2.5},
306 {"label":"}", "x":12.5, "y":2.5},
307 {"label":"|", "x":13.5, "y":2.5, "w":1.5},
308
309 {"label":"Delete", "x":15.25, "y":2.5},
310 {"label":"End", "x":16.25, "y":2.5},
311 {"label":"PgDn", "x":17.25, "y":2.5},
312
313 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
314 {"label":"A", "x":1.75, "y":3.5},
315 {"label":"S", "x":2.75, "y":3.5},
316 {"label":"D", "x":3.75, "y":3.5},
317 {"label":"F", "x":4.75, "y":3.5},
318 {"label":"G", "x":5.75, "y":3.5},
319 {"label":"H", "x":6.75, "y":3.5},
320 {"label":"J", "x":7.75, "y":3.5},
321 {"label":"K", "x":8.75, "y":3.5},
322 {"label":"L", "x":9.75, "y":3.5},
323 {"label":":", "x":10.75, "y":3.5},
324 {"label":"\"", "x":11.75, "y":3.5},
325 {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
326
327 {"label":"Shift", "x":0, "y":4.5, "w":2.25},
328 {"label":"Z", "x":2.25, "y":4.5},
329 {"label":"X", "x":3.25, "y":4.5},
330 {"label":"C", "x":4.25, "y":4.5},
331 {"label":"V", "x":5.25, "y":4.5},
332 {"label":"B", "x":6.25, "y":4.5},
333 {"label":"N", "x":7.25, "y":4.5},
334 {"label":"M", "x":8.25, "y":4.5},
335 {"label":"<", "x":9.25, "y":4.5},
336 {"label":">", "x":10.25, "y":4.5},
337 {"label":"?", "x":11.25, "y":4.5},
338 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
339
340 {"label":"\u2191", "x":16.25, "y":4.5},
341
342 {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
343 {"label":"Win", "x":1.25, "y":5.5, "w":1.25},
344 {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
345 {"x":3.75, "y":5.5, "w":6.25},
346 {"label":"Alt", "x":10, "y":5.5, "w":1.25},
347 {"label":"Win", "x":11.25, "y":5.5, "w":1.25},
348 {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
349 {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
350
351 {"label":"\u2190", "x":15.25, "y":5.5},
352 {"label":"\u2193", "x":16.25, "y":5.5},
353 {"label":"\u2192", "x":17.25, "y":5.5}
354 ]
355 },
356 "LAYOUT_tkl_iso": {
357 "layout": [
358 {"label":"Esc", "x":0, "y":0},
359 {"label":"F1", "x":2, "y":0},
360 {"label":"F2", "x":3, "y":0},
361 {"label":"F3", "x":4, "y":0},
362 {"label":"F4", "x":5, "y":0},
363 {"label":"F5", "x":6.5, "y":0},
364 {"label":"F6", "x":7.5, "y":0},
365 {"label":"F7", "x":8.5, "y":0},
366 {"label":"F8", "x":9.5, "y":0},
367 {"label":"F9", "x":11, "y":0},
368 {"label":"F10", "x":12, "y":0},
369 {"label":"F11", "x":13, "y":0},
370 {"label":"F12", "x":14, "y":0},
371
372 {"label":"PrtSc", "x":15.25, "y":0},
373 {"label":"Scroll Lock", "x":16.25, "y":0},
374 {"label":"Pause", "x":17.25, "y":0},
375
376 {"label":"\u00ac", "x":0, "y":1.5},
377 {"label":"!", "x":1, "y":1.5},
378 {"label":"\"", "x":2, "y":1.5},
379 {"label":"\u00a3", "x":3, "y":1.5},
380 {"label":"$", "x":4, "y":1.5},
381 {"label":"%", "x":5, "y":1.5},
382 {"label":"^", "x":6, "y":1.5},
383 {"label":"&", "x":7, "y":1.5},
384 {"label":"*", "x":8, "y":1.5},
385 {"label":"(", "x":9, "y":1.5},
386 {"label":")", "x":10, "y":1.5},
387 {"label":"_", "x":11, "y":1.5},
388 {"label":"+", "x":12, "y":1.5},
389 {"label":"Backspace", "x":13, "y":1.5, "w":2},
390
391 {"label":"Insert", "x":15.25, "y":1.5},
392 {"label":"Home", "x":16.25, "y":1.5},
393 {"label":"PgUp", "x":17.25, "y":1.5},
394
395 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
396 {"label":"Q", "x":1.5, "y":2.5},
397 {"label":"W", "x":2.5, "y":2.5},
398 {"label":"E", "x":3.5, "y":2.5},
399 {"label":"R", "x":4.5, "y":2.5},
400 {"label":"T", "x":5.5, "y":2.5},
401 {"label":"Y", "x":6.5, "y":2.5},
402 {"label":"U", "x":7.5, "y":2.5},
403 {"label":"I", "x":8.5, "y":2.5},
404 {"label":"O", "x":9.5, "y":2.5},
405 {"label":"P", "x":10.5, "y":2.5},
406 {"label":"{", "x":11.5, "y":2.5},
407 {"label":"}", "x":12.5, "y":2.5},
408
409 {"label":"Delete", "x":15.25, "y":2.5},
410 {"label":"End", "x":16.25, "y":2.5},
411 {"label":"PgDn", "x":17.25, "y":2.5},
412
413 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
414 {"label":"A", "x":1.75, "y":3.5},
415 {"label":"S", "x":2.75, "y":3.5},
416 {"label":"D", "x":3.75, "y":3.5},
417 {"label":"F", "x":4.75, "y":3.5},
418 {"label":"G", "x":5.75, "y":3.5},
419 {"label":"H", "x":6.75, "y":3.5},
420 {"label":"J", "x":7.75, "y":3.5},
421 {"label":"K", "x":8.75, "y":3.5},
422 {"label":"L", "x":9.75, "y":3.5},
423 {"label":":", "x":10.75, "y":3.5},
424 {"label":"@", "x":11.75, "y":3.5},
425 {"label":"~", "x":12.75, "y":3.5},
426 {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
427
428 {"label":"Shift", "x":0, "y":4.5, "w":1.25},
429 {"label":"|", "x":1.25, "y":4.5},
430 {"label":"Z", "x":2.25, "y":4.5},
431 {"label":"X", "x":3.25, "y":4.5},
432 {"label":"C", "x":4.25, "y":4.5},
433 {"label":"V", "x":5.25, "y":4.5},
434 {"label":"B", "x":6.25, "y":4.5},
435 {"label":"N", "x":7.25, "y":4.5},
436 {"label":"M", "x":8.25, "y":4.5},
437 {"label":"<", "x":9.25, "y":4.5},
438 {"label":">", "x":10.25, "y":4.5},
439 {"label":"?", "x":11.25, "y":4.5},
440 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
441
442 {"label":"\u2191", "x":16.25, "y":4.5},
443
444 {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
445 {"label":"Win", "x":1.25, "y":5.5, "w":1.25},
446 {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
447 {"x":3.75, "y":5.5, "w":6.25},
448 {"label":"AltGr", "x":10, "y":5.5, "w":1.25},
449 {"label":"Win", "x":11.25, "y":5.5, "w":1.25},
450 {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
451 {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
452
453 {"label":"\u2190", "x":15.25, "y":5.5},
454 {"label":"\u2193", "x":16.25, "y":5.5},
455 {"label":"\u2192", "x":17.25, "y":5.5}
456 ]
457 }
458 }
459}
diff --git a/keyboards/evyd13/wasdat_code/keymaps/default/keymap.c b/keyboards/evyd13/wasdat_code/keymaps/default/keymap.c
new file mode 100644
index 000000000..c73a2ecec
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/keymaps/default/keymap.c
@@ -0,0 +1,53 @@
1/* Copyright 2019 Evy Dekkers
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
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /*
20 * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
21 * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│
22 * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
23 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
24 * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
25 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
26 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │
27 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
28 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │  Enter │               │ 4 │ 5 │ 6 │   │
29 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤     ┌───┐     ├───┼───┼───┼───┤
30 * │ Shift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │
31 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
32 * │Ctrl│GUI │Alt │                        │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │
33 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
34 */
35 LAYOUT_fullsize_ansi(
36 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
37
38 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
40 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
41 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
42 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
43 ),
44 LAYOUT_fullsize_ansi(
45 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, BL_TOGG, _______, _______, KC_MUTE,
46
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
52 )
53};
diff --git a/keyboards/evyd13/wasdat_code/keymaps/default/readme.md b/keyboards/evyd13/wasdat_code/keymaps/default/readme.md
new file mode 100644
index 000000000..66cf59389
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default ANSI keymap for the Wasdat
diff --git a/keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c b/keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c
new file mode 100644
index 000000000..fdc61cea4
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c
@@ -0,0 +1,44 @@
1/* Copyright 2019 Evy Dekkers
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
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /*
20 * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
21 * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│
22 * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
23 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
24 * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
25 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
26 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │     │ │Del│End│PgD│ │ 7 │ 8 │ 9 │   │
27 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │
28 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │    │               │ 4 │ 5 │ 6 │   │
29 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐     ├───┼───┼───┼───┤
30 * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │     │ 1 │ 2 │ 3 │   │
31 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
32 * │Ctrl│GUI │Alt │                        │AlGr│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │   0   │ . │   │
33 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
34 */
35 LAYOUT_fullsize_iso(
36 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
37
38 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
40 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
41 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
42 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
43 )
44};
diff --git a/keyboards/evyd13/wasdat_code/keymaps/default_iso/readme.md b/keyboards/evyd13/wasdat_code/keymaps/default_iso/readme.md
new file mode 100644
index 000000000..e36d76420
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/keymaps/default_iso/readme.md
@@ -0,0 +1 @@
# The default ISO keymap for the Wasdat
diff --git a/keyboards/evyd13/wasdat_code/keymaps/via/keymap.c b/keyboards/evyd13/wasdat_code/keymaps/via/keymap.c
new file mode 100644
index 000000000..35445812b
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/keymaps/via/keymap.c
@@ -0,0 +1,46 @@
1/* Copyright 2019 Evy Dekkers
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
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_all(
20 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
21
22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_P4, KC_P5, KC_P6,
25 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
27 ),
28 [1] = LAYOUT_all(
29 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, BL_TOGG, _______, _______, KC_MUTE,
30
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
36 ),
37 [2] = LAYOUT_all(
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
45 )
46};
diff --git a/keyboards/evyd13/wasdat_code/keymaps/via/rules.mk b/keyboards/evyd13/wasdat_code/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/evyd13/wasdat_code/matrix.c b/keyboards/evyd13/wasdat_code/matrix.c
new file mode 100644
index 000000000..7844db7ab
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/matrix.c
@@ -0,0 +1,369 @@
1/*
2Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar
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#include <stdint.h>
18#include <stdbool.h>
19#include "wait.h"
20#include "util.h"
21#include "matrix.h"
22#include "debounce.h"
23#include "quantum.h"
24
25#ifdef DIRECT_PINS
26static pin_t direct_pins[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS;
27#elif (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW)
28static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
29//static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
30#endif
31
32// matrix code
33
34#ifdef DIRECT_PINS
35
36static void init_pins(void) {
37 for (int row = 0; row < MATRIX_ROWS; row++) {
38 for (int col = 0; col < MATRIX_COLS; col++) {
39 pin_t pin = direct_pins[row][col];
40 if (pin != NO_PIN) {
41 setPinInputHigh(pin);
42 }
43 }
44 }
45}
46
47static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
48 matrix_row_t last_row_value = current_matrix[current_row];
49 current_matrix[current_row] = 0;
50
51 for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
52 pin_t pin = direct_pins[current_row][col_index];
53 if (pin != NO_PIN) {
54 current_matrix[current_row] |= readPin(pin) ? 0 : (MATRIX_ROW_SHIFTER << col_index);
55 }
56 }
57
58 return (last_row_value != current_matrix[current_row]);
59}
60
61#elif (DIODE_DIRECTION == COL2ROW)
62
63static void select_row(uint8_t row) {
64 setPinOutput(row_pins[row]);
65 writePinLow(row_pins[row]);
66}
67
68static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); }
69
70static void unselect_rows(void) {
71 for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
72 setPinInputHigh(row_pins[x]);
73 }
74}
75
76static void init_pins(void) {
77 unselect_rows();
78 for (uint8_t x = 0; x < MATRIX_COLS; x++) {
79 setPinInputHigh(col_pins[x]);
80 }
81}
82
83static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
84 // Store last value of row prior to reading
85 matrix_row_t last_row_value = current_matrix[current_row];
86
87 // Clear data in matrix row
88 current_matrix[current_row] = 0;
89
90 // Select row and wait for row selecton to stabilize
91 select_row(current_row);
92 wait_us(30);
93
94 // For each col...
95 for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
96
97 // Select the col pin to read (active low)
98 uint8_t pin_state = readPin(col_pins[col_index]);
99
100 // Populate the matrix row with the state of the col pin
101 current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
102 }
103
104 // Unselect row
105 unselect_row(current_row);
106
107 return (last_row_value != current_matrix[current_row]);
108}
109
110#elif (DIODE_DIRECTION == ROW2COL)
111
112/* Cols 0 - 15
113 * col 0: F7
114 * col 1: F5
115 * col 2: F6
116 * col 3: F1
117 * col 4: F4
118 * col 5: F0
119 * These columns use a 74HC237D 3 to 8 bit demultiplexer. D4 is the enable pin, must be set high to use it.
120 * A0 A1 A2
121 * col / pin: PD2 PD1 PD0
122 * 6: 1 1 1
123 * col 7: D3
124 * col 8: B7
125 * 9: 0 1 1
126 * 10: 1 0 1
127 * 11: 0 0 1
128 * 12: 1 1 0
129 * 13: 0 1 0
130 * 14: 1 0 0
131 * 15: 0 0 0
132 */
133static void select_col(uint8_t col) {
134 switch (col) {
135 case 0:
136 writePinLow(F7);
137 break;
138 case 1:
139 writePinLow(F5);
140 break;
141 case 2:
142 writePinLow(F6);
143 break;
144 case 3:
145 writePinLow(F1);
146 break;
147 case 4:
148 writePinLow(F4);
149 break;
150 case 5:
151 writePinLow(F0);
152 break;
153 case 6:
154 writePinHigh(D4);
155 writePinHigh(D2);
156 writePinHigh(D1);
157 writePinHigh(D0);
158 break;
159 case 7:
160 writePinLow(D5);
161 break;
162 case 8:
163 writePinLow(D3);
164 break;
165 case 9:
166 writePinHigh(D4);
167 writePinHigh(D1);
168 writePinHigh(D0);
169 break;
170 case 10:
171 writePinHigh(D4);
172 writePinHigh(D2);
173 writePinHigh(D0);
174 break;
175 case 11:
176 writePinHigh(D4);
177 writePinHigh(D0);
178 break;
179 case 12:
180 writePinHigh(D4);
181 writePinHigh(D2);
182 writePinHigh(D1);
183 break;
184 case 13:
185 writePinHigh(D4);
186 writePinHigh(D1);
187 break;
188 case 14:
189 writePinHigh(D4);
190 writePinHigh(D2);
191 break;
192 case 15:
193 writePinHigh(D4);
194 break;
195 }
196}
197
198static void unselect_col(uint8_t col) {
199 switch (col) {
200 case 0:
201 writePinHigh(F7);
202 break;
203 case 1:
204 writePinHigh(F5);
205 break;
206 case 2:
207 writePinHigh(F6);
208 break;
209 case 3:
210 writePinHigh(F1);
211 break;
212 case 4:
213 writePinHigh(F4);
214 break;
215 case 5:
216 writePinHigh(F0);
217 break;
218 case 6:
219 writePinLow(D4);
220 writePinLow(D2);
221 writePinLow(D1);
222 writePinLow(D0);
223 break;
224 case 7:
225 writePinHigh(D5);
226 break;
227 case 8:
228 writePinHigh(D3);
229 break;
230 case 9:
231 writePinLow(D4);
232 writePinLow(D2);
233 writePinLow(D1);
234 writePinLow(D0);
235 break;
236 case 10:
237 writePinLow(D4);
238 writePinLow(D2);
239 writePinLow(D1);
240 writePinLow(D0);
241 break;
242 case 11:
243 writePinLow(D4);
244 writePinLow(D2);
245 writePinLow(D1);
246 writePinLow(D0);
247 break;
248 case 12:
249 writePinLow(D4);
250 writePinLow(D2);
251 writePinLow(D1);
252 writePinLow(D0);
253 break;
254 case 13:
255 writePinLow(D4);
256 writePinLow(D2);
257 writePinLow(D1);
258 writePinLow(D0);
259 break;
260 case 14:
261 writePinLow(D4);
262 writePinLow(D2);
263 writePinLow(D1);
264 writePinLow(D0);
265 break;
266 case 15:
267 writePinLow(D4);
268 writePinLow(D2);
269 writePinLow(D1);
270 writePinLow(D0);
271 break;
272 }
273}
274
275static void unselect_cols(void) {
276 //Native
277 writePinHigh(F7);
278 writePinHigh(F5);
279 writePinHigh(F6);
280 writePinHigh(F1);
281 writePinHigh(F4);
282 writePinHigh(F0);
283 writePinHigh(D3);
284 writePinHigh(D5);
285
286 //Demultiplexer
287 writePinLow(D4);
288 writePinLow(D2);
289 writePinLow(D1);
290 writePinLow(D0);
291}
292
293static void init_pins(void) {
294 unselect_cols();
295 for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
296 setPinInputHigh(row_pins[x]);
297 }
298 setPinOutput(D0);
299 setPinOutput(D1);
300 setPinOutput(D2);
301 setPinOutput(D3);
302 setPinOutput(F7);
303 setPinOutput(F5);
304 setPinOutput(F6);
305 setPinOutput(F1);
306 setPinOutput(F4);
307 setPinOutput(F0);
308 setPinOutput(D3);
309 setPinOutput(D5);
310 setPinOutput(D4);
311}
312
313static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
314 bool matrix_changed = false;
315
316 // Select col and wait for col selecton to stabilize
317 select_col(current_col);
318 wait_us(30);
319
320 // For each row...
321 for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
322 // Store last value of row prior to reading
323 matrix_row_t last_row_value = current_matrix[row_index];
324
325 // Check row pin state
326 if (readPin(row_pins[row_index]) == 0) {
327 // Pin LO, set col bit
328 current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col);
329 } else {
330 // Pin HI, clear col bit
331 current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col);
332 }
333
334 // Determine if the matrix changed state
335 if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) {
336 matrix_changed = true;
337 }
338 }
339
340 // Unselect col
341 unselect_col(current_col);
342
343 return matrix_changed;
344}
345
346#endif
347
348void matrix_init_custom(void) {
349 // initialize key pins
350 init_pins();
351}
352
353bool matrix_scan_custom(matrix_row_t current_matrix[]) {
354 bool changed = false;
355
356#if defined(DIRECT_PINS) || (DIODE_DIRECTION == COL2ROW)
357 // Set row, read cols
358 for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
359 changed |= read_cols_on_row(current_matrix, current_row);
360 }
361#elif (DIODE_DIRECTION == ROW2COL)
362 // Set col, read rows
363 for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
364 changed |= read_rows_on_col(current_matrix, current_col);
365 }
366#endif
367
368 return changed;
369}
diff --git a/keyboards/evyd13/wasdat_code/readme.md b/keyboards/evyd13/wasdat_code/readme.md
new file mode 100644
index 000000000..0467069fc
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/readme.md
@@ -0,0 +1,19 @@
1# Wasdat Code
2
3A drop-in replacement controller for the WASD CODE TKL and fullsize models.
4
5* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
6* Hardware Supported: WASD CODE TKL/Fullsize ANSI & ISO with Wasdat Code controller
7* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/wasdat-code/)
8
9## Flashing
10
11The WASD has no reset button, so to put the controller in flashing mode, simply unplug the USB cable and plug it back in while holding the ESC key on the keyboard.
12
13---
14
15Make example for this keyboard (after setting up your build environment):
16
17 make evyd13/wasdat_code:default
18
19See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/evyd13/wasdat_code/rules.mk b/keyboards/evyd13/wasdat_code/rules.mk
new file mode 100644
index 000000000..1ff76bab2
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/rules.mk
@@ -0,0 +1,36 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = qmk-dfu
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = no # Console for debug
21COMMAND_ENABLE = no # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = yes # USB Nkey Rollover
26BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28MIDI_ENABLE = no # MIDI support
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32
33CUSTOM_MATRIX = lite
34SRC += matrix.c
35
36LAYOUTS = fullsize_ansi fullsize_iso tkl_ansi tkl_iso
diff --git a/keyboards/evyd13/wasdat_code/wasdat_code.c b/keyboards/evyd13/wasdat_code/wasdat_code.c
new file mode 100644
index 000000000..33551c2d0
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/wasdat_code.c
@@ -0,0 +1,47 @@
1/* Copyright 2019 Evy Dekkers
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 "wasdat_code.h"
17
18// Optional override functions below.
19// You can leave any or all of these undefined.
20// These are only required if you want to perform custom actions.
21
22void matrix_init_kb(void) {
23 // put your keyboard start-up code here
24 // runs once when the firmware starts up
25
26 matrix_init_user();
27 led_init_ports();
28}
29
30void led_init_ports(void) {
31 setPinOutput(B1);
32 setPinOutput(B2);
33 setPinOutput(B3);
34 writePinHigh(B1);
35 writePinHigh(B2);
36 writePinHigh(B3);
37}
38
39bool led_update_kb(led_t led_state) {
40 if(led_update_user(led_state)) {
41 writePin(B1, !led_state.caps_lock);
42 writePin(B2, !led_state.scroll_lock);
43 writePin(B3, !led_state.num_lock);
44 }
45
46 return true;
47}
diff --git a/keyboards/evyd13/wasdat_code/wasdat_code.h b/keyboards/evyd13/wasdat_code/wasdat_code.h
new file mode 100644
index 000000000..b586f4aad
--- /dev/null
+++ b/keyboards/evyd13/wasdat_code/wasdat_code.h
@@ -0,0 +1,107 @@
1/* Copyright 2019 Evy Dekkers
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#pragma once
17
18#include "quantum.h"
19
20#define XXX KC_NO
21
22/* This is a shortcut to help you visually see your layout.
23 *
24 * The first section contains all of the arguments representing the physical
25 * layout of the board and position of the keys.
26 *
27 * The second converts the arguments into a two-dimensional array which
28 * represents the switch matrix.
29 */
30
31#define LAYOUT_all LAYOUT_fullsize_iso
32
33#define LAYOUT_fullsize_ansi( \
34 k05, k64, k62, k22, k02, k31, k0c, k2f, k6f, k6b, k3b, k0b, k5b, k33, k43, k41, \
35 k65, k35, k34, k32, k30, k60, k6a, k3a, k3c, k3f, k3d, k6d, k6c, k2b, k67, k6e, k66, k78, k77, k76, k56, \
36 k25, k45, k44, k42, k40, k20, k2a, k4a, k4c, k4f, k4d, k2d, k2c, k1b, k68, k3e, k36, k48, k47, k46, k4e, \
37 k24, k15, k14, k12, k10, k00, k0a, k1a, k1c, k1f, k1d, k0d, k7b, k28, k27, k26, \
38 k29, k75, k74, k72, k70, k50, k5a, k7a, k7c, k7f, k5d, k19, k0e, k18, k17, k16, k1e, \
39 k61, k21, k03, k08, k53, k11, k23, k71, k5e, k58, k57, k07, k06 \
40) \
41{ \
42 { k00, XXX, k02, k03, XXX, k05, k06, k07, k08, XXX, k0a, k0b, k0c, k0d, k0e, XXX }, \
43 { k10, k11, k12, XXX, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \
44 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f }, \
45 { k30, k31, k32, k33, k34, k35, k36, XXX, XXX, XXX, k3a, k3b, k3c, k3d, k3e, k3f }, \
46 { k40, k41, k42, k43, k44, k45, k46, k47, k48, XXX, k4a, XXX, k4c, k4d, k4e, k4f }, \
47 { k50, XXX, XXX, k53, XXX, XXX, k56, k57, k58, XXX, k5a, k5b, XXX, k5d, k5e, XXX }, \
48 { k60, k61, k62, XXX, k64, k65, k66, k67, k68, XXX, k6a, k6b, k6c, k6d, k6e, k6f }, \
49 { k70, k71, k72, XXX, k74, k75, k76, k77, k78, XXX, k7a, k7b, k7c, XXX, XXX, k7f } \
50}
51
52#define LAYOUT_fullsize_iso( \
53 k05, k64, k62, k22, k02, k31, k0c, k2f, k6f, k6b, k3b, k0b, k5b, k33, k43, k41, \
54 k65, k35, k34, k32, k30, k60, k6a, k3a, k3c, k3f, k3d, k6d, k6c, k2b, k67, k6e, k66, k78, k77, k76, k56, \
55 k25, k45, k44, k42, k40, k20, k2a, k4a, k4c, k4f, k4d, k2d, k2c, k68, k3e, k36, k48, k47, k46, k4e, \
56 k24, k15, k14, k12, k10, k00, k0a, k1a, k1c, k1f, k1d, k0d, k1b, k7b, k28, k27, k26, \
57 k29, k04, k75, k74, k72, k70, k50, k5a, k7a, k7c, k7f, k5d, k19, k0e, k18, k17, k16, k1e, \
58 k61, k21, k03, k08, k53, k11, k23, k71, k5e, k58, k57, k07, k06 \
59) \
60{ \
61 { k00, XXX, k02, k03, k04, k05, k06, k07, k08, XXX, k0a, k0b, k0c, k0d, k0e, XXX }, \
62 { k10, k11, k12, XXX, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \
63 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX, k2f }, \
64 { k30, k31, k32, k33, k34, k35, k36, XXX, XXX, XXX, k3a, k3b, k3c, k3d, k3e, k3f }, \
65 { k40, k41, k42, k43, k44, k45, k46, k47, k48, XXX, k4a, XXX, k4c, k4d, k4e, k4f }, \
66 { k50, XXX, XXX, k53, XXX, XXX, k56, k57, k58, XXX, k5a, k5b, XXX, k5d, k5e, XXX }, \
67 { k60, k61, k62, XXX, k64, k65, k66, k67, k68, XXX, k6a, k6b, k6c, k6d, k6e, k6f }, \
68 { k70, k71, k72, XXX, k74, k75, k76, k77, k78, XXX, k7a, k7b, k7c, XXX, XXX, k7f } \
69}
70
71#define LAYOUT_tkl_ansi( \
72 k05, k64, k62, k22, k02, k31, k0c, k2f, k6f, k6b, k3b, k0b, k5b, k33, k43, k41, \
73 k65, k35, k34, k32, k30, k60, k6a, k3a, k3c, k3f, k3d, k6d, k6c, k2b, k67, k6e, k66, \
74 k25, k45, k44, k42, k40, k20, k2a, k4a, k4c, k4f, k4d, k2d, k2c, k1b, k68, k3e, k36, \
75 k24, k15, k14, k12, k10, k00, k0a, k1a, k1c, k1f, k1d, k0d, k7b, \
76 k29, k75, k74, k72, k70, k50, k5a, k7a, k7c, k7f, k5d, k19, k0e, \
77 k61, k21, k03, k08, k53, k11, k23, k71, k5e, k58, k57 \
78) \
79{ \
80 { k00, XXX, k02, k03, XXX, k05, XXX, XXX, k08, XXX, k0a, k0b, k0c, k0d, k0e, XXX }, \
81 { k10, k11, k12, XXX, k14, k15, XXX, XXX, XXX, k19, k1a, k1b, k1c, k1d, XXX, k1f }, \
82 { k20, k21, k22, k23, k24, k25, XXX, XXX, XXX, k29, k2a, k2b, k2c, k2d, XXX, k2f }, \
83 { k30, k31, k32, k33, k34, k35, k36, XXX, XXX, XXX, k3a, k3b, k3c, k3d, k3e, k3f }, \
84 { k40, k41, k42, k43, k44, k45, XXX, XXX, XXX, XXX, k4a, XXX, k4c, k4d, XXX, k4f }, \
85 { k50, XXX, XXX, k53, XXX, XXX, XXX, k57, k58, XXX, k5a, k5b, XXX, k5d, k5e, XXX }, \
86 { k60, k61, k62, XXX, k64, k65, k66, k67, k68, XXX, k6a, k6b, k6c, k6d, k6e, k6f }, \
87 { k70, k71, k72, XXX, k74, k75, XXX, XXX, XXX, XXX, k7a, k7b, k7c, XXX, XXX, k7f } \
88}
89
90#define LAYOUT_tkl_iso( \
91 k05, k64, k62, k22, k02, k31, k0c, k2f, k6f, k6b, k3b, k0b, k5b, k33, k43, k41, \
92 k65, k35, k34, k32, k30, k60, k6a, k3a, k3c, k3f, k3d, k6d, k6c, k2b, k67, k6e, k66, \
93 k25, k45, k44, k42, k40, k20, k2a, k4a, k4c, k4f, k4d, k2d, k2c, k68, k3e, k36, \
94 k24, k15, k14, k12, k10, k00, k0a, k1a, k1c, k1f, k1d, k0d, k1b, k7b, \
95 k29, k04, k75, k74, k72, k70, k50, k5a, k7a, k7c, k7f, k5d, k19, k0e, \
96 k61, k21, k03, k08, k53, k11, k23, k71, k5e, k58, k57 \
97) \
98{ \
99 { k00, XXX, k02, k03, k04, k05, XXX, XXX, k08, XXX, k0a, k0b, k0c, k0d, k0e, XXX }, \
100 { k10, k11, k12, XXX, k14, k15, XXX, XXX, XXX, k19, k1a, k1b, k1c, k1d, XXX, k1f }, \
101 { k20, k21, k22, k23, k24, k25, XXX, XXX, XXX, k29, k2a, k2b, k2c, k2d, XXX, k2f }, \
102 { k30, k31, k32, k33, k34, k35, k36, XXX, XXX, XXX, k3a, k3b, k3c, k3d, k3e, k3f }, \
103 { k40, k41, k42, k43, k44, k45, XXX, XXX, XXX, XXX, k4a, XXX, k4c, k4d, XXX, k4f }, \
104 { k50, XXX, XXX, k53, XXX, XXX, XXX, k57, k58, XXX, k5a, k5b, XXX, k5d, k5e, XXX }, \
105 { k60, k61, k62, XXX, k64, k65, k66, k67, k68, XXX, k6a, k6b, k6c, k6d, k6e, k6f }, \
106 { k70, k71, k72, XXX, k74, k75, XXX, XXX, XXX, XXX, k7a, k7b, k7c, XXX, XXX, k7f } \
107}