]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/uk78/uk78.h
Add user-overridable callback for cancelling UCIS input (#5564)
[qmk_firmware.git] / keyboards / uk78 / uk78.h
1 #ifndef UK78_H
2 #define UK78_H
3
4 #include "quantum.h"
5
6 // readability
7 #define ____ KC_NO
8
9 /* Re: Right Shift
10  *
11  * Per a conversation I had on reddit with Rozakiin, matrix positions K312,
12  * K313 and K314 are never in use all together at the same time.
13  *
14  * A 2.75u-sized right Shift uses position K313, rendering K312 and K314
15  * inaccessible.
16  *
17  * A split right Shift, in either 1.75u/1u or 1u/1.75u (JIS layout) uses
18  * positions K312 and K314, rendering K313 inaccessible.
19  *
20  *                                                            - @noroadsleft
21  *                                                             July 13, 2018
22  */
23
24 #define LAYOUT_all( \
25           K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \
26           K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, K116, K117, K118, \
27           K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, K216, K217, K218, \
28           K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \
29           K400, K401, K402,                   K406,                   K410, K411, K412, K413, K414, K415, K416, K417, K418  \
30 ) { \
31   { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
32   { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
33   { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, K214, K215, K216, K217, K218 }, \
34   { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318 }, \
35   { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, K411, K412, K413, K414, K415, K416, K417, K418 } \
36 }
37
38 /* LAYOUT_ansi
39  *
40  * This layout uses:
41  *
42  *   - Split Backspace (K013 and K014)
43  *   - ANSI Enter (K214)
44  *   - ANSI 2.25u Left Shift (K300)
45  *   - Compact right Shift (K312 and K314)
46  *   - Two 1.5u modifiers (K410 and K412) between the spacebar and the Left
47  *     arrow key
48  * ,---------------------------------------------------------------------------.
49  * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0| -_| =+| \||Bsp|Del|P/ |P* |P- |
50  * |---------------------------------------------------------------------------|
51  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P| [{| ]}|   \||P7 |P8 |P9 |P= |
52  * |---------------------------------------------------------------------------|
53  * |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L| ;:| '"|   Enter|P4 |P5 |P6 |P+ |
54  * |---------------------------------------------------------------------------|
55  * |Shift   |  Z|  X|  C|  V|  B|  N|  M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
56  * |---------------------------------------------------------------------------|
57  * |Ctrl|GUI |Alt |                        |  Alt|   Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
58  * `---------------------------------------------------------------------------'
59  */
60 #define LAYOUT_ansi( \
61           K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,     K015, K016, K017, K018, \
62           K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114,     K115, K116, K117, K118, \
63           K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K214,     K215, K216, K217, K218, \
64           K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,         K314,   K315, K316, K317, K318, \
65           K400, K401, K402,                   K406,                     K410,   K412,     K413, K414, K415,   K416, K417, K418  \
66 ) { \
67   { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
68   { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
69   { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, ____, ____, K214, K215, K216, K217, K218 }, \
70   { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, K314, K315, K316, K317, K318 }, \
71   { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, ____, K412, K413, K414, K415, K416, K417, K418 } \
72 }
73
74 /* LAYOUT_iso
75  *
76  * This layout uses:
77  *
78  *   - Split Backspace (K013 and K014)
79  *   - ISO Enter (K114)
80  *   - ISO Left Shift and 1u (K300 and K301)
81  *   - Compact right Shift (K312 and K314)
82  *   - Two 1.5u modifiers (K410 and K412) between the spacebar and the Left
83  *     arrow key
84  * ,---------------------------------------------------------------------------.
85  * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0| -_| =+| \||Bsp|Del|P/ |P* |P- |
86  * |---------------------------------------------------------------------------|
87  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P| [{| ]}|Enter|P7 |P8 |P9 |P= |
88  * |------------------------------------------------------.    ----------------|
89  * |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L| ;:| '@| #~|    |P4 |P5 |P6 |P+ |
90  * |---------------------------------------------------------------------------|
91  * |Sft | \||  Z|  X|  C|  V|  B|  N|  M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
92  * |---------------------------------------------------------------------------|
93  * |Ctrl|GUI |Alt |                        |  Alt|   Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
94  * `---------------------------------------------------------------------------'
95  */
96 #define LAYOUT_iso( \
97           K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,     K015, K016, K017, K018, \
98           K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114,     K115, K116, K117, K118, \
99           K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,                 K215, K216, K217, K218, \
100           K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,         K314,   K315, K316, K317, K318, \
101           K400, K401, K402,                   K406,                     K410,   K412,     K413, K414, K415,   K416, K417, K418  \
102 ) { \
103   { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
104   { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
105   { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, ____, K215, K216, K217, K218 }, \
106   { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, K314, K315, K316, K317, K318 }, \
107   { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, ____, K412, K413, K414, K415, K416, K417, K418 } \
108 }
109
110 #endif