Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Model f labs f62 #21193

Open
wants to merge 31 commits into
base: master
Choose a base branch
from

Conversation

matthew-wolf-n4mtt
Copy link

New Keyboard Model F Labs F62

Description

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout/userspace (addition or update)
  • Documentation

Issues Fixed or Closed by This PR

Checklist

  • My code follows the code style of this project: C, Python
  • I have read the PR Checklist document and have made the appropriate changes.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

@github-actions github-actions bot added keyboard keymap via Adds via keymap and/or updates keyboard for via support labels Jun 9, 2023
@zvecr zvecr added the pr_checklist_pending Needs changes as per the PR checklist label Jun 9, 2023
@matthew-wolf-n4mtt
Copy link
Author

What is the next step for this PR?
Is something I need to do?

Copy link
Member

@drashna drashna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry, I swear I hit the submit, but apparently didn't...

keyboards/model_f_labs/f62/info.json Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/keymaps/default/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/keymaps/via/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/keymaps/via/keymap.c Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/readme.md Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/readme.md Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/rules.mk Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/wcass.c Outdated Show resolved Hide resolved
keyboards/model_f_labs/xwhatsit_util_comm.c Show resolved Hide resolved
@matthew-wolf-n4mtt
Copy link
Author

I think I have taken care of everything but two of the issues.

  1. config.h for the VIA keymap.
  • There are some statements in the file that are required by the custom code for the xwhatis code. Does the config.h file have to be removed?
  1. Using the keyboard file name. This can not change due to the way the utility problem uses the string to support multiple versions of the xwhatis controller installed in a large number of original IBM keyboards.

@matthew-wolf-n4mtt
Copy link
Author

I think I have taken care of everything.

keyboards/model_f_labs/f62/wcass/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/rules.mk Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/rules.mk Outdated Show resolved Hide resolved
@matthew-wolf-n4mtt
Copy link
Author

The config.h and rules.mk for wcass have been updated.

Copy link
Member

@drashna drashna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, if you need to disable bootmagic, you should add this somewhere:

void bootmagic_lite(void) {}

This will disable bootmagic, even if it is enabled.

keyboards/model_f_labs/f62/keymaps/via/rules.mk Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/wcass.h Outdated Show resolved Hide resolved
@fauxpark
Copy link
Member

fauxpark commented Dec 2, 2023

Take a closer look at the paths used for the corresponding .c file.

@matthew-wolf-n4mtt
Copy link
Author

Looks like I resolved the build issue with the test build environment.

What is the next for me to do?

keyboards/model_f_labs/f62/wcass/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/f62/wcass/config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/post_config.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/post_config.h Outdated Show resolved Hide resolved
@drashna drashna requested a review from a team December 9, 2023 06:22
@matthew-wolf-n4mtt
Copy link
Author

One of the recent updates may be causing the haptic / solenoid to stop functioning. I working on verifying the haptic feedback.

@matthew-wolf-n4mtt
Copy link
Author

One of the recent updates may be causing the haptic / solenoid to stop functioning. I working on verifying the haptic feedback.

I have fixed the haptic / solenoid.

I had changed "HAPTIC_DRIVER = SOLENOID" to "HAPTIC_DRIVER = solenoid" because the test build environment did not like the upper case driver name. When the driver name is lower case haptic / solenoid does not work. I restored the driver name to upper case and the haptic / solenoid functions correctly.

Now we get to see if the test build environment still does not like the upper case driver name.

@fauxpark
Copy link
Member

Your repo is probably out of date. The lower case driver name is the correct one.

@matthew-wolf-n4mtt
Copy link
Author

Thank you fauxpark. You are correct. After I updated my repo the lower case haptic driver works.

keyboards/model_f_labs/f62/wcass/info.json Outdated Show resolved Hide resolved
*/
#pragma once

#ifndef RAW_EPSIZE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks like it only sets it locally, which means this isn't picked up by the core. Eg, it's not actually setting the raw ep size

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RAW_EPSIZE is being used multiple items in keyboards/model_f_labs/xwhatsit_util_comm.c . The code is need to enable the use of a utility for the keyboards, pandrew-xwhatsit-utility

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be better to simply include "usb_descriptor.h" as that will pull in the raw_epsize define, and keep it consistent if it changes.

keyboards/model_f_labs/xwhatsit_util_comm.h Outdated Show resolved Hide resolved
keyboards/model_f_labs/xwhatsit_util_comm.h Outdated Show resolved Hide resolved
@drashna drashna requested a review from a team December 23, 2023 03:25
keyboards/model_f_labs/f62/wcass/info.json Outdated Show resolved Hide resolved
Comment on lines 5 to 600
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "nuhs", "x": 12.75, "y": 2},
{"label": "Shift", "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "x": 1.25, "y": 3},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "x": 14, "y": 3},
{"label": "Caps Lock", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_split_shift_split_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "|`", "x": 13, "y": 0},
{"label": "~", "x": 14, "y": 0},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Ctrl", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "nuhs", "x": 12.75, "y": 2},
{"label": "Shift", "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "x": 1.25, "y": 3},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "x": 14, "y": 3},
{"label": "Caps Lock", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5}
]
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without matrix information added, current layouts is non-functional.

Suggested change
"url": "https://www.modelfkeyboards.com/",
"layouts": {
"LAYOUT_all": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "|`", "x": 13, "y": 0},
{"label": "~", "x": 14, "y": 0},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "Backspace", "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "#", "x": 12.75, "y": 2},
{"label": "Enter", "x": 13.75, "y": 2, "w": 1.25},
{"label": "Shift", "x": 0, "y": 3, "w": 1.25},
{"label": "\\", "x": 1.25, "y": 3},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "x": 14, "y": 3},
{"label": "Caps Lock", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 6},
{"x": 10, "y": 4},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_regular_shift_regular_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "Backspace", "x": 13, "y": 0, "w": 2},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "\\|", "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "Enter", "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Fn", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_regular_shift_split_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "`~", "x": 13, "y": 0},
{"label": "Backspace", "x": 14, "y": 0},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "\\|", "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "Enter", "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Fn", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_split_shift_regular_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "Backspace", "x": 13, "y": 0, "w": 2},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "\\|", "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "Enter", "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "x": 14, "y": 3},
{"label": "Caps Lock", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_split_shift_split_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "|`", "x": 13, "y": 0},
{"label": "~", "x": 14, "y": 0},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "Backspace", "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "Enter", "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "x": 14, "y": 3},
{"label": "Caps Lock", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_regular_shift_regular_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "Backspace", "x": 13, "y": 0, "w": 2},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "nuhs", "x": 12.75, "y": 2},
{"label": "Shift", "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "x": 1.25, "y": 3},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Fn", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_regular_shift_split_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "`~", "x": 13, "y": 0},
{"label": "Backspace", "x": 14, "y": 0},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Caps Lock", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "nuhs", "x": 12.75, "y": 2},
{"label": "Shift", "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "x": 1.25, "y": 3},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Fn", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_split_shift_regular_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "Backspace", "x": 13, "y": 0, "w": 2},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Ctrl", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "nuhs", "x": 12.75, "y": 2},
{"label": "Shift", "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "x": 1.25, "y": 3},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "x": 14, "y": 3},
{"label": "Caps Lock", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_split_shift_split_backspace": {
"layout": [
{"label": "Esc", "x": 0, "y": 0},
{"label": "!", "x": 1, "y": 0},
{"label": "@", "x": 2, "y": 0},
{"label": "#", "x": 3, "y": 0},
{"label": "$", "x": 4, "y": 0},
{"label": "%", "x": 5, "y": 0},
{"label": "^", "x": 6, "y": 0},
{"label": "&", "x": 7, "y": 0},
{"label": "*", "x": 8, "y": 0},
{"label": "(", "x": 9, "y": 0},
{"label": ")", "x": 10, "y": 0},
{"label": "_", "x": 11, "y": 0},
{"label": "+", "x": 12, "y": 0},
{"label": "|`", "x": 13, "y": 0},
{"label": "~", "x": 14, "y": 0},
{"label": "Tab", "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "x": 1.5, "y": 1},
{"label": "W", "x": 2.5, "y": 1},
{"label": "E", "x": 3.5, "y": 1},
{"label": "R", "x": 4.5, "y": 1},
{"label": "T", "x": 5.5, "y": 1},
{"label": "Y", "x": 6.5, "y": 1},
{"label": "U", "x": 7.5, "y": 1},
{"label": "I", "x": 8.5, "y": 1},
{"label": "O", "x": 9.5, "y": 1},
{"label": "P", "x": 10.5, "y": 1},
{"label": "{", "x": 11.5, "y": 1},
{"label": "}", "x": 12.5, "y": 1},
{"label": "Enter", "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Ctrl", "x": 0, "y": 2, "w": 1.75},
{"label": "A", "x": 1.75, "y": 2},
{"label": "S", "x": 2.75, "y": 2},
{"label": "D", "x": 3.75, "y": 2},
{"label": "F", "x": 4.75, "y": 2},
{"label": "G", "x": 5.75, "y": 2},
{"label": "H", "x": 6.75, "y": 2},
{"label": "J", "x": 7.75, "y": 2},
{"label": "K", "x": 8.75, "y": 2},
{"label": "L", "x": 9.75, "y": 2},
{"label": ":", "x": 10.75, "y": 2},
{"label": "\"", "x": 11.75, "y": 2},
{"label": "nuhs", "x": 12.75, "y": 2},
{"label": "Shift", "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "x": 1.25, "y": 3},
{"label": "Z", "x": 2.25, "y": 3},
{"label": "X", "x": 3.25, "y": 3},
{"label": "C", "x": 4.25, "y": 3},
{"label": "V", "x": 5.25, "y": 3},
{"label": "B", "x": 6.25, "y": 3},
{"label": "N", "x": 7.25, "y": 3},
{"label": "M", "x": 8.25, "y": 3},
{"label": "<", "x": 9.25, "y": 3},
{"label": ">", "x": 10.25, "y": 3},
{"label": "?", "x": 11.25, "y": 3},
{"label": "Shift", "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "x": 14, "y": 3},
{"label": "Caps Lock", "x": 0, "y": 4, "w": 1.5},
{"x": 1.5, "y": 4},
{"label": "Alt", "x": 2.5, "y": 4, "w": 1.5},
{"x": 4, "y": 4, "w": 7},
{"label": "Alt", "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "x": 12.5, "y": 4},
{"label": "Ctrl", "x": 13.5, "y": 4, "w": 1.5}
]
}
}
"url": "https://www.modelfkeyboards.com/"

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

Comment on lines 6 to 28
"bootmagic": {
"enabled": false,
},
"build": {
"lto": true
},
"features": {
"backlight": false,
"command": true,
"console": false,
"extrakey": true,
"haptic": true,
"nkro": true,
"raw": true,
"rgblight": false
},
"indicators": {
"caps_lock": "B5",
"num_lock": "B4"
},
"mouse_key": {
"enabled": true
},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move bootloader and mousekey into features

Suggested change
"bootmagic": {
"enabled": false,
},
"build": {
"lto": true
},
"features": {
"backlight": false,
"command": true,
"console": false,
"extrakey": true,
"haptic": true,
"nkro": true,
"raw": true,
"rgblight": false
},
"indicators": {
"caps_lock": "B5",
"num_lock": "B4"
},
"mouse_key": {
"enabled": true
},
"build": {
"lto": true
},
"features": {
"backlight": false,
"bootmagic": true,
"command": true,
"console": false,
"extrakey": true,
"haptic": true,
"mousekey": true,
"nkro": true,
"raw": true,
"rgblight": false
},
"indicators": {
"caps_lock": "B5",
"num_lock": "B4"
},

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bootloader and mousekey have been moved into features.

Comment on lines 2 to 4
"manufacturer": "Model F Labs",
"keyboard_name": "Reproduction IBM F62 Keyboard",
"maintainer": "Purdea Andrei",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already defined in info.json of directory above

Suggested change
"manufacturer": "Model F Labs",
"keyboard_name": "Reproduction IBM F62 Keyboard",
"maintainer": "Purdea Andrei",

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

"split": {
"soft_serial_pin": "D0"
},
"url": "https://www.modelfkeyboards.com/",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already defined in info.json of directory above

Suggested change
"url": "https://www.modelfkeyboards.com/",

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

Comment on lines 38 to 634
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_split_shift_split_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "|`", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "~", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
}
}
}
Copy link
Contributor

@dunk2k dunk2k Dec 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add Community Layout support

Suggested change
},
"layouts": {
"LAYOUT_all": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "|`", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "~", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Backspace", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "#", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 2, "w": 1.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "\\", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 6},
{"label": "K44", "matrix": [3, 6], "x": 10, "y": 4},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_regular_shift_regular_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "\\|", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_regular_shift_split_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "`~", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "\\|", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_split_shift_regular_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "\\|", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_ansi_split_shift_split_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "|`", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "~", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Backspace", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_regular_shift_regular_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_regular_shift_split_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "`~", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_split_shift_regular_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_iso_split_shift_split_backspace": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "|`", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "~", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
}
}
}
},
"community_layouts": [
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_all": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "|`", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "~", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Backspace", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "#", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 2, "w": 1.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "\\", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 6},
{"label": "K44", "matrix": [3, 6], "x": 10, "y": 4},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_tsangan": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "\\|", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_tsangan_split_bs": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "`~", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "\\|", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_tsangan_split_rshift": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "\\|", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "|`", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "~", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Backspace", "matrix": [7, 7], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan_split_bs": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "`~", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Caps Lock", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [1, 7], "x": 12.25, "y": 3, "w": 2.75},
{"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Fn", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan_split_rshift": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "Backspace", "matrix": [6, 7], "x": 13, "y": 0, "w": 2},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [4, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [6, 0], "x": 1, "y": 0},
{"label": "@", "matrix": [6, 1], "x": 2, "y": 0},
{"label": "#", "matrix": [4, 2], "x": 3, "y": 0},
{"label": "$", "matrix": [6, 2], "x": 4, "y": 0},
{"label": "%", "matrix": [4, 3], "x": 5, "y": 0},
{"label": "^", "matrix": [6, 3], "x": 6, "y": 0},
{"label": "&", "matrix": [4, 4], "x": 7, "y": 0},
{"label": "*", "matrix": [6, 4], "x": 8, "y": 0},
{"label": "(", "matrix": [4, 5], "x": 9, "y": 0},
{"label": ")", "matrix": [6, 5], "x": 10, "y": 0},
{"label": "_", "matrix": [4, 6], "x": 11, "y": 0},
{"label": "+", "matrix": [6, 6], "x": 12, "y": 0},
{"label": "|`", "matrix": [4, 7], "x": 13, "y": 0},
{"label": "~", "matrix": [6, 7], "x": 14, "y": 0},
{"label": "Tab", "matrix": [5, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [5, 1], "x": 2.5, "y": 1},
{"label": "E", "matrix": [7, 2], "x": 3.5, "y": 1},
{"label": "R", "matrix": [5, 2], "x": 4.5, "y": 1},
{"label": "T", "matrix": [7, 3], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [5, 3], "x": 6.5, "y": 1},
{"label": "U", "matrix": [7, 4], "x": 7.5, "y": 1},
{"label": "I", "matrix": [5, 4], "x": 8.5, "y": 1},
{"label": "O", "matrix": [7, 5], "x": 9.5, "y": 1},
{"label": "P", "matrix": [5, 5], "x": 10.5, "y": 1},
{"label": "{", "matrix": [5, 6], "x": 11.5, "y": 1},
{"label": "}", "matrix": [5, 7], "x": 12.5, "y": 1},
{"label": "Ctrl", "matrix": [7, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [7, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 1], "x": 2.75, "y": 2},
{"label": "D", "matrix": [0, 2], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 2], "x": 4.75, "y": 2},
{"label": "G", "matrix": [0, 3], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 3], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 4], "x": 7.75, "y": 2},
{"label": "K", "matrix": [0, 4], "x": 8.75, "y": 2},
{"label": "L", "matrix": [0, 5], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 5], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 6], "x": 11.75, "y": 2},
{"label": "nuhs", "matrix": [7, 6], "x": 12.75, "y": 2},
{"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "Shift", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "nubs", "matrix": [0, 0], "x": 1.25, "y": 3},
{"label": "Z", "matrix": [1, 1], "x": 2.25, "y": 3},
{"label": "X", "matrix": [0, 1], "x": 3.25, "y": 3},
{"label": "C", "matrix": [1, 2], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 2], "x": 5.25, "y": 3},
{"label": "B", "matrix": [1, 3], "x": 6.25, "y": 3},
{"label": "N", "matrix": [1, 4], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 4], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 5], "x": 9.25, "y": 3},
{"label": ">", "matrix": [1, 5], "x": 10.25, "y": 3},
{"label": "?", "matrix": [0, 6], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [0, 7], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [1, 7], "x": 14, "y": 3},
{"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "K41", "matrix": [1, 0], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [3, 1], "x": 2.5, "y": 4, "w": 1.5},
{"label": "K43", "matrix": [3, 3], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [1, 6], "x": 11, "y": 4, "w": 1.5},
{"label": "Num Lock", "matrix": [3, 7], "x": 12.5, "y": 4},
{"label": "Ctrl", "matrix": [3, 8], "x": 13.5, "y": 4, "w": 1.5}
]
}
}
}

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Model F5 Labs keyboards do not have the community layouts. They have a unique layout.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drive-by comment from a random QMK user who recently got an F62 and has been watching this PR: The F62 PCB definitely supports some community layouts. For example, mine is set up as 60_tsangan_hhkb.

Copy link
Contributor

@dunk2k dunk2k Jan 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@matthew-wolf-n4mtt
Looking at image gallery, It can be seen there's also ABNT2/JIS split Right Shift (1u-1.75u) available on this board.
Would it be correct that matrix co-ordinates for 1u and 1.75u are 0,7 and 1,7 respectively?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure of the distinction between "unique" and "community", exactly, but here is my 2c as well @matthew-wolf-n4mtt:

On my F62, I've added flippers on every possible contact point.

See here and here

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The key maps that model f labs provided use the "LAYOUT_all" layout. There are place holder codes for the key caps and flippers that are not installed that are not installed.

There is currently 30 key maps for the F77. There are going to be a large number of pull requests for the F77.

Copy link
Contributor

@bcat bcat Jan 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry if I'm just being dense, but does supporting community layouts in fact require adding new files to the pull request? I think it's all done through the keyboard's JSON config now, and then the corresponding layout macros are code generated. See example from an existing 60% keyboard.

But I'm not aware of any requirement to add a keymap for every layout a keyboard supports (and I'm not seeing such a requirement in the PR checklist either). All that's required is ensuring the matrix positions for each community layout that is physically compatible with the PCB are correct. If neither a keyboard nor a user define a keymap for a particular layout, the default keymap for that layout will be used instead.

Copy link
Contributor

@dunk2k dunk2k Jan 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excerpt from PR Checklist:

  • If the keyboard has multiple electrical/switch layouts:
    • include a LAYOUT_all which specifies all possible layout positions in the electrical matrix
    • use alternate layout names for all other possible layouts, preferring community layout names if an equivalent is available (e.g. LAYOUT_tkl_ansi, LAYOUT_ortho_4x4 etc.)

@bcat is correct in that there isn't a requirement to have a keymap for every layout defined in info.json.

Community Layout suggestion adheres to PR Checklist, using community layout names either in full or partly.

For reference, a user can create their own keymap specifying the desired layout (name) in keymap.c.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got confused by the physical layout of the F77. Which is tsangan plus macro keys.

The physical layout of the F62 is tsangan with an additional key under the right side of the space bar.

IBM 4704 -> tsangan ?????

What dunk2k proposed is correct. I only realized this after I went did everything dunk2k all ready had done.

Can the '60_tsangan_hhkb" layout be changed to "60_ansi_tsangan_split_bs_rshift" to match the naming of the other tsangan community layouts.

The affect of change to the community layout naming.

LAYOUT_ansi_regular_shift_regular_backspace -> LAYOUT_60_ansi_tsangan
LAYOUT_ansi_regular_shift_split_backspace -> LAYOUT_60_iso_tsangan_split_bs (Not Community Layout)
LAYOUT_ansi_split_shift_regular_backspace -> LAYOUT_60_ansi_tsangan_split_rshift (Not Community Layout)
LAYOUT_ansi_split_shift_split_backspace -> LAYOUT_60_tsangan_hhkb
LAYOUT_iso_regular_shift_regular_backspace -> LAYOUT_60_iso_tsangan
LAYOUT_iso_regular_shift_split_backspace -> LAYOUT_60_iso_tsangan_split_bs (Not Community Layout)
LAYOUT_iso_split_shift_regular_backspace -> LAYOUT_60_iso_tsangan_split_rshift (Not Community Layout)
LAYOUT_iso_split_shift_split_backspace -> LAYOUT_60_iso_tsangan_split_bs_rshift

dunk2k asked?
It can be seen there's also ABNT2/JIS split Right Shift (1u-1.75u) available on this board.
Would it be correct that matrix co-ordinates for 1u and 1.75u are 0,7 and 1,7 respectively?

You can view the standard layouts on the product page for the F62.

The matrix co-ordinates when the full size right shift keycap is install:
The full size shift uses matrix location 1,7.

0,7 - There is no flipper installed. A stabilizer insert for the shift key cap is installed.
1,7 - flipper installed.

The matrix co-ordinates for the spilt right shift:
0.7 - Smaller shift
1,7 - 1u key. Typically Fn (MO1)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can the '60_tsangan_hhkb" layout be changed to "60_ansi_tsangan_split_bs_rshift" to match the naming of the other tsangan community layouts.

I'm working on this amending this after my numerous Community Layout PRs have been merged. For now, 60_tsangan_hhkb is what it's called so recommend to stick with it 😉

@matthew-wolf-n4mtt
Copy link
Author

What is the next thing that needs to be done?

keyboards/model_f_labs/f62/readme.md Show resolved Hide resolved

make model_f_labs/f62/wcass:default

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).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add instructions on how to enter the bootloader, to flash new firmware? This is needed, as a new user may not be aware of how to enter to bootloader to flash new firmware.

Eg:

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bootloader details added to readme.md.

@matthew-wolf-n4mtt
Copy link
Author

What is the next thing I need to do?

@matthew-wolf-n4mtt
Copy link
Author

I updated the readme over a month ago. What is the next thing needs to happen?

@matthew-wolf-n4mtt
Copy link
Author

I want to have this pull request accepted before the one year anniversary of it being opened.

@Wim4rk
Copy link

Wim4rk commented Jun 12, 2024

Hi,
The new model f keyboards really need to get QMK support running again. It hasn't since 18.10 or so. The merging of this PR would also make it easy to start working on f77 and other versions.
Please consider merging this PR.

@matthew-wolf-n4mtt
Copy link
Author

Hi, The new model f keyboards really need to get QMK support running again. It hasn't since 18.10 or so. The merging of this PR would also make it easy to start working on f77 and other versions. Please consider merging this PR.

I have have a PR for the F77 that is dependent on this PR to being approved.

@@ -0,0 +1,5 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
BOOTMAGIC_ENABLE = no
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bootmagic gets force enabled if via is enabled, setting this to "no" isn't enough to disable bootmagic.

If you absolutely need to disable bootmagic... adding this is the best way:

void bootmagic_scan(void) {}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
keyboard keymap via Adds via keymap and/or updates keyboard for via support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants