summaryrefslogtreecommitdiffstats
path: root/keyboards/karlb/kbic65/kbic65.h
blob: 697072b5504dee6e63dabd7a7aa7abb8f3a952db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
// Copyright 2021 Karl Berggren <@bkarl>
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include "quantum.h"

#define ___ KC_NO

/*
 *              ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐    ┌───────┐
 *              │10 │00 │11 │01 │12 │02 │13 │03 │14 │04 │15 │05 │16 │06 │17 │ │07 │    │06     │ 2u Backspace
 *              ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┤    └─┬─────┤
 *              │30   │20 │31 │21 │32 │22 │33 │23 │34 │24 │35 │25 │36 │26   │ │37 │      │     │
 *  2.25u       ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┤   ┌──┴┐26  │ ISO Enter
 *  LShift      │50    │40 │51 │41 │52 │42 │53 │43 │54 │44 │55 │45 │56      │ │47 │   │56 │    │
 * ┌────────┐   ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┤   └───┴────┘
 * │70      │   │70  │60 │71 │61 │72 │62 │73 │63 │74 │64 │75 │65 │76    │┌───┐│57 │
 * └────────┘   ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│66 │└───┘
 *              │80  │81  │82  │83                      │84 │85 │86 │┌───┼───┼───┐
 *              └────┴────┴────┴────────────────────────┴───┴───┴───┘│87 │77 │67 │
 *                                                                   └───┴───┴───┘
 *                              K83+K84 can be 6.25u/1u or 6u/1.25u
 *              ┌────┬────┬────┬────────────────────────┬────┬────┐
 *              │80  │81  │82  │83                      │84  │85  │ 65% with Blocker
 *              └────┴────┴────┴────────────────────────┴────┴────┘
 */

// This a shortcut to help you visually see your layout.
// The first section contains all of the arguements
// The second converts the arguments into a two-dimensional array
#define LAYOUT_all( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16, K06, K17, K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36, K26,      K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45, K56,           K47, \
         K70, K60, K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85, K86, K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, K17}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {K60, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, K86, K87} \
}

#define LAYOUT_65_iso( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16,   K06,    K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36,           K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45, K56, K26,      K47, \
         K70, K60, K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85, K86, K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, ___}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {K60, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, K86, K87} \
}

#define LAYOUT_65_iso_split_bs( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16, K06, K17, K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36,           K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45, K56, K26,      K47, \
         K70, K60, K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85, K86, K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, K17}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {K60, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, K86, K87} \
}

#define LAYOUT_65_iso_blocker( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16,   K06,    K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36,           K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45, K56, K26,      K47, \
         K70, K60, K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85,      K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, ___}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {K60, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, ___, K87} \
}

#define LAYOUT_65_iso_blocker_split_bs( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16, K06, K17, K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36,           K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45, K56, K26,      K47, \
         K70, K60, K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85,      K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, K17}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {K60, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, ___, K87} \
}

#define LAYOUT_65_ansi( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16,   K06,    K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36, K26,      K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45,      K56,      K47, \
         K70,      K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85, K86, K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, ___}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {___, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, K86, K87} \
}

#define LAYOUT_65_ansi_split_bs( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16, K06, K17, K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36, K26,      K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45,      K56,      K47, \
         K70,      K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85, K86, K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, K17}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {___, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, K86, K87} \
}

#define LAYOUT_65_ansi_blocker( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16,   K06,    K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36, K26,      K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45,      K56,      K47, \
         K70,      K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85,      K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, ___}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {___, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, ___, K87} \
}

#define LAYOUT_65_ansi_blocker_split_bs( \
         K10, K00, K11, K01, K12, K02, K13, K03, K14, K04, K15, K05, K16, K06, K17, K07, \
         K30, K20, K31, K21, K32, K22, K33, K23, K34, K24, K35, K25, K36, K26,      K37, \
         K50, K40, K51, K41, K52, K42, K53, K43, K54, K44, K55, K45,      K56,      K47, \
         K70,      K71, K61, K72, K62, K73, K63, K74, K64, K75, K65, K76,      K66, K57, \
         K80, K81, K82,                K83,                K84, K85,      K87, K77, K67  \
) { \
        {K00, K01, K02, K03, K04, K05, K06, K07}, \
        {K10, K11, K12, K13, K14, K15, K16, K17}, \
        {K20, K21, K22, K23, K24, K25, K26, ___}, \
        {K30, K31, K32, K33, K34, K35, K36, K37}, \
        {K40, K41, K42, K43, K44, K45, ___, K47}, \
        {K50, K51, K52, K53, K54, K55, K56, K57}, \
        {___, K61, K62, K63, K64, K65, K66, K67}, \
        {K70, K71, K72, K73, K74, K75, K76, K77}, \
        {K80, K81, K82, K83, K84, K85, ___, K87} \
}