You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

887 lines
43 KiB

KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
KC60 Layout Standardization and Cleanup (#22125) * Refactor `dbroqua` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `dbroqua_hhkb` keymap - use `layer_names` enum - use QMK-native alias for `KC_TRNS` - apply four-space indent - grid-align keycodes - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Touch-up `default` keymap - fix keycode grid alignment [style] * Refactor `sgoodwin` keymap - grid-align keycodes - apply four-space indent - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Refactor `stanleylai` keymap - delete `config.h` (use RGB config from keyboard `info.json`) - fixes non-compilation - use `layer_names` enum - use four-space indent - update keycode grid alignment - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [bugfix] [refactor] * Touch-up `via` keymap - fix keycode grid alignment [style] * Refactor `wigguno` keymap - use four-space indent - use QMK-native keycode alias for `KC_DELETE` - refactor keymap to use `LAYOUT_all` macro. - The keycode for position [4, 9] (right half of Split Backspace) moves to the top row. - The keycodes for positions [3, 12] and [3, 13] (1.75u/1u Split RShift) switch positions. [refactor] * Remove `LAYOUT` macro Superseded by `LAYOUT_all`. [chore] * Add `LAYOUT_60_ansi_split_bs_rshift` [enhancement] * Add `LAYOUT_60_tsangan_hhkb` [enhancement] * Add `LAYOUT_60_ansi_tsangan` [enhancement] * Add `LAYOUT_60_iso_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso` [enhancement] * Add `LAYOUT_60_iso_tsangan_split_bs_rshift` [enhancement] * Add `LAYOUT_60_iso_tsangan` [enhancement] * Add `LAYOUT_60_hhkb` [enhancement] * Add `LAYOUT_60_true_hhkb` [enhancement] * Add layout/matrix diagram [docs] * Add `LAYOUT_60_abnt2` [enhancement] * Extend Community Layout support Add support for community layouts: - `60_ansi_split_bs_rshift` - `60_ansi_tsangan` - `60_tsangan_hhkb` - `60_hhkb` - `60_abnt2` - `60_iso` - `60_iso_split_bs_rshift` - `60_iso_tsangan` [enhancement] * Fix `LAYOUT_60_abnt2` support [bugfix]
7 months ago
  1. {
  2. "keyboard_name": "KC60",
  3. "manufacturer": "NPKC",
  4. "url": "",
  5. "maintainer": "qmk",
  6. "usb": {
  7. "vid": "0x530A",
  8. "pid": "0x6FFC",
  9. "device_version": "0.0.1"
  10. },
  11. "matrix_pins": {
  12. "cols": ["F0", "F1", "E6", "C7", "C6", "B7", "D4", "B1", "B0", "B5", "B4", "D7", "D6", "B3"],
  13. "rows": ["D0", "D1", "F6", "F7", "D5"]
  14. },
  15. "diode_direction": "COL2ROW",
  16. "backlight": {
  17. "pin": "B6",
  18. "levels": 5,
  19. "breathing": true
  20. },
  21. "rgblight": {
  22. "saturation_steps": 8,
  23. "brightness_steps": 8,
  24. "led_count": 16,
  25. "sleep": true,
  26. "animations": {
  27. "breathing": true,
  28. "rainbow_mood": true,
  29. "rainbow_swirl": true,
  30. "snake": true,
  31. "knight": true,
  32. "christmas": true,
  33. "static_gradient": true,
  34. "rgb_test": true,
  35. "alternating": true,
  36. "twinkle": true
  37. }
  38. },
  39. "ws2812": {
  40. "pin": "F5"
  41. },
  42. "processor": "atmega32u4",
  43. "bootloader": "atmel-dfu",
  44. "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_hhkb", "60_abnt2", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"],
  45. "layouts": {
  46. "LAYOUT_all": {
  47. "layout": [
  48. {"matrix": [0, 0], "x": 0, "y": 0},
  49. {"matrix": [0, 1], "x": 1, "y": 0},
  50. {"matrix": [0, 2], "x": 2, "y": 0},
  51. {"matrix": [0, 3], "x": 3, "y": 0},
  52. {"matrix": [0, 4], "x": 4, "y": 0},
  53. {"matrix": [0, 5], "x": 5, "y": 0},
  54. {"matrix": [0, 6], "x": 6, "y": 0},
  55. {"matrix": [0, 7], "x": 7, "y": 0},
  56. {"matrix": [0, 8], "x": 8, "y": 0},
  57. {"matrix": [0, 9], "x": 9, "y": 0},
  58. {"matrix": [0, 10], "x": 10, "y": 0},
  59. {"matrix": [0, 11], "x": 11, "y": 0},
  60. {"matrix": [0, 12], "x": 12, "y": 0},
  61. {"matrix": [0, 13], "x": 13, "y": 0},
  62. {"matrix": [4, 9], "x": 14, "y": 0},
  63. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  64. {"matrix": [1, 1], "x": 1.5, "y": 1},
  65. {"matrix": [1, 2], "x": 2.5, "y": 1},
  66. {"matrix": [1, 3], "x": 3.5, "y": 1},
  67. {"matrix": [1, 4], "x": 4.5, "y": 1},
  68. {"matrix": [1, 5], "x": 5.5, "y": 1},
  69. {"matrix": [1, 6], "x": 6.5, "y": 1},
  70. {"matrix": [1, 7], "x": 7.5, "y": 1},
  71. {"matrix": [1, 8], "x": 8.5, "y": 1},
  72. {"matrix": [1, 9], "x": 9.5, "y": 1},
  73. {"matrix": [1, 10], "x": 10.5, "y": 1},
  74. {"matrix": [1, 11], "x": 11.5, "y": 1},
  75. {"matrix": [1, 12], "x": 12.5, "y": 1},
  76. {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
  77. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  78. {"matrix": [2, 1], "x": 1.75, "y": 2},
  79. {"matrix": [2, 2], "x": 2.75, "y": 2},
  80. {"matrix": [2, 3], "x": 3.75, "y": 2},
  81. {"matrix": [2, 4], "x": 4.75, "y": 2},
  82. {"matrix": [2, 5], "x": 5.75, "y": 2},
  83. {"matrix": [2, 6], "x": 6.75, "y": 2},
  84. {"matrix": [2, 7], "x": 7.75, "y": 2},
  85. {"matrix": [2, 8], "x": 8.75, "y": 2},
  86. {"matrix": [2, 9], "x": 9.75, "y": 2},
  87. {"matrix": [2, 10], "x": 10.75, "y": 2},
  88. {"matrix": [2, 11], "x": 11.75, "y": 2},
  89. {"matrix": [2, 12], "x": 12.75, "y": 2},
  90. {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
  91. {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
  92. {"matrix": [3, 1], "x": 1.25, "y": 3},
  93. {"matrix": [3, 2], "x": 2.25, "y": 3},
  94. {"matrix": [3, 3], "x": 3.25, "y": 3},
  95. {"matrix": [3, 4], "x": 4.25, "y": 3},
  96. {"matrix": [3, 5], "x": 5.25, "y": 3},
  97. {"matrix": [3, 6], "x": 6.25, "y": 3},
  98. {"matrix": [3, 7], "x": 7.25, "y": 3},
  99. {"matrix": [3, 8], "x": 8.25, "y": 3},
  100. {"matrix": [3, 9], "x": 9.25, "y": 3},
  101. {"matrix": [3, 10], "x": 10.25, "y": 3},
  102. {"matrix": [3, 11], "x": 11.25, "y": 3},
  103. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
  104. {"matrix": [3, 12], "x": 14, "y": 3},
  105. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  106. {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  107. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  108. {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
  109. {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
  110. {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  111. {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  112. {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  113. ]
  114. },
  115. "LAYOUT_60_ansi": {
  116. "layout": [
  117. {"matrix": [0, 0], "x": 0, "y": 0},
  118. {"matrix": [0, 1], "x": 1, "y": 0},
  119. {"matrix": [0, 2], "x": 2, "y": 0},
  120. {"matrix": [0, 3], "x": 3, "y": 0},
  121. {"matrix": [0, 4], "x": 4, "y": 0},
  122. {"matrix": [0, 5], "x": 5, "y": 0},
  123. {"matrix": [0, 6], "x": 6, "y": 0},
  124. {"matrix": [0, 7], "x": 7, "y": 0},
  125. {"matrix": [0, 8], "x": 8, "y": 0},
  126. {"matrix": [0, 9], "x": 9, "y": 0},
  127. {"matrix": [0, 10], "x": 10, "y": 0},
  128. {"matrix": [0, 11], "x": 11, "y": 0},
  129. {"matrix": [0, 12], "x": 12, "y": 0},
  130. {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
  131. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  132. {"matrix": [1, 1], "x": 1.5, "y": 1},
  133. {"matrix": [1, 2], "x": 2.5, "y": 1},
  134. {"matrix": [1, 3], "x": 3.5, "y": 1},
  135. {"matrix": [1, 4], "x": 4.5, "y": 1},
  136. {"matrix": [1, 5], "x": 5.5, "y": 1},
  137. {"matrix": [1, 6], "x": 6.5, "y": 1},
  138. {"matrix": [1, 7], "x": 7.5, "y": 1},
  139. {"matrix": [1, 8], "x": 8.5, "y": 1},
  140. {"matrix": [1, 9], "x": 9.5, "y": 1},
  141. {"matrix": [1, 10], "x": 10.5, "y": 1},
  142. {"matrix": [1, 11], "x": 11.5, "y": 1},
  143. {"matrix": [1, 12], "x": 12.5, "y": 1},
  144. {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
  145. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  146. {"matrix": [2, 1], "x": 1.75, "y": 2},
  147. {"matrix": [2, 2], "x": 2.75, "y": 2},
  148. {"matrix": [2, 3], "x": 3.75, "y": 2},
  149. {"matrix": [2, 4], "x": 4.75, "y": 2},
  150. {"matrix": [2, 5], "x": 5.75, "y": 2},
  151. {"matrix": [2, 6], "x": 6.75, "y": 2},
  152. {"matrix": [2, 7], "x": 7.75, "y": 2},
  153. {"matrix": [2, 8], "x": 8.75, "y": 2},
  154. {"matrix": [2, 9], "x": 9.75, "y": 2},
  155. {"matrix": [2, 10], "x": 10.75, "y": 2},
  156. {"matrix": [2, 11], "x": 11.75, "y": 2},
  157. {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  158. {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  159. {"matrix": [3, 2], "x": 2.25, "y": 3},
  160. {"matrix": [3, 3], "x": 3.25, "y": 3},
  161. {"matrix": [3, 4], "x": 4.25, "y": 3},
  162. {"matrix": [3, 5], "x": 5.25, "y": 3},
  163. {"matrix": [3, 6], "x": 6.25, "y": 3},
  164. {"matrix": [3, 7], "x": 7.25, "y": 3},
  165. {"matrix": [3, 8], "x": 8.25, "y": 3},
  166. {"matrix": [3, 9], "x": 9.25, "y": 3},
  167. {"matrix": [3, 10], "x": 10.25, "y": 3},
  168. {"matrix": [3, 11], "x": 11.25, "y": 3},
  169. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
  170. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  171. {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  172. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  173. {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
  174. {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
  175. {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  176. {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  177. {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  178. ]
  179. },
  180. "LAYOUT_60_ansi_split_bs_rshift": {
  181. "layout": [
  182. {"matrix": [0, 0], "x": 0, "y": 0},
  183. {"matrix": [0, 1], "x": 1, "y": 0},
  184. {"matrix": [0, 2], "x": 2, "y": 0},
  185. {"matrix": [0, 3], "x": 3, "y": 0},
  186. {"matrix": [0, 4], "x": 4, "y": 0},
  187. {"matrix": [0, 5], "x": 5, "y": 0},
  188. {"matrix": [0, 6], "x": 6, "y": 0},
  189. {"matrix": [0, 7], "x": 7, "y": 0},
  190. {"matrix": [0, 8], "x": 8, "y": 0},
  191. {"matrix": [0, 9], "x": 9, "y": 0},
  192. {"matrix": [0, 10], "x": 10, "y": 0},
  193. {"matrix": [0, 11], "x": 11, "y": 0},
  194. {"matrix": [0, 12], "x": 12, "y": 0},
  195. {"matrix": [0, 13], "x": 13, "y": 0},
  196. {"matrix": [4, 9], "x": 14, "y": 0},
  197. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  198. {"matrix": [1, 1], "x": 1.5, "y": 1},
  199. {"matrix": [1, 2], "x": 2.5, "y": 1},
  200. {"matrix": [1, 3], "x": 3.5, "y": 1},
  201. {"matrix": [1, 4], "x": 4.5, "y": 1},
  202. {"matrix": [1, 5], "x": 5.5, "y": 1},
  203. {"matrix": [1, 6], "x": 6.5, "y": 1},
  204. {"matrix": [1, 7], "x": 7.5, "y": 1},
  205. {"matrix": [1, 8], "x": 8.5, "y": 1},
  206. {"matrix": [1, 9], "x": 9.5, "y": 1},
  207. {"matrix": [1, 10], "x": 10.5, "y": 1},
  208. {"matrix": [1, 11], "x": 11.5, "y": 1},
  209. {"matrix": [1, 12], "x": 12.5, "y": 1},
  210. {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
  211. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  212. {"matrix": [2, 1], "x": 1.75, "y": 2},
  213. {"matrix": [2, 2], "x": 2.75, "y": 2},
  214. {"matrix": [2, 3], "x": 3.75, "y": 2},
  215. {"matrix": [2, 4], "x": 4.75, "y": 2},
  216. {"matrix": [2, 5], "x": 5.75, "y": 2},
  217. {"matrix": [2, 6], "x": 6.75, "y": 2},
  218. {"matrix": [2, 7], "x": 7.75, "y": 2},
  219. {"matrix": [2, 8], "x": 8.75, "y": 2},
  220. {"matrix": [2, 9], "x": 9.75, "y": 2},
  221. {"matrix": [2, 10], "x": 10.75, "y": 2},
  222. {"matrix": [2, 11], "x": 11.75, "y": 2},
  223. {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  224. {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  225. {"matrix": [3, 2], "x": 2.25, "y": 3},
  226. {"matrix": [3, 3], "x": 3.25, "y": 3},
  227. {"matrix": [3, 4], "x": 4.25, "y": 3},
  228. {"matrix": [3, 5], "x": 5.25, "y": 3},
  229. {"matrix": [3, 6], "x": 6.25, "y": 3},
  230. {"matrix": [3, 7], "x": 7.25, "y": 3},
  231. {"matrix": [3, 8], "x": 8.25, "y": 3},
  232. {"matrix": [3, 9], "x": 9.25, "y": 3},
  233. {"matrix": [3, 10], "x": 10.25, "y": 3},
  234. {"matrix": [3, 11], "x": 11.25, "y": 3},
  235. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
  236. {"matrix": [3, 12], "x": 14, "y": 3},
  237. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  238. {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  239. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  240. {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
  241. {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
  242. {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  243. {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  244. {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  245. ]
  246. },
  247. "LAYOUT_60_ansi_tsangan": {
  248. "layout": [
  249. {"matrix": [0, 0], "x": 0, "y": 0},
  250. {"matrix": [0, 1], "x": 1, "y": 0},
  251. {"matrix": [0, 2], "x": 2, "y": 0},
  252. {"matrix": [0, 3], "x": 3, "y": 0},
  253. {"matrix": [0, 4], "x": 4, "y": 0},
  254. {"matrix": [0, 5], "x": 5, "y": 0},
  255. {"matrix": [0, 6], "x": 6, "y": 0},
  256. {"matrix": [0, 7], "x": 7, "y": 0},
  257. {"matrix": [0, 8], "x": 8, "y": 0},
  258. {"matrix": [0, 9], "x": 9, "y": 0},
  259. {"matrix": [0, 10], "x": 10, "y": 0},
  260. {"matrix": [0, 11], "x": 11, "y": 0},
  261. {"matrix": [0, 12], "x": 12, "y": 0},
  262. {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
  263. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  264. {"matrix": [1, 1], "x": 1.5, "y": 1},
  265. {"matrix": [1, 2], "x": 2.5, "y": 1},
  266. {"matrix": [1, 3], "x": 3.5, "y": 1},
  267. {"matrix": [1, 4], "x": 4.5, "y": 1},
  268. {"matrix": [1, 5], "x": 5.5, "y": 1},
  269. {"matrix": [1, 6], "x": 6.5, "y": 1},
  270. {"matrix": [1, 7], "x": 7.5, "y": 1},
  271. {"matrix": [1, 8], "x": 8.5, "y": 1},
  272. {"matrix": [1, 9], "x": 9.5, "y": 1},
  273. {"matrix": [1, 10], "x": 10.5, "y": 1},
  274. {"matrix": [1, 11], "x": 11.5, "y": 1},
  275. {"matrix": [1, 12], "x": 12.5, "y": 1},
  276. {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
  277. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  278. {"matrix": [2, 1], "x": 1.75, "y": 2},
  279. {"matrix": [2, 2], "x": 2.75, "y": 2},
  280. {"matrix": [2, 3], "x": 3.75, "y": 2},
  281. {"matrix": [2, 4], "x": 4.75, "y": 2},
  282. {"matrix": [2, 5], "x": 5.75, "y": 2},
  283. {"matrix": [2, 6], "x": 6.75, "y": 2},
  284. {"matrix": [2, 7], "x": 7.75, "y": 2},
  285. {"matrix": [2, 8], "x": 8.75, "y": 2},
  286. {"matrix": [2, 9], "x": 9.75, "y": 2},
  287. {"matrix": [2, 10], "x": 10.75, "y": 2},
  288. {"matrix": [2, 11], "x": 11.75, "y": 2},
  289. {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  290. {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  291. {"matrix": [3, 2], "x": 2.25, "y": 3},
  292. {"matrix": [3, 3], "x": 3.25, "y": 3},
  293. {"matrix": [3, 4], "x": 4.25, "y": 3},
  294. {"matrix": [3, 5], "x": 5.25, "y": 3},
  295. {"matrix": [3, 6], "x": 6.25, "y": 3},
  296. {"matrix": [3, 7], "x": 7.25, "y": 3},
  297. {"matrix": [3, 8], "x": 8.25, "y": 3},
  298. {"matrix": [3, 9], "x": 9.25, "y": 3},
  299. {"matrix": [3, 10], "x": 10.25, "y": 3},
  300. {"matrix": [3, 11], "x": 11.25, "y": 3},
  301. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
  302. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
  303. {"matrix": [4, 1], "x": 1.5, "y": 4},
  304. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  305. {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
  306. {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  307. {"matrix": [4, 12], "x": 12.5, "y": 4},
  308. {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
  309. ]
  310. },
  311. "LAYOUT_60_tsangan_hhkb": {
  312. "layout": [
  313. {"matrix": [0, 0], "x": 0, "y": 0},
  314. {"matrix": [0, 1], "x": 1, "y": 0},
  315. {"matrix": [0, 2], "x": 2, "y": 0},
  316. {"matrix": [0, 3], "x": 3, "y": 0},
  317. {"matrix": [0, 4], "x": 4, "y": 0},
  318. {"matrix": [0, 5], "x": 5, "y": 0},
  319. {"matrix": [0, 6], "x": 6, "y": 0},
  320. {"matrix": [0, 7], "x": 7, "y": 0},
  321. {"matrix": [0, 8], "x": 8, "y": 0},
  322. {"matrix": [0, 9], "x": 9, "y": 0},
  323. {"matrix": [0, 10], "x": 10, "y": 0},
  324. {"matrix": [0, 11], "x": 11, "y": 0},
  325. {"matrix": [0, 12], "x": 12, "y": 0},
  326. {"matrix": [0, 13], "x": 13, "y": 0},
  327. {"matrix": [4, 9], "x": 14, "y": 0},
  328. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  329. {"matrix": [1, 1], "x": 1.5, "y": 1},
  330. {"matrix": [1, 2], "x": 2.5, "y": 1},
  331. {"matrix": [1, 3], "x": 3.5, "y": 1},
  332. {"matrix": [1, 4], "x": 4.5, "y": 1},
  333. {"matrix": [1, 5], "x": 5.5, "y": 1},
  334. {"matrix": [1, 6], "x": 6.5, "y": 1},
  335. {"matrix": [1, 7], "x": 7.5, "y": 1},
  336. {"matrix": [1, 8], "x": 8.5, "y": 1},
  337. {"matrix": [1, 9], "x": 9.5, "y": 1},
  338. {"matrix": [1, 10], "x": 10.5, "y": 1},
  339. {"matrix": [1, 11], "x": 11.5, "y": 1},
  340. {"matrix": [1, 12], "x": 12.5, "y": 1},
  341. {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
  342. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  343. {"matrix": [2, 1], "x": 1.75, "y": 2},
  344. {"matrix": [2, 2], "x": 2.75, "y": 2},
  345. {"matrix": [2, 3], "x": 3.75, "y": 2},
  346. {"matrix": [2, 4], "x": 4.75, "y": 2},
  347. {"matrix": [2, 5], "x": 5.75, "y": 2},
  348. {"matrix": [2, 6], "x": 6.75, "y": 2},
  349. {"matrix": [2, 7], "x": 7.75, "y": 2},
  350. {"matrix": [2, 8], "x": 8.75, "y": 2},
  351. {"matrix": [2, 9], "x": 9.75, "y": 2},
  352. {"matrix": [2, 10], "x": 10.75, "y": 2},
  353. {"matrix": [2, 11], "x": 11.75, "y": 2},
  354. {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  355. {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  356. {"matrix": [3, 2], "x": 2.25, "y": 3},
  357. {"matrix": [3, 3], "x": 3.25, "y": 3},
  358. {"matrix": [3, 4], "x": 4.25, "y": 3},
  359. {"matrix": [3, 5], "x": 5.25, "y": 3},
  360. {"matrix": [3, 6], "x": 6.25, "y": 3},
  361. {"matrix": [3, 7], "x": 7.25, "y": 3},
  362. {"matrix": [3, 8], "x": 8.25, "y": 3},
  363. {"matrix": [3, 9], "x": 9.25, "y": 3},
  364. {"matrix": [3, 10], "x": 10.25, "y": 3},
  365. {"matrix": [3, 11], "x": 11.25, "y": 3},
  366. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
  367. {"matrix": [3, 12], "x": 14, "y": 3},
  368. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
  369. {"matrix": [4, 1], "x": 1.5, "y": 4},
  370. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  371. {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
  372. {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  373. {"matrix": [4, 12], "x": 12.5, "y": 4},
  374. {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
  375. ]
  376. },
  377. "LAYOUT_60_hhkb": {
  378. "layout": [
  379. {"matrix": [0, 0], "x": 0, "y": 0},
  380. {"matrix": [0, 1], "x": 1, "y": 0},
  381. {"matrix": [0, 2], "x": 2, "y": 0},
  382. {"matrix": [0, 3], "x": 3, "y": 0},
  383. {"matrix": [0, 4], "x": 4, "y": 0},
  384. {"matrix": [0, 5], "x": 5, "y": 0},
  385. {"matrix": [0, 6], "x": 6, "y": 0},
  386. {"matrix": [0, 7], "x": 7, "y": 0},
  387. {"matrix": [0, 8], "x": 8, "y": 0},
  388. {"matrix": [0, 9], "x": 9, "y": 0},
  389. {"matrix": [0, 10], "x": 10, "y": 0},
  390. {"matrix": [0, 11], "x": 11, "y": 0},
  391. {"matrix": [0, 12], "x": 12, "y": 0},
  392. {"matrix": [0, 13], "x": 13, "y": 0},
  393. {"matrix": [4, 9], "x": 14, "y": 0},
  394. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  395. {"matrix": [1, 1], "x": 1.5, "y": 1},
  396. {"matrix": [1, 2], "x": 2.5, "y": 1},
  397. {"matrix": [1, 3], "x": 3.5, "y": 1},
  398. {"matrix": [1, 4], "x": 4.5, "y": 1},
  399. {"matrix": [1, 5], "x": 5.5, "y": 1},
  400. {"matrix": [1, 6], "x": 6.5, "y": 1},
  401. {"matrix": [1, 7], "x": 7.5, "y": 1},
  402. {"matrix": [1, 8], "x": 8.5, "y": 1},
  403. {"matrix": [1, 9], "x": 9.5, "y": 1},
  404. {"matrix": [1, 10], "x": 10.5, "y": 1},
  405. {"matrix": [1, 11], "x": 11.5, "y": 1},
  406. {"matrix": [1, 12], "x": 12.5, "y": 1},
  407. {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
  408. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  409. {"matrix": [2, 1], "x": 1.75, "y": 2},
  410. {"matrix": [2, 2], "x": 2.75, "y": 2},
  411. {"matrix": [2, 3], "x": 3.75, "y": 2},
  412. {"matrix": [2, 4], "x": 4.75, "y": 2},
  413. {"matrix": [2, 5], "x": 5.75, "y": 2},
  414. {"matrix": [2, 6], "x": 6.75, "y": 2},
  415. {"matrix": [2, 7], "x": 7.75, "y": 2},
  416. {"matrix": [2, 8], "x": 8.75, "y": 2},
  417. {"matrix": [2, 9], "x": 9.75, "y": 2},
  418. {"matrix": [2, 10], "x": 10.75, "y": 2},
  419. {"matrix": [2, 11], "x": 11.75, "y": 2},
  420. {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  421. {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  422. {"matrix": [3, 2], "x": 2.25, "y": 3},
  423. {"matrix": [3, 3], "x": 3.25, "y": 3},
  424. {"matrix": [3, 4], "x": 4.25, "y": 3},
  425. {"matrix": [3, 5], "x": 5.25, "y": 3},
  426. {"matrix": [3, 6], "x": 6.25, "y": 3},
  427. {"matrix": [3, 7], "x": 7.25, "y": 3},
  428. {"matrix": [3, 8], "x": 8.25, "y": 3},
  429. {"matrix": [3, 9], "x": 9.25, "y": 3},
  430. {"matrix": [3, 10], "x": 10.25, "y": 3},
  431. {"matrix": [3, 11], "x": 11.25, "y": 3},
  432. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
  433. {"matrix": [3, 12], "x": 14, "y": 3},
  434. {"matrix": [4, 1], "x": 1.5, "y": 4},
  435. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  436. {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
  437. {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  438. {"matrix": [4, 12], "x": 12.5, "y": 4}
  439. ]
  440. },
  441. "LAYOUT_60_true_hhkb": {
  442. "layout": [
  443. {"matrix": [0, 0], "x": 0, "y": 0},
  444. {"matrix": [0, 1], "x": 1, "y": 0},
  445. {"matrix": [0, 2], "x": 2, "y": 0},
  446. {"matrix": [0, 3], "x": 3, "y": 0},
  447. {"matrix": [0, 4], "x": 4, "y": 0},
  448. {"matrix": [0, 5], "x": 5, "y": 0},
  449. {"matrix": [0, 6], "x": 6, "y": 0},
  450. {"matrix": [0, 7], "x": 7, "y": 0},
  451. {"matrix": [0, 8], "x": 8, "y": 0},
  452. {"matrix": [0, 9], "x": 9, "y": 0},
  453. {"matrix": [0, 10], "x": 10, "y": 0},
  454. {"matrix": [0, 11], "x": 11, "y": 0},
  455. {"matrix": [0, 12], "x": 12, "y": 0},
  456. {"matrix": [0, 13], "x": 13, "y": 0},
  457. {"matrix": [4, 9], "x": 14, "y": 0},
  458. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  459. {"matrix": [1, 1], "x": 1.5, "y": 1},
  460. {"matrix": [1, 2], "x": 2.5, "y": 1},
  461. {"matrix": [1, 3], "x": 3.5, "y": 1},
  462. {"matrix": [1, 4], "x": 4.5, "y": 1},
  463. {"matrix": [1, 5], "x": 5.5, "y": 1},
  464. {"matrix": [1, 6], "x": 6.5, "y": 1},
  465. {"matrix": [1, 7], "x": 7.5, "y": 1},
  466. {"matrix": [1, 8], "x": 8.5, "y": 1},
  467. {"matrix": [1, 9], "x": 9.5, "y": 1},
  468. {"matrix": [1, 10], "x": 10.5, "y": 1},
  469. {"matrix": [1, 11], "x": 11.5, "y": 1},
  470. {"matrix": [1, 12], "x": 12.5, "y": 1},
  471. {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
  472. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  473. {"matrix": [2, 1], "x": 1.75, "y": 2},
  474. {"matrix": [2, 2], "x": 2.75, "y": 2},
  475. {"matrix": [2, 3], "x": 3.75, "y": 2},
  476. {"matrix": [2, 4], "x": 4.75, "y": 2},
  477. {"matrix": [2, 5], "x": 5.75, "y": 2},
  478. {"matrix": [2, 6], "x": 6.75, "y": 2},
  479. {"matrix": [2, 7], "x": 7.75, "y": 2},
  480. {"matrix": [2, 8], "x": 8.75, "y": 2},
  481. {"matrix": [2, 9], "x": 9.75, "y": 2},
  482. {"matrix": [2, 10], "x": 10.75, "y": 2},
  483. {"matrix": [2, 11], "x": 11.75, "y": 2},
  484. {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  485. {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  486. {"matrix": [3, 2], "x": 2.25, "y": 3},
  487. {"matrix": [3, 3], "x": 3.25, "y": 3},
  488. {"matrix": [3, 4], "x": 4.25, "y": 3},
  489. {"matrix": [3, 5], "x": 5.25, "y": 3},
  490. {"matrix": [3, 6], "x": 6.25, "y": 3},
  491. {"matrix": [3, 7], "x": 7.25, "y": 3},
  492. {"matrix": [3, 8], "x": 8.25, "y": 3},
  493. {"matrix": [3, 9], "x": 9.25, "y": 3},
  494. {"matrix": [3, 10], "x": 10.25, "y": 3},
  495. {"matrix": [3, 11], "x": 11.25, "y": 3},
  496. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
  497. {"matrix": [3, 12], "x": 14, "y": 3},
  498. {"matrix": [4, 1], "x": 1.5, "y": 4},
  499. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  500. {"matrix": [4, 5], "x": 4, "y": 4, "w": 6},
  501. {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
  502. {"matrix": [4, 11], "x": 11.5, "y": 4}
  503. ]
  504. },
  505. "LAYOUT_60_abnt2": {
  506. "layout": [
  507. {"matrix": [0, 0], "x": 0, "y": 0},
  508. {"matrix": [0, 1], "x": 1, "y": 0},
  509. {"matrix": [0, 2], "x": 2, "y": 0},
  510. {"matrix": [0, 3], "x": 3, "y": 0},
  511. {"matrix": [0, 4], "x": 4, "y": 0},
  512. {"matrix": [0, 5], "x": 5, "y": 0},
  513. {"matrix": [0, 6], "x": 6, "y": 0},
  514. {"matrix": [0, 7], "x": 7, "y": 0},
  515. {"matrix": [0, 8], "x": 8, "y": 0},
  516. {"matrix": [0, 9], "x": 9, "y": 0},
  517. {"matrix": [0, 10], "x": 10, "y": 0},
  518. {"matrix": [0, 11], "x": 11, "y": 0},
  519. {"matrix": [0, 12], "x": 12, "y": 0},
  520. {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
  521. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  522. {"matrix": [1, 1], "x": 1.5, "y": 1},
  523. {"matrix": [1, 2], "x": 2.5, "y": 1},
  524. {"matrix": [1, 3], "x": 3.5, "y": 1},
  525. {"matrix": [1, 4], "x": 4.5, "y": 1},
  526. {"matrix": [1, 5], "x": 5.5, "y": 1},
  527. {"matrix": [1, 6], "x": 6.5, "y": 1},
  528. {"matrix": [1, 7], "x": 7.5, "y": 1},
  529. {"matrix": [1, 8], "x": 8.5, "y": 1},
  530. {"matrix": [1, 9], "x": 9.5, "y": 1},
  531. {"matrix": [1, 10], "x": 10.5, "y": 1},
  532. {"matrix": [1, 11], "x": 11.5, "y": 1},
  533. {"matrix": [1, 12], "x": 12.5, "y": 1},
  534. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  535. {"matrix": [2, 1], "x": 1.75, "y": 2},
  536. {"matrix": [2, 2], "x": 2.75, "y": 2},
  537. {"matrix": [2, 3], "x": 3.75, "y": 2},
  538. {"matrix": [2, 4], "x": 4.75, "y": 2},
  539. {"matrix": [2, 5], "x": 5.75, "y": 2},
  540. {"matrix": [2, 6], "x": 6.75, "y": 2},
  541. {"matrix": [2, 7], "x": 7.75, "y": 2},
  542. {"matrix": [2, 8], "x": 8.75, "y": 2},
  543. {"matrix": [2, 9], "x": 9.75, "y": 2},
  544. {"matrix": [2, 10], "x": 10.75, "y": 2},
  545. {"matrix": [2, 11], "x": 11.75, "y": 2},
  546. {"matrix": [2, 12], "x": 12.75, "y": 2},
  547. {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
  548. {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
  549. {"matrix": [3, 1], "x": 1.25, "y": 3},
  550. {"matrix": [3, 2], "x": 2.25, "y": 3},
  551. {"matrix": [3, 3], "x": 3.25, "y": 3},
  552. {"matrix": [3, 4], "x": 4.25, "y": 3},
  553. {"matrix": [3, 5], "x": 5.25, "y": 3},
  554. {"matrix": [3, 6], "x": 6.25, "y": 3},
  555. {"matrix": [3, 7], "x": 7.25, "y": 3},
  556. {"matrix": [3, 8], "x": 8.25, "y": 3},
  557. {"matrix": [3, 9], "x": 9.25, "y": 3},
  558. {"matrix": [3, 10], "x": 10.25, "y": 3},
  559. {"matrix": [3, 11], "x": 11.25, "y": 3},
  560. {"matrix": [3, 12], "x": 12.25, "y": 3},
  561. {"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.75},
  562. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  563. {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  564. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  565. {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
  566. {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
  567. {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  568. {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  569. {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  570. ]
  571. },
  572. "LAYOUT_60_iso": {
  573. "layout": [
  574. {"matrix": [0, 0], "x": 0, "y": 0},
  575. {"matrix": [0, 1], "x": 1, "y": 0},
  576. {"matrix": [0, 2], "x": 2, "y": 0},
  577. {"matrix": [0, 3], "x": 3, "y": 0},
  578. {"matrix": [0, 4], "x": 4, "y": 0},
  579. {"matrix": [0, 5], "x": 5, "y": 0},
  580. {"matrix": [0, 6], "x": 6, "y": 0},
  581. {"matrix": [0, 7], "x": 7, "y": 0},
  582. {"matrix": [0, 8], "x": 8, "y": 0},
  583. {"matrix": [0, 9], "x": 9, "y": 0},
  584. {"matrix": [0, 10], "x": 10, "y": 0},
  585. {"matrix": [0, 11], "x": 11, "y": 0},
  586. {"matrix": [0, 12], "x": 12, "y": 0},
  587. {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
  588. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  589. {"matrix": [1, 1], "x": 1.5, "y": 1},
  590. {"matrix": [1, 2], "x": 2.5, "y": 1},
  591. {"matrix": [1, 3], "x": 3.5, "y": 1},
  592. {"matrix": [1, 4], "x": 4.5, "y": 1},
  593. {"matrix": [1, 5], "x": 5.5, "y": 1},
  594. {"matrix": [1, 6], "x": 6.5, "y": 1},
  595. {"matrix": [1, 7], "x": 7.5, "y": 1},
  596. {"matrix": [1, 8], "x": 8.5, "y": 1},
  597. {"matrix": [1, 9], "x": 9.5, "y": 1},
  598. {"matrix": [1, 10], "x": 10.5, "y": 1},
  599. {"matrix": [1, 11], "x": 11.5, "y": 1},
  600. {"matrix": [1, 12], "x": 12.5, "y": 1},
  601. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  602. {"matrix": [2, 1], "x": 1.75, "y": 2},
  603. {"matrix": [2, 2], "x": 2.75, "y": 2},
  604. {"matrix": [2, 3], "x": 3.75, "y": 2},
  605. {"matrix": [2, 4], "x": 4.75, "y": 2},
  606. {"matrix": [2, 5], "x": 5.75, "y": 2},
  607. {"matrix": [2, 6], "x": 6.75, "y": 2},
  608. {"matrix": [2, 7], "x": 7.75, "y": 2},
  609. {"matrix": [2, 8], "x": 8.75, "y": 2},
  610. {"matrix": [2, 9], "x": 9.75, "y": 2},
  611. {"matrix": [2, 10], "x": 10.75, "y": 2},
  612. {"matrix": [2, 11], "x": 11.75, "y": 2},
  613. {"matrix": [2, 12], "x": 12.75, "y": 2},
  614. {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
  615. {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
  616. {"matrix": [3, 1], "x": 1.25, "y": 3},
  617. {"matrix": [3, 2], "x": 2.25, "y": 3},
  618. {"matrix": [3, 3], "x": 3.25, "y": 3},
  619. {"matrix": [3, 4], "x": 4.25, "y": 3},
  620. {"matrix": [3, 5], "x": 5.25, "y": 3},
  621. {"matrix": [3, 6], "x": 6.25, "y": 3},
  622. {"matrix": [3, 7], "x": 7.25, "y": 3},
  623. {"matrix": [3, 8], "x": 8.25, "y": 3},
  624. {"matrix": [3, 9], "x": 9.25, "y": 3},
  625. {"matrix": [3, 10], "x": 10.25, "y": 3},
  626. {"matrix": [3, 11], "x": 11.25, "y": 3},
  627. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
  628. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  629. {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  630. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  631. {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
  632. {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
  633. {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  634. {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  635. {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  636. ]
  637. },
  638. "LAYOUT_60_iso_split_bs_rshift": {
  639. "layout": [
  640. {"matrix": [0, 0], "x": 0, "y": 0},
  641. {"matrix": [0, 1], "x": 1, "y": 0},
  642. {"matrix": [0, 2], "x": 2, "y": 0},
  643. {"matrix": [0, 3], "x": 3, "y": 0},
  644. {"matrix": [0, 4], "x": 4, "y": 0},
  645. {"matrix": [0, 5], "x": 5, "y": 0},
  646. {"matrix": [0, 6], "x": 6, "y": 0},
  647. {"matrix": [0, 7], "x": 7, "y": 0},
  648. {"matrix": [0, 8], "x": 8, "y": 0},
  649. {"matrix": [0, 9], "x": 9, "y": 0},
  650. {"matrix": [0, 10], "x": 10, "y": 0},
  651. {"matrix": [0, 11], "x": 11, "y": 0},
  652. {"matrix": [0, 12], "x": 12, "y": 0},
  653. {"matrix": [0, 13], "x": 13, "y": 0},
  654. {"matrix": [4, 9], "x": 14, "y": 0},
  655. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  656. {"matrix": [1, 1], "x": 1.5, "y": 1},
  657. {"matrix": [1, 2], "x": 2.5, "y": 1},
  658. {"matrix": [1, 3], "x": 3.5, "y": 1},
  659. {"matrix": [1, 4], "x": 4.5, "y": 1},
  660. {"matrix": [1, 5], "x": 5.5, "y": 1},
  661. {"matrix": [1, 6], "x": 6.5, "y": 1},
  662. {"matrix": [1, 7], "x": 7.5, "y": 1},
  663. {"matrix": [1, 8], "x": 8.5, "y": 1},
  664. {"matrix": [1, 9], "x": 9.5, "y": 1},
  665. {"matrix": [1, 10], "x": 10.5, "y": 1},
  666. {"matrix": [1, 11], "x": 11.5, "y": 1},
  667. {"matrix": [1, 12], "x": 12.5, "y": 1},
  668. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  669. {"matrix": [2, 1], "x": 1.75, "y": 2},
  670. {"matrix": [2, 2], "x": 2.75, "y": 2},
  671. {"matrix": [2, 3], "x": 3.75, "y": 2},
  672. {"matrix": [2, 4], "x": 4.75, "y": 2},
  673. {"matrix": [2, 5], "x": 5.75, "y": 2},
  674. {"matrix": [2, 6], "x": 6.75, "y": 2},
  675. {"matrix": [2, 7], "x": 7.75, "y": 2},
  676. {"matrix": [2, 8], "x": 8.75, "y": 2},
  677. {"matrix": [2, 9], "x": 9.75, "y": 2},
  678. {"matrix": [2, 10], "x": 10.75, "y": 2},
  679. {"matrix": [2, 11], "x": 11.75, "y": 2},
  680. {"matrix": [2, 12], "x": 12.75, "y": 2},
  681. {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
  682. {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
  683. {"matrix": [3, 1], "x": 1.25, "y": 3},
  684. {"matrix": [3, 2], "x": 2.25, "y": 3},
  685. {"matrix": [3, 3], "x": 3.25, "y": 3},
  686. {"matrix": [3, 4], "x": 4.25, "y": 3},
  687. {"matrix": [3, 5], "x": 5.25, "y": 3},
  688. {"matrix": [3, 6], "x": 6.25, "y": 3},
  689. {"matrix": [3, 7], "x": 7.25, "y": 3},
  690. {"matrix": [3, 8], "x": 8.25, "y": 3},
  691. {"matrix": [3, 9], "x": 9.25, "y": 3},
  692. {"matrix": [3, 10], "x": 10.25, "y": 3},
  693. {"matrix": [3, 11], "x": 11.25, "y": 3},
  694. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
  695. {"matrix": [3, 12], "x": 14, "y": 3},
  696. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  697. {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  698. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  699. {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
  700. {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
  701. {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  702. {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  703. {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  704. ]
  705. },
  706. "LAYOUT_60_iso_tsangan": {
  707. "layout": [
  708. {"matrix": [0, 0], "x": 0, "y": 0},
  709. {"matrix": [0, 1], "x": 1, "y": 0},
  710. {"matrix": [0, 2], "x": 2, "y": 0},
  711. {"matrix": [0, 3], "x": 3, "y": 0},
  712. {"matrix": [0, 4], "x": 4, "y": 0},
  713. {"matrix": [0, 5], "x": 5, "y": 0},
  714. {"matrix": [0, 6], "x": 6, "y": 0},
  715. {"matrix": [0, 7], "x": 7, "y": 0},
  716. {"matrix": [0, 8], "x": 8, "y": 0},
  717. {"matrix": [0, 9], "x": 9, "y": 0},
  718. {"matrix": [0, 10], "x": 10, "y": 0},
  719. {"matrix": [0, 11], "x": 11, "y": 0},
  720. {"matrix": [0, 12], "x": 12, "y": 0},
  721. {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
  722. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  723. {"matrix": [1, 1], "x": 1.5, "y": 1},
  724. {"matrix": [1, 2], "x": 2.5, "y": 1},
  725. {"matrix": [1, 3], "x": 3.5, "y": 1},
  726. {"matrix": [1, 4], "x": 4.5, "y": 1},
  727. {"matrix": [1, 5], "x": 5.5, "y": 1},
  728. {"matrix": [1, 6], "x": 6.5, "y": 1},
  729. {"matrix": [1, 7], "x": 7.5, "y": 1},
  730. {"matrix": [1, 8], "x": 8.5, "y": 1},
  731. {"matrix": [1, 9], "x": 9.5, "y": 1},
  732. {"matrix": [1, 10], "x": 10.5, "y": 1},
  733. {"matrix": [1, 11], "x": 11.5, "y": 1},
  734. {"matrix": [1, 12], "x": 12.5, "y": 1},
  735. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  736. {"matrix": [2, 1], "x": 1.75, "y": 2},
  737. {"matrix": [2, 2], "x": 2.75, "y": 2},
  738. {"matrix": [2, 3], "x": 3.75, "y": 2},
  739. {"matrix": [2, 4], "x": 4.75, "y": 2},
  740. {"matrix": [2, 5], "x": 5.75, "y": 2},
  741. {"matrix": [2, 6], "x": 6.75, "y": 2},
  742. {"matrix": [2, 7], "x": 7.75, "y": 2},
  743. {"matrix": [2, 8], "x": 8.75, "y": 2},
  744. {"matrix": [2, 9], "x": 9.75, "y": 2},
  745. {"matrix": [2, 10], "x": 10.75, "y": 2},
  746. {"matrix": [2, 11], "x": 11.75, "y": 2},
  747. {"matrix": [2, 12], "x": 12.75, "y": 2},
  748. {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
  749. {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
  750. {"matrix": [3, 1], "x": 1.25, "y": 3},
  751. {"matrix": [3, 2], "x": 2.25, "y": 3},
  752. {"matrix": [3, 3], "x": 3.25, "y": 3},
  753. {"matrix": [3, 4], "x": 4.25, "y": 3},
  754. {"matrix": [3, 5], "x": 5.25, "y": 3},
  755. {"matrix": [3, 6], "x": 6.25, "y": 3},
  756. {"matrix": [3, 7], "x": 7.25, "y": 3},
  757. {"matrix": [3, 8], "x": 8.25, "y": 3},
  758. {"matrix": [3, 9], "x": 9.25, "y": 3},
  759. {"matrix": [3, 10], "x": 10.25, "y": 3},
  760. {"matrix": [3, 11], "x": 11.25, "y": 3},
  761. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
  762. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
  763. {"matrix": [4, 1], "x": 1.5, "y": 4},
  764. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  765. {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
  766. {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  767. {"matrix": [4, 12], "x": 12.5, "y": 4},
  768. {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
  769. ]
  770. },
  771. "LAYOUT_60_iso_tsangan_split_bs_rshift": {
  772. "layout": [
  773. {"matrix": [0, 0], "x": 0, "y": 0},
  774. {"matrix": [0, 1], "x": 1, "y": 0},
  775. {"matrix": [0, 2], "x": 2, "y": 0},
  776. {"matrix": [0, 3], "x": 3, "y": 0},
  777. {"matrix": [0, 4], "x": 4, "y": 0},
  778. {"matrix": [0, 5], "x": 5, "y": 0},
  779. {"matrix": [0, 6], "x": 6, "y": 0},
  780. {"matrix": [0, 7], "x": 7, "y": 0},
  781. {"matrix": [0, 8], "x": 8, "y": 0},
  782. {"matrix": [0, 9], "x": 9, "y": 0},
  783. {"matrix": [0, 10], "x": 10, "y": 0},
  784. {"matrix": [0, 11], "x": 11, "y": 0},
  785. {"matrix": [0, 12], "x": 12, "y": 0},
  786. {"matrix": [0, 13], "x": 13, "y": 0},
  787. {"matrix": [4, 9], "x": 14, "y": 0},
  788. {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  789. {"matrix": [1, 1], "x": 1.5, "y": 1},
  790. {"matrix": [1, 2], "x": 2.5, "y": 1},
  791. {"matrix": [1, 3], "x": 3.5, "y": 1},
  792. {"matrix": [1, 4], "x": 4.5, "y": 1},
  793. {"matrix": [1, 5], "x": 5.5, "y": 1},
  794. {"matrix": [1, 6], "x": 6.5, "y": 1},
  795. {"matrix": [1, 7], "x": 7.5, "y": 1},
  796. {"matrix": [1, 8], "x": 8.5, "y": 1},
  797. {"matrix": [1, 9], "x": 9.5, "y": 1},
  798. {"matrix": [1, 10], "x": 10.5, "y": 1},
  799. {"matrix": [1, 11], "x": 11.5, "y": 1},
  800. {"matrix": [1, 12], "x": 12.5, "y": 1},
  801. {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  802. {"matrix": [2, 1], "x": 1.75, "y": 2},
  803. {"matrix": [2, 2], "x": 2.75, "y": 2},
  804. {"matrix": [2, 3], "x": 3.75, "y": 2},
  805. {"matrix": [2, 4], "x": 4.75, "y": 2},
  806. {"matrix": [2, 5], "x": 5.75, "y": 2},
  807. {"matrix": [2, 6], "x": 6.75, "y": 2},
  808. {"matrix": [2, 7], "x": 7.75, "y": 2},
  809. {"matrix": [2, 8], "x": 8.75, "y": 2},
  810. {"matrix": [2, 9], "x": 9.75, "y": 2},
  811. {"matrix": [2, 10], "x": 10.75, "y": 2},
  812. {"matrix": [2, 11], "x": 11.75, "y": 2},
  813. {"matrix": [2, 12], "x": 12.75, "y": 2},
  814. {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
  815. {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
  816. {"matrix": [3, 1], "x": 1.25, "y": 3},
  817. {"matrix": [3, 2], "x": 2.25, "y": 3},
  818. {"matrix": [3, 3], "x": 3.25, "y": 3},
  819. {"matrix": [3, 4], "x": 4.25, "y": 3},
  820. {"matrix": [3, 5], "x": 5.25, "y": 3},
  821. {"matrix": [3, 6], "x": 6.25, "y": 3},
  822. {"matrix": [3, 7], "x": 7.25, "y": 3},
  823. {"matrix": [3, 8], "x": 8.25, "y": 3},
  824. {"matrix": [3, 9], "x": 9.25, "y": 3},
  825. {"matrix": [3, 10], "x": 10.25, "y": 3},
  826. {"matrix": [3, 11], "x": 11.25, "y": 3},
  827. {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
  828. {"matrix": [3, 12], "x": 14, "y": 3},
  829. {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
  830. {"matrix": [4, 1], "x": 1.5, "y": 4},
  831. {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  832. {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
  833. {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  834. {"matrix": [4, 12], "x": 12.5, "y": 4},
  835. {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
  836. ]
  837. }
  838. }
  839. }