[Keyboard] Add Singa Kohaku (#24309)
Co-authored-by: jack <jack@pngu.org> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
		
							parent
							
								
									7c9e650b1c
								
							
						
					
					
						commit
						92afc8198a
					
				
							
								
								
									
										20
									
								
								keyboards/zeix/singa/kohaku/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								keyboards/zeix/singa/kohaku/config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| /*
 | ||||
| Copyright 2023 zeix (@itsme-zeix) | ||||
| 
 | ||||
| This program is free software: you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation, either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
| 
 | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET | ||||
| #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U | ||||
							
								
								
									
										698
									
								
								keyboards/zeix/singa/kohaku/keyboard.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										698
									
								
								keyboards/zeix/singa/kohaku/keyboard.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,698 @@ | ||||
| { | ||||
|     "manufacturer": "SINGA", | ||||
|     "keyboard_name": "Kohaku", | ||||
|     "maintainer": "itsme-zeix", | ||||
|     "bootloader": "rp2040", | ||||
|     "diode_direction": "COL2ROW", | ||||
|     "features": { | ||||
|         "rgblight": true, | ||||
|         "bootmagic": true, | ||||
|         "extrakey": true, | ||||
|         "mousekey": true | ||||
|     }, | ||||
|     "indicators": { | ||||
|         "caps_lock": "GP29" | ||||
|     }, | ||||
|     "matrix_pins": { | ||||
|         "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], | ||||
|         "rows": ["GP27", "GP28", "GP10", "GP11", "GP18", "GP19", "GP23", "GP24", "GP25", "GP26"] | ||||
|     }, | ||||
|     "processor": "RP2040", | ||||
|     "rgblight": { | ||||
|         "animations": { | ||||
|             "alternating": true, | ||||
|             "breathing": true, | ||||
|             "christmas": true, | ||||
|             "knight": true, | ||||
|             "rainbow_mood": true, | ||||
|             "rainbow_swirl": true, | ||||
|             "snake": true, | ||||
|             "static_gradient": true, | ||||
|             "twinkle": true | ||||
|         }, | ||||
|         "brightness_steps": 8, | ||||
|         "led_count": 28, | ||||
|         "saturation_steps": 8, | ||||
|         "sleep": true | ||||
|     }, | ||||
|     "usb": { | ||||
|         "device_version": "0.0.1", | ||||
|         "pid": "0x8888", | ||||
|         "vid": "0x4C27" | ||||
|     }, | ||||
|     "ws2812": { | ||||
|         "driver": "vendor", | ||||
|         "pin": "GP20" | ||||
|     }, | ||||
|     "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], | ||||
|     "layouts": { | ||||
|         "LAYOUT_all": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [1, 6], "x": 13, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 14, "y": 0}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [4, 6], "x": 12.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, | ||||
|                 {"matrix": [7, 0], "x": 1.25, "y": 3}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 2], "x": 3.75, "y": 4, "w": 2.75}, | ||||
|                 {"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 4], "x": 7.75, "y": 4, "w": 2.25}, | ||||
|                 {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_ansi_blocker": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, | ||||
|                 {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_ansi_blocker_split_bs": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [1, 6], "x": 13, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 14, "y": 0}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, | ||||
|                 {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_ansi_blocker_tsangan": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, | ||||
|                 {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_ansi_blocker_tsangan_split_bs": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [1, 6], "x": 13, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 14, "y": 0}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, | ||||
|                 {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_iso_blocker": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [4, 6], "x": 12.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, | ||||
|                 {"matrix": [7, 0], "x": 1.25, "y": 3}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, | ||||
|                 {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_iso_blocker_split_bs": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [1, 6], "x": 13, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 14, "y": 0}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [4, 6], "x": 12.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, | ||||
|                 {"matrix": [7, 0], "x": 1.25, "y": 3}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, | ||||
|                 {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_iso_blocker_tsangan": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [4, 6], "x": 12.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, | ||||
|                 {"matrix": [7, 0], "x": 1.25, "y": 3}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, | ||||
|                 {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         }, | ||||
|         "LAYOUT_65_iso_blocker_tsangan_split_bs": { | ||||
|             "layout": [ | ||||
|                 {"matrix": [0, 0], "x": 0, "y": 0}, | ||||
|                 {"matrix": [1, 0], "x": 1, "y": 0}, | ||||
|                 {"matrix": [0, 1], "x": 2, "y": 0}, | ||||
|                 {"matrix": [1, 1], "x": 3, "y": 0}, | ||||
|                 {"matrix": [0, 2], "x": 4, "y": 0}, | ||||
|                 {"matrix": [1, 2], "x": 5, "y": 0}, | ||||
|                 {"matrix": [0, 3], "x": 6, "y": 0}, | ||||
|                 {"matrix": [1, 3], "x": 7, "y": 0}, | ||||
|                 {"matrix": [0, 4], "x": 8, "y": 0}, | ||||
|                 {"matrix": [1, 4], "x": 9, "y": 0}, | ||||
|                 {"matrix": [0, 5], "x": 10, "y": 0}, | ||||
|                 {"matrix": [1, 5], "x": 11, "y": 0}, | ||||
|                 {"matrix": [0, 6], "x": 12, "y": 0}, | ||||
|                 {"matrix": [1, 6], "x": 13, "y": 0}, | ||||
|                 {"matrix": [0, 7], "x": 14, "y": 0}, | ||||
|                 {"matrix": [1, 7], "x": 15, "y": 0}, | ||||
|                 {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, | ||||
|                 {"matrix": [3, 0], "x": 1.5, "y": 1}, | ||||
|                 {"matrix": [2, 1], "x": 2.5, "y": 1}, | ||||
|                 {"matrix": [3, 1], "x": 3.5, "y": 1}, | ||||
|                 {"matrix": [2, 2], "x": 4.5, "y": 1}, | ||||
|                 {"matrix": [3, 2], "x": 5.5, "y": 1}, | ||||
|                 {"matrix": [2, 3], "x": 6.5, "y": 1}, | ||||
|                 {"matrix": [3, 3], "x": 7.5, "y": 1}, | ||||
|                 {"matrix": [2, 4], "x": 8.5, "y": 1}, | ||||
|                 {"matrix": [3, 4], "x": 9.5, "y": 1}, | ||||
|                 {"matrix": [2, 5], "x": 10.5, "y": 1}, | ||||
|                 {"matrix": [3, 5], "x": 11.5, "y": 1}, | ||||
|                 {"matrix": [2, 6], "x": 12.5, "y": 1}, | ||||
|                 {"matrix": [3, 7], "x": 15, "y": 1}, | ||||
|                 {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, | ||||
|                 {"matrix": [5, 0], "x": 1.75, "y": 2}, | ||||
|                 {"matrix": [4, 1], "x": 2.75, "y": 2}, | ||||
|                 {"matrix": [5, 1], "x": 3.75, "y": 2}, | ||||
|                 {"matrix": [4, 2], "x": 4.75, "y": 2}, | ||||
|                 {"matrix": [5, 2], "x": 5.75, "y": 2}, | ||||
|                 {"matrix": [4, 3], "x": 6.75, "y": 2}, | ||||
|                 {"matrix": [5, 3], "x": 7.75, "y": 2}, | ||||
|                 {"matrix": [4, 4], "x": 8.75, "y": 2}, | ||||
|                 {"matrix": [5, 4], "x": 9.75, "y": 2}, | ||||
|                 {"matrix": [4, 5], "x": 10.75, "y": 2}, | ||||
|                 {"matrix": [5, 5], "x": 11.75, "y": 2}, | ||||
|                 {"matrix": [4, 6], "x": 12.75, "y": 2}, | ||||
|                 {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, | ||||
|                 {"matrix": [5, 7], "x": 15, "y": 2}, | ||||
|                 {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, | ||||
|                 {"matrix": [7, 0], "x": 1.25, "y": 3}, | ||||
|                 {"matrix": [6, 1], "x": 2.25, "y": 3}, | ||||
|                 {"matrix": [7, 1], "x": 3.25, "y": 3}, | ||||
|                 {"matrix": [6, 2], "x": 4.25, "y": 3}, | ||||
|                 {"matrix": [7, 2], "x": 5.25, "y": 3}, | ||||
|                 {"matrix": [6, 3], "x": 6.25, "y": 3}, | ||||
|                 {"matrix": [7, 3], "x": 7.25, "y": 3}, | ||||
|                 {"matrix": [6, 4], "x": 8.25, "y": 3}, | ||||
|                 {"matrix": [7, 4], "x": 9.25, "y": 3}, | ||||
|                 {"matrix": [6, 5], "x": 10.25, "y": 3}, | ||||
|                 {"matrix": [7, 5], "x": 11.25, "y": 3}, | ||||
|                 {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, | ||||
|                 {"matrix": [7, 6], "x": 14, "y": 3}, | ||||
|                 {"matrix": [7, 7], "x": 15, "y": 3}, | ||||
|                 {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, | ||||
|                 {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, | ||||
|                 {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, | ||||
|                 {"matrix": [8, 6], "x": 13, "y": 4}, | ||||
|                 {"matrix": [9, 6], "x": 14, "y": 4}, | ||||
|                 {"matrix": [9, 7], "x": 15, "y": 4} | ||||
|             ] | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										35
									
								
								keyboards/zeix/singa/kohaku/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								keyboards/zeix/singa/kohaku/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| /*
 | ||||
| Copyright 2024 zeix (@itsme-zeix) | ||||
| 
 | ||||
| This program is free software: you can redistribute it and/or modify | ||||
| it under the terms of the GNU General Public License as published by | ||||
| the Free Software Foundation, either version 2 of the License, or | ||||
| (at your option) any later version. | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
| 
 | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| */ | ||||
| #include QMK_KEYBOARD_H | ||||
| 
 | ||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| 
 | ||||
| [0] = LAYOUT_all( | ||||
|   KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSLS, KC_BSPC, KC_INS, | ||||
|   KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, | ||||
|   KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,  KC_PGDN, | ||||
|   KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   MO(1), | ||||
|   KC_LCTL, KC_LGUI, KC_LALT,          KC_SPC,           KC_SPC,           KC_SPC,           KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT | ||||
|   ), | ||||
|    | ||||
| [1] = LAYOUT_all( | ||||
|   KC_TRNS, 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_DEL, KC_TRNS, | ||||
|   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||||
|   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||||
|   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||||
|   KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,          KC_TRNS,          KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | ||||
|   ), | ||||
| }; | ||||
							
								
								
									
										30
									
								
								keyboards/zeix/singa/kohaku/matrix_diagram.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								keyboards/zeix/singa/kohaku/matrix_diagram.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| # Matrix Diagram for Singa Kohaku (Designed by Zeix) | ||||
| 
 | ||||
| ``` | ||||
|                                                     ┌───┬───┐ | ||||
|                                     Split Backspace │16 │07 │ | ||||
|                                                     └───┴───┘ | ||||
| ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ | ||||
| │00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07     │17 │ | ||||
| ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤      ┌─────┐ | ||||
| │20   │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36   │37 │      │     │ | ||||
| ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤   ┌──┴┐56  │ ISO Enter | ||||
| │40    │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56      │57 │   │46 │    │ | ||||
| ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤   └───┴────┘ | ||||
| │60      │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66    │76 │77 │ | ||||
| ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ | ||||
| │80   │90 │81   │83                         │95   │ │86 │96 │97 │ | ||||
| └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ | ||||
| ┌────┬───┐ | ||||
| │60  │70 │ Split Left Shift | ||||
| └────┴───┘ | ||||
| ┌────┬────┬────┬────────────────────────┬────┬────┐ | ||||
| │80  │90  │81  │83                      │85  │95  │ 6.25u | ||||
| └────┴────┴────┴────────────────────────┴────┴────┘ | ||||
| ┌────┬────┬────┬───────────┬────┬───────┬────┬────┐ | ||||
| │80  │90  │81  │92         │83  │94     │85  │95  │ Split Space (Left 2.75u) | ||||
| └────┴────┴────┴───────────┴────┴───────┴────┴────┘ | ||||
| ┌────┬────┬────┬───────┬────┬───────────┬────┬────┐ | ||||
| │80  │90  │81  │92     │83  │94         │85  │95  │ Split Space (Left 2.25u) | ||||
| └────┴────┴────┴───────┴────┴───────────┴────┴────┘ | ||||
| ``` | ||||
							
								
								
									
										27
									
								
								keyboards/zeix/singa/kohaku/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/zeix/singa/kohaku/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| # SINGA Kohaku R2 (PCB designed by Zeix) | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| 65% PCB designed to support Kohaku R2. | ||||
| 
 | ||||
| -   Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) | ||||
| -   Hardware Supported: Singa Kohaku R2 (PCB designed by Zeix) | ||||
| -   Hardware Availability: https://singakbd.com/ | ||||
| 
 | ||||
| Make example for this keyboard (after setting up your build environment): | ||||
| 
 | ||||
|     make zeix/singa/kohaku:default | ||||
| 
 | ||||
| Flashing example for this keyboard: | ||||
| 
 | ||||
|     make zeix/singa/kohaku:default:flash | ||||
| 
 | ||||
| See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | ||||
| 
 | ||||
| ## Bootloader | ||||
| 
 | ||||
| Enter the bootloader in 3 ways: | ||||
| 
 | ||||
| -   **Bootmagic reset**: Hold down the top left key and plug in the keyboard. | ||||
| -   **Physical reset button**: Briefly press the `RESET` button twice or short the 'USB_BOOT' and `GND` pads and plug in the keyboard. | ||||
| -   **Keycode in layout**: Press the key mapped to `QK_BOOT`. | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user