aboutsummaryrefslogtreecommitdiff
path: root/keyboards/amj40/amj40.h
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/amj40/amj40.h')
-rwxr-xr-xkeyboards/amj40/amj40.h109
1 files changed, 90 insertions, 19 deletions
diff --git a/keyboards/amj40/amj40.h b/keyboards/amj40/amj40.h
index 613f3740f..14ea38381 100755
--- a/keyboards/amj40/amj40.h
+++ b/keyboards/amj40/amj40.h
@@ -1,26 +1,52 @@
1#ifndef AMJ40_H 1/* Copyright 2017 Fabian Topfstedt
2#define AMJ40_H 2 * Copyright 2021 James Young (@noroadsleft)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
3 19
4#include "quantum.h" 20#include "quantum.h"
5 21
6// readability
7#define XXX KC_NO 22#define XXX KC_NO
8 23
9/* AMJ40 ver2.0 layout1 ι…εˆ—δΈ€ 24/* AMJ40 ver2.0 staggered layouts
10 * ,-----------------------------------------------------------. 25 * ,-----------------------------------------------.
11 * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 26 * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
12 * |-----------------------------------------------------------| 27 * |-----------------------------------------------|
13 * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1B | 28 * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1b |
14 * |-----------------------------------------------------------| 29 * |-----------------------------------------------|
15 * | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 30 * |20 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |
16 * |-----------------------------------------------------------| 31 * |-----------------------------------------------|
17 * | 30 | 31 | 32 | 34 | 35 | 39 | 3A | 3B | 32 * |30 |31 |32 | 34 |35 |39 |3a |3b | Layout 1 Bottom Row
18 * `-----------------------------------------------------------' 33 * `-----------------------------------------------'
34 * ,-----------------------------------------------.
35 * |30 |31 |32 | 35 |3a |3b | Layout 2
36 * `-----------------------------------------------'
37 * ,-----------------------------------------------.
38 * |30 |31 |32 | 34 | 35 |39 |3a |3b | Layout 3
39 * `-----------------------------------------------'
40 * ,-----------------------------------------------.
41 * |30 |31 |32 | 35 |3a |3b | Layout 4
42 * `-----------------------------------------------'
19 */ 43 */
44
45// a.k.a. Layout 1 or Layout 3 (matrix is the same for both)
20#define LAYOUT( \ 46#define LAYOUT( \
21 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ 47 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
22 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \ 48 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \
23 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ 49 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
24 k30, k31, k32, k34, k35, k39, k3a, k3b \ 50 k30, k31, k32, k34, k35, k39, k3a, k3b \
25) { \ 51) { \
26 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \ 52 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \
@@ -29,10 +55,55 @@
29 {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \ 55 {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \
30} 56}
31 57
58// a.k.a. Layout 2 or Layout 4 (matrix is the same for both)
59#define LAYOUT_625u_space( \
60 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
61 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \
62 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
63 k30, k31, k32, k35, k3a, k3b \
64) { \
65 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
66 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b }, \
67 { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
68 { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, XXX, k3a, k3b } \
69}
32 70
71/* AMJ40 ver2.0 ortholinear layouts
72 * ,-----------------------------------------------.
73 * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b |
74 * |-----------------------------------------------|
75 * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b |
76 * |-----------------------------------------------|
77 * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b |
78 * |-----------------------------------------------|
79 * |30 |31 |32 |33 |34 | 35 |38 |39 |3a |3b | 2.75u Spacebar
80 * `-----------------------------------------------'
81 * ,-----------------------------------------------.
82 * |30 |31 |32 | 35 |39 |3a |3b | 6u Spacebar
83 * `-----------------------------------------------'
84 */
33 85
86// equivalent to LAYOUT_all
87#define LAYOUT_ortho_275u_space( \
88 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
89 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
90 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
91 k30, k31, k32, k33, k34, k35, k38, k39, k3a, k3b \
92) { \
93 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
94 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
95 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
96 { k30, k31, k32, k33, k34, k35, XXX, XXX, k38, k39, k3a, k3b } \
97}
34 98
35void matrix_init_user(void); 99#define LAYOUT_ortho_600u_space( \
36void matrix_scan_user(void); 100 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
37 101 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
38#endif 102 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
103 k30, k31, k32, k35, k39, k3a, k3b \
104) { \
105 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
106 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
107 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
108 { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, k39, k3a, k3b } \
109}