]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/moon/moon.h
[Keyboard] Add keyboard Moon (#5976)
[qmk_firmware.git] / keyboards / moon / moon.h
1 /* Copyright 2019 Mathias Andersson <wraul@dbox.se>
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 /* This a shortcut to help you visually see your layout.
21  *
22  * The first section contains all of the arguments representing the physical
23  * layout of the board and position of the keys.
24  *
25  * The second converts the arguments into a two-dimensional array which
26  * represents the switch matrix.
27  */
28 #define LAYOUT_all( \
29     k06,      k07, k08, k09, k0A,      k00, k01, k02, k03,      k04, k05, k66, k67,      k68, k69, k6A, \
30     k16, k17, k18, k19, k1A, k10, k11, k12, k13, k14, k15, k60, k61,           k62,      k63, k64, k65, \
31     k26,      k27, k28, k29, k2A, k20, k21, k22, k23, k24, k25, k76, k77,      k78,      k79, k7A, k70, \
32     k36,      k37, k38, k39, k3A, k30, k31, k32, k33, k34, k35, k71,           k72,                     \
33     k46, k47, k48, k49, k4A, k40, k41, k42, k43, k44, k45, k73,                k75,           k74,      \
34     k56, k57, k58,                     k59,                     k5A, k50, k51, k52,      k53, k54, k55  \
35 ) \
36 { \
37     { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A }, \
38     { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A }, \
39     { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A }, \
40     { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A }, \
41     { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A }, \
42     { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A }, \
43     { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A }, \
44     { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7A }, \
45 }
46
47 #define LAYOUT_tkl_ansi( \
48     k06,      k07, k08, k09, k0A,      k00, k01, k02, k03,      k04, k05, k66, k67,      k68, k69, k6A, \
49     k16, k17, k18, k19, k1A, k10, k11, k12, k13, k14, k15, k60, k61,           k62,      k63, k64, k65, \
50     k26,      k27, k28, k29, k2A, k20, k21, k22, k23, k24, k25, k76, k77,      k78,      k79, k7A, k70, \
51     k36,      k37, k38, k39, k3A, k30, k31, k32, k33, k34, k35, k71,           k72,                     \
52     k46,      k48, k49, k4A, k40, k41, k42, k43, k44, k45, k73,                k75,           k74,      \
53     k56, k57, k58,                     k59,                     k5A, k50, k51, k52,      k53, k54, k55  \
54 ) \
55 { \
56     { k00, k01, k02, k03, k04, k05, k06, k07,   k08, k09, k0A }, \
57     { k10, k11, k12, k13, k14, k15, k16, k17,   k18, k19, k1A }, \
58     { k20, k21, k22, k23, k24, k25, k26, k27,   k28, k29, k2A }, \
59     { k30, k31, k32, k33, k34, k35, k36, k37,   k38, k39, k3A }, \
60     { k40, k41, k42, k43, k44, k45, k46, KC_NO, k48, k49, k4A }, \
61     { k50, k51, k52, k53, k54, k55, k56, k57,   k58, k59, k5A }, \
62     { k60, k61, k62, k63, k64, k65, k66, k67,   k68, k69, k6A }, \
63     { k70, k71, k72, k73, k74, k75, k76, k77,   k78, k79, k7A }, \
64 }
65
66 #define LAYOUT_tkl_ansi_wkl( \
67     k06,      k07, k08, k09, k0A,      k00, k01, k02, k03,      k04, k05, k66, k67,      k68, k69, k6A, \
68     k16, k17, k18, k19, k1A, k10, k11, k12, k13, k14, k15, k60, k61,           k62,      k63, k64, k65, \
69     k26,      k27, k28, k29, k2A, k20, k21, k22, k23, k24, k25, k76, k77,      k78,      k79, k7A, k70, \
70     k36,      k37, k38, k39, k3A, k30, k31, k32, k33, k34, k35, k71,           k72,                     \
71     k46,      k48, k49, k4A, k40, k41, k42, k43, k44, k45, k73,                k75,           k74,      \
72     k56,      k58,                     k59,                          k50,      k52,      k53, k54, k55  \
73 ) \
74 { \
75     { k00, k01,   k02, k03, k04, k05, k06, k07,   k08, k09, k0A   }, \
76     { k10, k11,   k12, k13, k14, k15, k16, k17,   k18, k19, k1A   }, \
77     { k20, k21,   k22, k23, k24, k25, k26, k27,   k28, k29, k2A   }, \
78     { k30, k31,   k32, k33, k34, k35, k36, k37,   k38, k39, k3A   }, \
79     { k40, k41,   k42, k43, k44, k45, k46, KC_NO, k48, k49, k4A   }, \
80     { k50, KC_NO, k52, k53, k54, k55, k56, KC_NO, k58, k59, KC_NO }, \
81     { k60, k61,   k62, k63, k64, k65, k66, k67,   k68, k69, k6A   }, \
82     { k70, k71,   k72, k73, k74, k75, k76, k77,   k78, k79, k7A   }, \
83 }
84
85 #define LAYOUT_tkl_iso( \
86     k06,      k07, k08, k09, k0A,      k00, k01, k02, k03,      k04, k05, k66, k67,      k68, k69, k6A, \
87     k16, k17, k18, k19, k1A, k10, k11, k12, k13, k14, k15, k60, k61,           k62,      k63, k64, k65, \
88     k26,      k27, k28, k29, k2A, k20, k21, k22, k23, k24, k25, k76, k77,                k79, k7A, k70, \
89     k36,      k37, k38, k39, k3A, k30, k31, k32, k33, k34, k35, k71, k78,      k72,                     \
90     k46, k47, k48, k49, k4A, k40, k41, k42, k43, k44, k45, k73,                k75,           k74,      \
91     k56, k57, k58,                     k59,                     k5A, k50, k51, k52,      k53, k54, k55  \
92 ) \
93 { \
94     { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A }, \
95     { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A }, \
96     { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A }, \
97     { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A }, \
98     { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A }, \
99     { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A }, \
100     { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k6A }, \
101     { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79, k7A }, \
102 }
103
104 #define LAYOUT_tkl_iso_wkl( \
105     k06,      k07, k08, k09, k0A,      k00, k01, k02, k03,      k04, k05, k66, k67,      k68, k69, k6A, \
106     k16, k17, k18, k19, k1A, k10, k11, k12, k13, k14, k15, k60, k61,           k62,      k63, k64, k65, \
107     k26,      k27, k28, k29, k2A, k20, k21, k22, k23, k24, k25, k76, k77,                k79, k7A, k70, \
108     k36,      k37, k38, k39, k3A, k30, k31, k32, k33, k34, k35, k71, k78,      k72,                     \
109     k46, k47, k48, k49, k4A, k40, k41, k42, k43, k44, k45, k73,                k75,           k74,      \
110     k56,      k58,                     k59,                          k50,      k52,      k53, k54, k55  \
111 ) \
112 { \
113     { k00, k01,   k02, k03, k04, k05, k06, k07,   k08, k09, k0A   }, \
114     { k10, k11,   k12, k13, k14, k15, k16, k17,   k18, k19, k1A   }, \
115     { k20, k21,   k22, k23, k24, k25, k26, k27,   k28, k29, k2A   }, \
116     { k30, k31,   k32, k33, k34, k35, k36, k37,   k38, k39, k3A   }, \
117     { k40, k41,   k42, k43, k44, k45, k46, k47,   k48, k49, k4A   }, \
118     { k50, KC_NO, k52, k53, k54, k55, k56, KC_NO, k58, k59, KC_NO }, \
119     { k60, k61,   k62, k63, k64, k65, k66, k67,   k68, k69, k6A   }, \
120     { k70, k71,   k72, k73, k74, k75, k76, k77,   k78, k79, k7A   }, \
121 }