/ Split_Ortho_Keyboard / keymaps.py
keymaps.py
  1  # SPDX-FileCopyrightText: Copyright (c) 2022 John Park & Tod Kurt for Adafruit Industries
  2  #
  3  # SPDX-License-Identifier: MIT
  4  from adafruit_hid.keycode import Keycode
  5  # https://docs.circuitpython.org/projects/hid/en/latest/api.html#adafruit-hid-keycode-keycode
  6  # keymap is keynumber, (modifier, keycode)
  7  # lower keymap layer
  8  km_lf_0 = {
  9              (1) : (0, Keycode.F11),
 10              (2) : (0, Keycode.F1),
 11              (3) : (0, Keycode.F2),
 12              (4) : (0, Keycode.F3),
 13              (5) : (0, Keycode.F4),
 14              (6) : (0, Keycode.F5),
 15  
 16              (11) : (0, None),
 17              (12) : (0, None),
 18              (13) : (0, None),
 19              (14) : (0, None),
 20              (15) : (0, None),
 21              (16) : (0, None),
 22  
 23              (21) : (0, None),
 24              (22) : (0, None),
 25              (23) : (0, None),
 26              (24) : (0, None),
 27              (25) : (0, None),
 28              (26) : (0, None),
 29  
 30              (31) : (0, None),
 31              (32) : (0, None),
 32              (33) : (0, None),
 33              (34) : (0, None),
 34              (35) : (0, None),
 35              (36) : (0, None),
 36  
 37              (41) : (0, Keycode.CONTROL),
 38              (42) : (0, Keycode.GUI),
 39              (43) : (0, Keycode.ALT),
 40              (44) : (0, Keycode.GUI),
 41              (45) : (1, Keycode.L),  # lower (the keycode doesn't matter here, it's never typed)
 42              (46) : (0, Keycode.SPACE)
 43  }
 44  
 45  km_rt_0 = {
 46              (1) : (0, Keycode.F6),
 47              (2) : (0, Keycode.F7),
 48              (3) : (0, Keycode.F8),
 49              (4) : (0, Keycode.F9),
 50              (5) : (0, Keycode.F10),
 51              (6) : (0, Keycode.F12),
 52  
 53              (11) : (0, Keycode.HOME),
 54              (12) : (0, Keycode.PAGE_DOWN),
 55              (13) : (0, Keycode.PAGE_UP),
 56              (14) : (0, Keycode.END),
 57              (15) : (0, Keycode.INSERT),
 58              (16) : (0, Keycode.DELETE),
 59  
 60              (21) : (0, None),
 61              (22) : (0, None),
 62              (23) : (0, None),
 63              (24) : (0, None),
 64              (25) : (0, None),
 65              (26) : (0, None),
 66  
 67              (31) : (0, None),
 68              (32) : (0, None),
 69              (33) : (0, None),
 70              (34) : (0, None),
 71              (35) : (0, None),
 72              (36) : (0, None),
 73  
 74              (41) : (0, Keycode.SPACE),
 75              (42) : (2, Keycode.R),  # raise
 76              (43) : (0, Keycode.LEFT_ARROW),
 77              (44) : (0, Keycode.DOWN_ARROW),
 78              (45) : (0, Keycode.UP_ARROW),
 79              (46) : (0, Keycode.RIGHT_ARROW)
 80  }
 81  
 82  # main keymap layer
 83  km_lf_1 = {
 84              (1) : (0, Keycode.GRAVE_ACCENT),
 85              (2) : (0, Keycode.ONE),
 86              (3) : (0, Keycode.TWO),
 87              (4) : (0, Keycode.THREE),
 88              (5) : (0, Keycode.FOUR),
 89              (6) : (0, Keycode.FIVE),
 90  
 91              (11) : (0, Keycode.ESCAPE),
 92              (12) : (0, Keycode.Q),
 93              (13) : (0, Keycode.W),
 94              (14) : (0, Keycode.E),
 95              (15) : (0, Keycode.R),
 96              (16) : (0, Keycode.T),
 97  
 98              (21) : (0, Keycode.TAB),
 99              (22) : (0, Keycode.A),
100              (23) : (0, Keycode.S),
101              (24) : (0, Keycode.D),
102              (25) : (0, Keycode.F),
103              (26) : (0, Keycode.G),
104  
105              (31) : (0, Keycode.SHIFT),
106              (32) : (0, Keycode.Z),
107              (33) : (0, Keycode.X),
108              (34) : (0, Keycode.C),
109              (35) : (0, Keycode.V),
110              (36) : (0, Keycode.B),
111  
112              (41) : (0, Keycode.CONTROL),
113              (42) : (0, Keycode.GUI),
114              (43) : (0, Keycode.ALT),
115              (44) : (0, Keycode.GUI),
116              (45) : (1, Keycode.L),  # lower
117              (46) : (0, Keycode.SPACE)
118  }
119  
120  km_rt_1 = {
121              (1) : (0, Keycode.SIX),
122              (2) : (0, Keycode.SEVEN),
123              (3) : (0, Keycode.EIGHT),
124              (4) : (0, Keycode.NINE),
125              (5) : (0, Keycode.ZERO),
126              (6) : (0, Keycode.BACKSPACE),
127  
128              (11) : (0, Keycode.Y),
129              (12) : (0, Keycode.U),
130              (13) : (0, Keycode.I),
131              (14) : (0, Keycode.O),
132              (15) : (0, Keycode.P),
133              (16) : (0, Keycode.BACKSLASH),
134  
135              (21) : (0, Keycode.H),
136              (22) : (0, Keycode.J),
137              (23) : (0, Keycode.K),
138              (24) : (0, Keycode.L),
139              (25) : (0, Keycode.SEMICOLON),
140              (26) : (0, Keycode.QUOTE),
141  
142              (31) : (0, Keycode.N),
143              (32) : (0, Keycode.M),
144              (33) : (0, Keycode.COMMA),
145              (34) : (0, Keycode.PERIOD),
146              (35) : (0, Keycode.FORWARD_SLASH),
147              (36) : (0, Keycode.ENTER),
148  
149              (41) : (0, Keycode.SPACE),
150              (42) : (2, Keycode.R),  # raise
151              (43) : (0, Keycode.LEFT_ARROW),
152              (44) : (0, Keycode.DOWN_ARROW),
153              (45) : (0, Keycode.UP_ARROW),
154              (46) : (0, Keycode.RIGHT_ARROW)
155  }
156  
157  # upper keymap layer
158  km_lf_2 = {
159              (1) : (0, None),
160              (2) : (0, None),
161              (3) : (0, None),
162              (4) : (0, None),
163              (5) : (0, None),
164              (6) : (0, None),
165  
166              (11) : (0, Keycode.ESCAPE),
167              (12) : (0, None),
168              (13) : (0, None),
169              (14) : (0, None),
170              (15) : (0, None),
171              (16) : (0, None),
172  
173              (21) : (0, Keycode.TAB),
174              (22) : (0, None),
175              (23) : (0, None),
176              (24) : (0, Keycode.MINUS),
177              (25) : (0, Keycode.EQUALS),
178              (26) : (7, Keycode.BACKSLASH),  # PIPE '|'
179  
180              (31) : (0, Keycode.SHIFT),
181              (32) : (0, None),
182              (33) : (0, None),
183              (34) : (7, Keycode.MINUS),  # UNDERSCORE
184              (35) : (0, Keycode.KEYPAD_PLUS),
185              (36) : (0, Keycode.BACKSLASH),
186  
187              (41) : (0, Keycode.CONTROL),
188              (42) : (0, Keycode.GUI),
189              (43) : (0, Keycode.ALT),
190              (44) : (0, Keycode.GUI),
191              (45) : (1, Keycode.L),  # lower
192              (46) : (0, Keycode.SPACE)
193  }
194  
195  km_rt_2 = {
196              (1) : (0, None),
197              (2) : (0, None),
198              (3) : (0, None),
199              (4) : (0, None),
200              (5) : (0, None),
201              (6) : (0, Keycode.BACKSPACE),
202  
203              (11) : (0, None),
204              (12) : (0, None),
205              (13) : (0, None),
206              (14) : (0, None),
207              (15) : (0, None),
208              (16) : (0, Keycode.BACKSLASH),
209  
210              (21) : (0, None),
211              (22) : (0, Keycode.LEFT_BRACKET),
212              (23) : (0, Keycode.RIGHT_BRACKET),
213              (24) : (0, None),
214              (25) : (0, None),
215              (26) : (0, Keycode.QUOTE),
216  
217              (31) : (0, None),
218              (32) : (7, Keycode.LEFT_BRACKET),
219              (33) : (7, Keycode.RIGHT_BRACKET),
220              (34) : (0, None),
221              (35) : (0, None),
222              (36) : (0, Keycode.ENTER),
223  
224              (41) : (0, Keycode.SPACE),
225              (42) : (2, Keycode.R),  # raise
226              (43) : (0, Keycode.LEFT_ARROW),
227              (44) : (0, Keycode.DOWN_ARROW),
228              (45) : (0, Keycode.UP_ARROW),
229              (46) : (0, Keycode.RIGHT_ARROW)
230  }
231  
232  # put the keymaps in layer lists for easy iteration later
233  keymaps_1 = (km_lf_0, km_rt_0)
234  keymaps_2 = (km_lf_1, km_rt_1)
235  keymaps_3 = (km_lf_2, km_rt_2)
236  layer_keymaps = (keymaps_1, keymaps_2, keymaps_3)