Initial port of zodiark with quickpin
This commit is contained in:
		
							
								
								
									
										15
									
								
								boards/zodiark/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								boards/zodiark/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| # Zodiark | ||||
|  | ||||
|  | ||||
|  | ||||
| A split keyboard with 5x7 including a thumbcluster, encoders on each side, per | ||||
| key RGB, and 2x I2C headers per side, supporting 1.3"/.96" 128x64 OLEDs (the | ||||
| 1.3" is an SSH1106 OLED, .91" 128x32 OLEDs. | ||||
|  | ||||
| Hardware Availability: Pending Group Buy - [Discord Link](https://discord.gg/BCSbXwskVt) | ||||
|  | ||||
| Extensions enabled by default   | ||||
| - [Split](/docs/split.md) Connects halves using a wire. | ||||
| - [Layers](/docs/layers.md) Need more keys than switches? Use layers. | ||||
| - [PEG_RGB](/docs/peg_rgb_matrix.md) Light it up! | ||||
| - [PEG_OLED](/docs/peg_oled_display.md) Screens to see things on of course. | ||||
							
								
								
									
										68
									
								
								boards/zodiark/kb.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								boards/zodiark/kb.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| import board | ||||
|  | ||||
| from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard | ||||
| from kmk.scanners import DiodeOrientation | ||||
| from kmk.scanners.keypad import MatrixScanner | ||||
| from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins | ||||
| from kmk.quickpin.pro_Micro.avr_promicro import avr | ||||
|  | ||||
|  | ||||
| class KMKKeyboard(_KMKKeyboard): | ||||
|     def __init__(self): | ||||
|         # create and register the scanner | ||||
|         self.matrix = [ | ||||
|             MatrixScanner( | ||||
|                 # required arguments: | ||||
|                 column_pins=self.col_pins, | ||||
|                 row_pins=self.row_pins, | ||||
|                 # optional arguments with defaults: | ||||
|                 columns_to_anodes=DiodeOrientation.COL2ROW, | ||||
|                 interval=0.02, | ||||
|                 max_events=64, | ||||
|             ), | ||||
|         ] | ||||
|  | ||||
|     col_pins = ( | ||||
|         pins[avr['F5']], | ||||
|         pins[avr['F6']], | ||||
|         pins[avr['F7']], | ||||
|         pins[avr['B1']], | ||||
|         pins[avr['B3']], | ||||
|         pins[avr['B2']], | ||||
|         pins[avr['B6']], | ||||
|     ) | ||||
|     row_pins = ( | ||||
|         pins[avr['C6']], | ||||
|         pins[avr['D7']], | ||||
|         pins[avr['E6']], | ||||
|         pins[avr['B4']], | ||||
|         pins[avr['F4']], | ||||
|     ) | ||||
|     diode_orientation = DiodeOrientation.COLUMNS | ||||
|     rgb_pixel_pin = pins[avr['B5']] | ||||
|     data_pin = pins[avr['D3']] | ||||
|     i2c = board.I2C | ||||
|     SCL = board.SCL | ||||
|     SDA = board.SDA | ||||
|     # NOQA | ||||
|     # flake8: noqa | ||||
|     # fmt: off | ||||
|     led_key_pos =[ | ||||
|          5,  4,  3,  2, 01, 00,                 34, 35, 36, 37, 38, 39, | ||||
|          6,  7,  8,  9, 10, 11, 12,         46, 45, 44, 43, 42, 41, 40, | ||||
|         19, 18, 17, 16, 15, 14, 13,         47, 48, 49, 50, 51, 52, 53, | ||||
|         20, 21, 22, 23, 24, 25, 26,         60, 59, 58, 57, 56, 55, 54, | ||||
|         33, 32, 31, 30, 29,     28, 27, 61, 62,     63, 64, 65, 66, 67 | ||||
|     ] | ||||
|     brightness_limit = 0.5 | ||||
|     num_pixels = 62 | ||||
|  | ||||
|     # NOQA | ||||
|     # flake8: noqa | ||||
|     coord_mapping = [ | ||||
|          0,  1,  2,  3,  4,  5,                 40, 39, 38, 37, 36, 35, | ||||
|          7,  8,  9, 10, 11, 12, 06,         41, 47, 46, 45, 44, 43, 42, | ||||
|         14, 15, 16, 17, 18, 19, 13,         48, 54, 53, 52, 51, 50, 49, | ||||
|         21, 22, 23, 24, 25, 26, 20, 27, 62, 55, 61, 60, 59, 58, 57, 56, | ||||
|         28, 29, 30, 31, 32,     33, 34, 69, 68,     67, 66, 65, 64, 63 | ||||
|     ] | ||||
							
								
								
									
										709
									
								
								boards/zodiark/main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										709
									
								
								boards/zodiark/main.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,709 @@ | ||||
| import supervisor | ||||
|  | ||||
| from kb import KMKKeyboard | ||||
|  | ||||
| from kmk.extensions.peg_oled_Display import ( | ||||
|     Oled, | ||||
|     OledData, | ||||
|     OledDisplayMode, | ||||
|     OledReactionType, | ||||
| ) | ||||
| from kmk.extensions.peg_rgb_matrix import Rgb_matrix | ||||
| from kmk.handlers.sequences import send_string | ||||
| from kmk.hid import HIDModes | ||||
| from kmk.keys import KC | ||||
| from kmk.modules.layers import Layers | ||||
| from kmk.modules.modtap import ModTap | ||||
| from kmk.modules.split import Split, SplitSide, SplitType | ||||
|  | ||||
| keyboard = KMKKeyboard() | ||||
| modtap = ModTap() | ||||
| layers_ext = Layers() | ||||
| keyboard.modules.append(layers_ext) | ||||
| keyboard.modules.append(modtap) | ||||
|  | ||||
| oled_ext = Oled( | ||||
|     OledData( | ||||
|         corner_one={0: OledReactionType.STATIC, 1: ['qwertyzzzz']}, | ||||
|         corner_two={ | ||||
|             0: OledReactionType.LAYER, | ||||
|             1: ['1', '2', '3', '4', '5', '6', '7', '8'], | ||||
|         }, | ||||
|         corner_three={ | ||||
|             0: OledReactionType.LAYER, | ||||
|             1: ['base', 'raise', 'lower', 'adjust', '5', '6', '7', '8'], | ||||
|         }, | ||||
|         corner_four={ | ||||
|             0: OledReactionType.LAYER, | ||||
|             1: ['qwertyzzz', 'nums', 'shifted', 'leds', '5', '6', '7', '8'], | ||||
|         }, | ||||
|     ), | ||||
|     toDisplay=OledDisplayMode.TXT, | ||||
|     flip=False, | ||||
| ) | ||||
| keyboard.extensions.append(oled_ext) | ||||
|  | ||||
| # Default RGB matrix colours | ||||
| rgb_ext = Rgb_matrix( | ||||
|     ledDisplay=[ | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|         [80, 0, 80], | ||||
|     ], | ||||
|     split=True, | ||||
|     rightSide=False, | ||||
|     disable_auto_write=True, | ||||
| ) | ||||
| keyboard.extensions.append(rgb_ext) | ||||
|  | ||||
| # TODO Comment one of these on each side | ||||
| split_side = SplitSide.LEFT | ||||
| # split_side = SplitSide.RIGHT | ||||
| split = Split(data_pin=keyboard.data_pin) | ||||
| keyboard.modules.append(split) | ||||
|  | ||||
| keyboard.keymap = [ | ||||
|     [ | ||||
|         KC.F1, | ||||
|         KC.F2, | ||||
|         KC.F3, | ||||
|         KC.F4, | ||||
|         KC.F5, | ||||
|         KC.F6, | ||||
|         KC.F7, | ||||
|         KC.F8, | ||||
|         KC.F9, | ||||
|         KC.F10, | ||||
|         KC.F11, | ||||
|         KC.F12, | ||||
|         KC.ESC, | ||||
|         KC.N1, | ||||
|         KC.N2, | ||||
|         KC.N3, | ||||
|         KC.N4, | ||||
|         KC.N5, | ||||
|         KC.N6, | ||||
|         KC.N7, | ||||
|         KC.N8, | ||||
|         KC.N9, | ||||
|         KC.N0, | ||||
|         KC.GRV, | ||||
|         KC.TAB, | ||||
|         KC.Q, | ||||
|         KC.W, | ||||
|         KC.E, | ||||
|         KC.R, | ||||
|         KC.T, | ||||
|         KC.NO, | ||||
|         KC.NO, | ||||
|         KC.Y, | ||||
|         KC.U, | ||||
|         KC.I, | ||||
|         KC.O, | ||||
|         KC.P, | ||||
|         KC.MINS, | ||||
|         KC.LCTL, | ||||
|         KC.A, | ||||
|         KC.S, | ||||
|         KC.D, | ||||
|         KC.F, | ||||
|         KC.G, | ||||
|         KC.NO, | ||||
|         KC.NO, | ||||
|         KC.H, | ||||
|         KC.J, | ||||
|         KC.K, | ||||
|         KC.L, | ||||
|         KC.SCLN, | ||||
|         KC.QUOT, | ||||
|         KC.LSFT, | ||||
|         KC.Z, | ||||
|         KC.X, | ||||
|         KC.C, | ||||
|         KC.V, | ||||
|         KC.B, | ||||
|         KC.LBRC, | ||||
|         KC.RBRC, | ||||
|         KC.N, | ||||
|         KC.M, | ||||
|         KC.COMMA, | ||||
|         KC.DOT, | ||||
|         KC.SLSH, | ||||
|         KC.RSFT, | ||||
|         KC.NO, | ||||
|         KC.NO, | ||||
|         KC.NO, | ||||
|         KC.LGUI, | ||||
|         KC.MO(1), | ||||
|         KC.LCTL, | ||||
|         KC.SPC, | ||||
|         KC.ENT, | ||||
|         KC.MO(2), | ||||
|         KC.BSPC, | ||||
|         KC.RGUI, | ||||
|         KC.NO, | ||||
|         KC.NO, | ||||
|         KC.NO, | ||||
|     ], | ||||
|     [ | ||||
|         KC.F1, | ||||
|         KC.F2, | ||||
|         KC.F3, | ||||
|         KC.F4, | ||||
|         KC.F5, | ||||
|         KC.F6, | ||||
|         KC.F7, | ||||
|         KC.F8, | ||||
|         KC.F9, | ||||
|         KC.F10, | ||||
|         KC.F11, | ||||
|         KC.F12, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.UP, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.EQL, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.LEFT, | ||||
|         KC.DOWN, | ||||
|         KC.RGHT, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.LEFT, | ||||
|         KC.DOWN, | ||||
|         KC.RGHT, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.DEL, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|     ], | ||||
|     [ | ||||
|         KC.N2, | ||||
|         KC.EXLM, | ||||
|         KC.AT, | ||||
|         KC.HASH, | ||||
|         KC.DLR, | ||||
|         KC.PERC, | ||||
|         KC.CIRC, | ||||
|         KC.AMPR, | ||||
|         KC.ASTR, | ||||
|         KC.LPRN, | ||||
|         KC.RPRN, | ||||
|         KC.TILD, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.PLUS, | ||||
|         KC.UNDS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.LCBR, | ||||
|         KC.RCBR, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.LABK, | ||||
|         KC.RABK, | ||||
|         KC.QUES, | ||||
|         KC.TRNS, | ||||
|     ], | ||||
|     [ | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|     ], | ||||
|     [ | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|     ], | ||||
|     [ | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|     ], | ||||
|     [ | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|     ], | ||||
|     [ | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|         KC.TRNS, | ||||
|     ], | ||||
| ] | ||||
| if __name__ == '__main__': | ||||
|     keyboard.go(hid_type=HIDModes.USB) | ||||
		Reference in New Issue
	
	Block a user