Merge remote-tracking branch 'upstream/develop' into comm_60_d

This commit is contained in:
Duncan Sutherland 2024-09-02 11:32:59 +01:00
commit eb2f02c1c9
443 changed files with 3714 additions and 75112 deletions

View File

@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */protocol/arm_atsam/*
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *

View File

@ -238,10 +238,6 @@ else
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c
endif
else ifeq ($(PLATFORM),ARM_ATSAM)
# arm_atsam EEPROM
OPT_DEFS += -DEEPROM_SAMD
SRC += eeprom_samd.c
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
@ -881,7 +877,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c
SRC += outputselect.c process_connection.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
SPI_DRIVER_REQUIRED = yes

View File

@ -43,25 +43,25 @@ ifneq ($(USE_CCACHE),no)
CC_PREFIX ?= ccache
endif
#---------------- Debug Options ----------------
DEBUG_ENABLE ?= no
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -ggdb3
CXXFLAGS += -ggdb3
ASFLAGS += -ggdb3
# Create a map file when debugging
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
#---------------- C Compiler Options ----------------
ifeq ($(strip $(LTO_ENABLE)), yes)
ifeq ($(PLATFORM),ARM_ATSAM)
$(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.)
$(info If unsure, set LTO_ENABLE = no.)
endif
CDEFS += -flto
CDEFS += -DLTO_ENABLE
endif
DEBUG_ENABLE ?= yes
ifeq ($(strip $(SKIP_DEBUG_INFO)),yes)
DEBUG_ENABLE=no
endif
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -g$(DEBUG)
endif
CFLAGS += $(CDEFS)
CFLAGS += -O$(OPT)
# add color
@ -83,9 +83,6 @@ CFLAGS += -fcommon
#---------------- C++ Compiler Options ----------------
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CXXFLAGS += -g$(DEBUG)
endif
CXXFLAGS += $(CXXDEFS)
CXXFLAGS += -O$(OPT)
# to suppress "warning: only initialized variables can be placed into program memory area"
@ -106,14 +103,10 @@ endif
#---------------- Linker Options ----------------
CREATE_MAP ?= yes
ifeq ($(CREATE_MAP),yes)
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
ifeq ($(VERBOSE_LD_CMD),yes)
LDFLAGS += -v
endif
#LDFLAGS += -Wl,--relax
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += -lm
@ -126,15 +119,11 @@ ADHLNS_ENABLE ?= no
ifeq ($(ADHLNS_ENABLE),yes)
# Avoid "Options to '-Xassembler' do not match" - only specify assembler options at LTO link time
ifeq ($(strip $(LTO_ENABLE)), yes)
LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
else
CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
ifeq ($(strip $(DEBUG_ENABLE)),yes)
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
else
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
endif

View File

@ -0,0 +1,109 @@
{
"ranges": {
"0x7780/0x003F": {
"define": "QK_CONNECTION"
}
}
"keycodes": {
"0x7780": {
"group": "connection",
"key": "QK_OUTPUT_NEXT",
"aliases": [
"OU_NEXT",
"OU_AUTO"
]
},
"0x7781": {
"group": "connection",
"key": "QK_OUTPUT_PREV",
"aliases": [
"OU_PREV"
]
},
"0x7782": {
"group": "connection",
"key": "QK_OUTPUT_NONE",
"aliases": [
"OU_NONE"
]
},
"0x7783": {
"group": "connection",
"key": "QK_OUTPUT_USB",
"aliases": [
"OU_USB"
]
},
"0x7784": {
"group": "connection",
"key": "QK_OUTPUT_2P4GHZ",
"aliases": [
"OU_2P4G"
]
},
"0x7785": {
"group": "connection",
"key": "QK_OUTPUT_BLUETOOTH",
"aliases": [
"OU_BT"
]
},
"0x7790": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_NEXT",
"aliases": [
"BT_NEXT"
]
},
"0x7791": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_PREV",
"aliases": [
"BT_PREV"
]
},
"0x7792": {
"group": "connection",
"key": "QK_BLUETOOTH_UNPAIR",
"aliases": [
"BT_UNPR"
]
}
"0x7793": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE1",
"aliases": [
"BT_PRF1"
]
},
"0x7794": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE2",
"aliases": [
"BT_PRF2"
]
},
"0x7795": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE3",
"aliases": [
"BT_PRF3"
]
},
"0x7796": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE4",
"aliases": [
"BT_PRF4"
]
},
"0x7797": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE5",
"aliases": [
"BT_PRF5"
]
},
}
}

View File

@ -0,0 +1,7 @@
{
"keycodes": {
"0x7C20": "!delete!", // old QK_OUTPUT_AUTO
"0x7C21": "!delete!", // old QK_OUTPUT_USB
"0x7C22": "!delete!", // old QK_OUTPUT_BLUETOOTH
}
}

View File

@ -4,7 +4,7 @@
August 2024 brings another maintenance release of QMK. Almost all PRs this cycle were to do with cleanup or re-organization of existing features and code.
One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the the VIA team's repo: `https://github.com/the-via/qmk_userspace_via` (link placeholder until transfer is completed).
One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository.
## Changes Requiring User Action
@ -76,7 +76,7 @@ In line with the [notice period](../support_deprecation_policy#how-much-advance-
### Migration of VIA keymaps to VIA team control
Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to `https://github.com/the-via/qmk_userspace_via` (link placeholder until transfer is completed).
Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository.
Any existing or newly-opened PRs against `qmk_firmware` will now be asked to remove any `via`-enabled keymaps from their submissions.

View File

@ -75,10 +75,6 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040).
## Atmel ATSAM
There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). However, it is not recommended to design a board with this microcontroller as the support is quite specialized to Massdrop hardware.
## RISC-V
### GigaDevice

View File

@ -13,7 +13,7 @@ The following macros provide basic control of GPIOs and are found in `platforms/
|`gpio_set_pin_input_low(pin)` |Set pin as input with builtin pull-down resistor (unavailable on AVR)|
|`gpio_set_pin_output(pin)` |Set pin as output (alias of `gpio_set_pin_output_push_pull`) |
|`gpio_set_pin_output_push_pull(pin)` |Set pin as output, push/pull mode |
|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR and ATSAM) |
|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR) |
|`gpio_write_pin_high(pin)` |Set pin level as high, assuming it is an output |
|`gpio_write_pin_low(pin)` |Set pin level as low, assuming it is an output |
|`gpio_write_pin(pin, level)` |Set pin level, assuming it is an output |

View File

@ -39,8 +39,8 @@ BLUETOOTH_DRIVER = bluefruit_le # or rn42
This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
|Key |Aliases |Description |
|---------------------|---------|----------------------------------------------|
|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth|
|`QK_OUTPUT_USB` |`OU_USB` |USB only |
|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only |
| Key | Aliases | Description |
|-----------------------|----------------------|------------------------------------------------|
| `QK_OUTPUT_NEXT` | `OU_NEXT`, `OU_AUTO` | Automatically switch between USB and Bluetooth |
| `QK_OUTPUT_USB` | `OU_USB` | USB only |
| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Bluetooth only |

View File

@ -18,6 +18,8 @@ By default the joystick driver is `analog`, but you can change this with:
JOYSTICK_DRIVER = digital
```
When using `analog` with ARM, [you must use 3.3v with your Joystick](../drivers/adc). Although ARM boards such as the [Helios](https://keeb.supply/products/0xcb-helios) have 5v pin output, the ADC driver does not support it.
## Configuration {#configuration}
By default, two axes and eight buttons are defined, with a reported resolution of 8 bits (-127 to +127). This can be changed in your `config.h`:

View File

@ -5,6 +5,7 @@ This project includes a Docker workflow that will allow you to build a new firmw
## Requirements
The main prerequisite is a working `docker` or `podman` install.
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
* [Podman](https://podman.io/getting-started/installation)
@ -18,6 +19,7 @@ cd qmk_firmware
```
Run the following command to build a keymap:
```
util/docker_build.sh <keyboard>:<keymap>
# For example: util/docker_build.sh planck/rev6:default
@ -32,6 +34,8 @@ util/docker_build.sh keyboard:keymap:target
# For example: util/docker_build.sh planck/rev6:default:flash
```
Note that mass storage bootloaders are not supported by the `flash` target. In this case you will have to manually copy the firmware file to the keyboard.
You can also start the script without any parameters, in which case it will ask you to input the build parameters one by one, which you may find easier to use:
```

View File

@ -294,11 +294,11 @@ See also: [Backlighting](features/backlight)
See also: [Bluetooth](features/bluetooth)
|Key |Aliases |Description |
|---------------------|---------|----------------------------------------------|
|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth|
|`QK_OUTPUT_USB` |`OU_USB` |USB only |
|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only |
| Key | Aliases | Description |
|-----------------------|----------------------|------------------------------------------------|
| `QK_OUTPUT_NEXT` | `OU_NEXT`, `OU_AUTO` | Automatically switch between USB and Bluetooth |
| `QK_OUTPUT_USB` | `OU_USB` | USB only |
| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Bluetooth only |
## Caps Word {#caps-word}

View File

@ -177,12 +177,13 @@ You'll need to perform some modifications to the file above in order to target y
Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: ![VSCode Settings](https://i.imgur.com/EGrPM1L.png)
:::
Optionally, the following modifications should also be made to the keyboard's `rules.mk` file to disable optimisations -- not strictly required but will ensure breakpoints and variable viewing works correctly:
The following modifications must be made to the keyboard's `rules.mk` file to enable debug information and disable optimisations -- this will ensure breakpoints and variable viewing works correctly:
```makefile
# Enable debug information in the final binaries
DEBUG_ENABLE = yes
# Disable optimisations for debugging purposes
LTO_ENABLE = no
OPT = g
DEBUG = 3
```
At this point, you should build and flash your firmware through normal methods (`qmk compile ...` and `qmk flash ...`).

View File

@ -44,12 +44,14 @@ If there are any inconsistencies with these recommendations, you're best off [cr
Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. Please see this [issue](https://github.com/qmk/qmk_firmware/issues/22724) for more information.
:::
- PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`.
- vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps.
- PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}` i.e. `default_clueboard`.
- vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` stock keymaps.
- `#include QMK_KEYBOARD_H` preferred to including specific board files
- prefer layer enums to #defines
- custom keycode enums must have first entry = `QK_USER`
- some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap. Spaces are preferred to tabs
- keymaps should not enable VIA
- keymaps targeting VIA support should be submitted to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository
## Keyboard PRs
@ -136,12 +138,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- `keymaps/default/keymap.c`
- `QMKBEST`/`QMKURL` example macros removed
- if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](features/tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`.
- default (and via) keymaps should be "pristine"
- default keymaps should be "pristine"
- bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap
- what does pristine mean? no custom keycodes. no advanced features like tap dance or macros. basic mod taps and home row mods would be acceptable where their use is necessary
- standard layouts preferred in these keymaps, if possible
- should use [encoder map feature](features/encoders#encoder-map), rather than `encoder_update_user()`
- default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via`
- default keymap should not enable VIA -- keymaps targeting VIA support should be submitted to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository
- submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap
- submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board
- Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards)
@ -174,7 +176,7 @@ Also, specific to ChibiOS:
- all core PRs must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline
- as indicated above, the smallest set of changes to core components should be included in each PR
- PRs containing multiple areas of change will be asked to be split up and raised separately
- keyboard and keymap changes should only be included if they affect base keyboard builds, or the default-like `default`, `via`, `default_????` keymaps etc.
- keyboard and keymap changes should only be included if they affect base keyboard builds, or the default-like `default`, `default_????` keymaps etc.
- keymap modifications for anything other than the default-like keymaps **should not be included in the initial PR** in order to simplify the review process
- the core PR submitter should submit a followup PR affecting other keymaps after initial PR merge
- large-scale refactoring or consolidation PRs that affect other keymaps (such as renaming keycodes) should always be raised separately

View File

@ -45,6 +45,8 @@
#define REG_MOTION_BURST 0x63
// clang-format on
static bool powered_down = false;
void adns5050_init(void) {
// Initialize the ADNS serial pins.
gpio_set_pin_output(ADNS5050_SCLK_PIN);
@ -59,6 +61,8 @@ void adns5050_init(void) {
// this ensures that the adns is actuall ready after reset.
wait_ms(55);
powered_down = false;
// read a burst from the adns and then discard it.
// gets the adns ready for write commands
// (for example, setting the dpi).
@ -163,6 +167,10 @@ report_adns5050_t adns5050_read_burst(void) {
data.dx = 0;
data.dy = 0;
if (powered_down) {
return data;
}
adns5050_serial_write(REG_MOTION_BURST);
// We don't need a minimum tSRAD here. That's because a 4ms wait time is
@ -211,3 +219,10 @@ bool adns5050_check_signature(void) {
return (pid == 0x12 && rid == 0x01 && pid2 == 0x26);
}
void adns5050_power_down(void) {
if (!powered_down) {
powered_down = true;
adns5050_write_reg(REG_MOUSE_CONTROL, 0b10);
}
}

View File

@ -83,3 +83,4 @@ void adns5050_set_cpi(uint16_t cpi);
uint16_t adns5050_get_cpi(void);
int8_t convert_twoscomp(uint8_t data);
bool adns5050_check_signature(void);
void adns5050_power_down(void);

View File

@ -62,11 +62,15 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_tsangan": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_hhkb", "60_tsangan_hhkb"],
"community_layouts": [
"60_hhkb",
"60_ansi_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, UG_VALD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,

View File

@ -104,15 +104,20 @@
},
"community_layouts": [
"60_ansi",
"60_ansi_arrow",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_ansi_arrow",
"60_iso",
"60_iso_arrow",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -394,7 +399,7 @@
{"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -64,12 +64,16 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -352,7 +356,7 @@
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},

View File

@ -64,17 +64,19 @@
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
"LAYOUT": "LAYOUT_all",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_all": {
@ -360,7 +362,7 @@
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [1, 0], "x": 1, "y": 0},

View File

@ -18,11 +18,11 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan",
"60_tsangan_hhkb"
"60_iso_tsangan"
],
"diode_direction": "COL2ROW",
"matrix_pins": {
@ -57,6 +57,9 @@
"ws2812": {
"pin": "D3"
},
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -591,7 +594,7 @@
{"label": "Ctrl", "matrix": [4, 11], "w": 1.5, "x": 13.5, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -14,11 +14,11 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan",
"60_tsangan_hhkb"
"60_iso_tsangan"
],
"diode_direction": "COL2ROW",
"matrix_pins": {
@ -53,6 +53,9 @@
"ws2812": {
"pin": "A8"
},
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -587,7 +590,7 @@
{"label": "Ctrl", "matrix": [4, 11], "w": 1.5, "x": 13.5, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -49,7 +49,19 @@
"ws2812": {
"pin": "A8"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -510,7 +522,7 @@
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -50,9 +50,12 @@
"pin": "A8"
},
"community_layouts": [
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -122,7 +125,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -0,0 +1,128 @@
{
"manufacturer": "a-jazz",
"keyboard_name": "akc084",
"maintainer": "Feng",
"bootloader": "stm32duino",
"diode_direction": "ROW2COL",
"encoder": {
"rotary": [
{"pin_a": "A6", "pin_b": "A7"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"indicators": {
"caps_lock": "A9",
"num_lock": "A10"
},
"matrix_pins": {
"cols": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"],
"rows": ["A0", "A1", "A2", "A3", "A4", "A5", "A8"]
},
"processor": "STM32F103",
"usb": {
"device_version": "1.0.1",
"no_startup_check": true,
"pid": "0x0084",
"vid": "0x414A",
"wait_for_enumeration": false
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [3, 13], "x": 14, "y": 0},
{"matrix": [4, 12], "x": 15, "y": 0},
{"matrix": [6, 12], "x": 16, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [1, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [1, 12], "x": 12, "y": 1},
{"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
{"matrix": [4, 13], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [2, 10], "x": 10.5, "y": 2},
{"matrix": [2, 11], "x": 11.5, "y": 2},
{"matrix": [2, 12], "x": 11.5, "y": 2},
{"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
{"matrix": [5, 11], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [3, 10], "x": 10.75, "y": 3},
{"matrix": [3, 11], "x": 11.75, "y": 3, "w": 2.25},
{"matrix": [3, 12], "x": 14, "y": 3},
{"matrix": [5, 12], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [4, 1], "x": 2.25, "y": 3},
{"matrix": [4, 2], "x": 3.25, "y": 3},
{"matrix": [4, 3], "x": 4.25, "y": 3},
{"matrix": [4, 4], "x": 5.25, "y": 3},
{"matrix": [4, 5], "x": 6.25, "y": 3},
{"matrix": [4, 6], "x": 7.25, "y": 3},
{"matrix": [4, 7], "x": 8.25, "y": 3},
{"matrix": [4, 8], "x": 9.25, "y": 3},
{"matrix": [4, 9], "x": 10.25, "y": 3},
{"matrix": [4, 10], "x": 11.25, "y": 3},
{"matrix": [4, 11], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [5, 7], "x": 14, "y": 3},
{"matrix": [5, 13], "x": 15, "y": 3},
{"matrix": [5, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [5, 4], "x": 10, "y": 4},
{"matrix": [5, 5], "x": 11, "y": 4},
{"matrix": [5, 6], "x": 12, "y": 4},
{"matrix": [5, 8], "x": 13, "y": 4},
{"matrix": [5, 9], "x": 14, "y": 4},
{"matrix": [5, 10], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,43 @@
/* Copyright 2024 Feng
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(_______, _______) }
};
#endif
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_MUTE,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT(
_______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCRL,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@ -0,0 +1,23 @@
# A-JAZZ AKC084
A customizable 84keys keyboard
![akc084](https://i.imgur.com/381vaD7.png)
* Keyboard Maintainer: [Feng](https://github.com/fenggx-a-jazz)
* Hardware Supported: [a-jazz](https://www.a-jazz.com)
* Hardware Availability: [a-jazz](https://ajazzstore.com/collections/all/products/ajazz-akp846)
Make example for this keyboard (after setting up your build environment):
make a_jazz/akc084:default
Flashing example for this keyboard:
make a_jazz/akc084:default:flash
See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.
## Bootloader ESC the bootloader in 3 ways:
* **Bootmagic reset: Hold down Enter in the keyboard then replug
* **Physical reset button: Briefly press the button on the back of the PCB
* **Keycode in layout: Press the key mapped to QK_BOOT

View File

@ -0,0 +1 @@
MCU_LDSCRIPT = STM32F103xB

View File

@ -29,6 +29,9 @@
"diode_direction": "COL2ROW",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi_tsangan": {
"layout": [
@ -98,7 +101,7 @@
{"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -17,13 +17,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RCTL ),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS, KC_TRNS, KC_DEL, KC_DEL,
KC_TRNS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS,

View File

@ -46,7 +46,20 @@
"twinkle": true
}
},
"community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"community_layouts": [
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -179,7 +192,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -58,7 +58,14 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -274,7 +281,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -21,14 +21,14 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb( /* Base */
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN] = LAYOUT_60_tsangan_hhkb( /* FN */
[_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,

View File

@ -25,7 +25,18 @@
"diode_direction": "COL2ROW",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -518,7 +529,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -52,9 +52,24 @@
"processor": "atmega32a",
"bootloader": "bootloadhid",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
"LAYOUT": "LAYOUT_all",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
"layouts": {
"LAYOUT_all": {
"layout": [
@ -337,7 +352,7 @@
{"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [4, 0], "x": 0, "y": 0},
{"matrix": [4, 1], "x": 1, "y": 0},

View File

@ -45,7 +45,7 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
@ -56,6 +56,9 @@
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -837,7 +840,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -60,7 +60,14 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -276,7 +283,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -21,14 +21,14 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb( /* Base */
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN] = LAYOUT_60_tsangan_hhkb( /* FN */
[_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_BSPC,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,

View File

@ -53,7 +53,20 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["60_ansi", "60_ansi_tsangan", "60_ansi_split_bs_rshift", "60_hhkb", "60_tsangan_hhkb", "60_ansi_arrow", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"],
"community_layouts": [
"60_ansi",
"60_ansi_arrow",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -406,7 +419,7 @@
{"matrix": [4, 12], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -64,6 +64,9 @@
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu",
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -282,7 +285,7 @@
{"label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
@ -496,7 +499,7 @@
{"label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb_iso": {
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -60,7 +60,16 @@
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu",
"community_layouts": ["60_ansi", "60_iso", "60_hhkb", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -415,7 +424,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -32,8 +32,11 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
// Fn1 Layer
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,

View File

@ -23,7 +23,24 @@
"pid": "0x0004",
"vid": "0x4A56"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -805,7 +822,7 @@
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -55,7 +55,10 @@
"resync": true
}
},
"community_layouts": ["60_ansi", "60_tsangan_hhkb"],
"community_layouts": ["60_ansi", "60_ansi_tsangan_split_bs_rshift"],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -126,7 +129,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb(
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN1] = LAYOUT_60_tsangan_hhkb(
[_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -53,12 +53,16 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -260,7 +264,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -29,12 +29,16 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -300,7 +304,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -3,7 +3,13 @@
"usb": {
"pid": "0xDB62"
},
"community_layouts": ["60_ansi", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -74,7 +80,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},

View File

@ -3,7 +3,14 @@
"usb": {
"pid": "0xDB60"
},
"community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"],
"community_layouts": [
"60_ansi",
"60_ansi_tsangan_split_bs_rshift",
"60_iso"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -74,7 +81,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},

View File

@ -28,7 +28,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb(
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN1] = LAYOUT_60_tsangan_hhkb(
[_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -3,7 +3,14 @@
"usb": {
"pid": "0xDB61"
},
"community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"],
"community_layouts": [
"60_ansi",
"60_ansi_tsangan_split_bs_rshift",
"60_iso"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -74,7 +81,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},

View File

@ -37,11 +37,15 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -324,7 +328,7 @@
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0},

View File

@ -24,13 +24,14 @@
"pid": "0x0016"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_tsangan_hhkb"
"60_ansi_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -12,7 +12,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb(
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN1] = LAYOUT_60_tsangan_hhkb(
[_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, QK_BOOT
),
[_FN2] = LAYOUT_60_tsangan_hhkb(
[_FN2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______
),
[_FN3] = LAYOUT_60_tsangan_hhkb(
[_FN3] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -55,7 +55,13 @@
"resync": true
}
},
"community_layouts": ["60_ansi", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -126,7 +132,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -30,7 +30,7 @@ enum custom_keycodes {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb(
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN1] = LAYOUT_60_tsangan_hhkb(
[_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -23,7 +23,14 @@
"diode_direction": "COL2ROW",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"],
"community_layouts": [
"60_ansi",
"60_ansi_tsangan_split_bs_rshift",
"60_iso"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -94,7 +101,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},

View File

@ -28,7 +28,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb(
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN1] = LAYOUT_60_tsangan_hhkb(
[_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -35,9 +35,13 @@
},
"community_layouts": [
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_iso_tsangan"
"60_ansi_tsangan_split_bs_rshift",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -179,7 +183,7 @@
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0},
@ -318,7 +322,7 @@
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb_iso": {
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0},

View File

@ -28,13 +28,14 @@
"pid": "0x0013"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_tsangan_hhkb"
"60_ansi_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -12,7 +12,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60_tsangan_hhkb(
[_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
[_FN1] = LAYOUT_60_tsangan_hhkb(
[_FN1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, QK_BOOT
),
[_FN2] = LAYOUT_60_tsangan_hhkb(
[_FN2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______
),
[_FN3] = LAYOUT_60_tsangan_hhkb(
[_FN3] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -29,9 +29,13 @@
},
"community_layouts": [
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_iso_tsangan"
"60_ansi_tsangan_split_bs_rshift",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -174,7 +178,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -30,11 +30,12 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_ansi_tsangan",
"60_tsangan_hhkb"
"60_ansi_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_60_ansi_tsangan": {
@ -105,7 +106,7 @@
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl |
* `-------------------------------------------------------------'
*/
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | |QK_BOOT |
* `------------------------------------------------------------------------------'
*/
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
_______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | |QK_BOOT |
* `------------------------------------------------------------------------------'
*/
[2] = LAYOUT_60_tsangan_hhkb(
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
_______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -59,11 +59,12 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_2x3u": "LAYOUT_60_tsangan_hhkb_split_space",
"LAYOUT_7u": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_2x3u": "LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space",
"LAYOUT_7u": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb_split_space": "LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space"
},
"layouts": {
"LAYOUT_60_tsangan_hhkb_split_space": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@ -135,7 +136,7 @@
{"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl |GUI |Alt | Space |Alt |GUI |Ctrl |
* `-------------------------------------------------------------'
*/
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | |QK_BOOT |
* `------------------------------------------------------------------------------'
*/
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | |QK_BOOT |
* `------------------------------------------------------------------------------'
*/
[2] = LAYOUT_60_tsangan_hhkb(
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctrl |GUI |Alt |Space |BLTOG |Space |Alt |GUI |Ctrl |
* `-------------------------------------------------------------'
*/
[0] = LAYOUT_60_tsangan_hhkb_split_space(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |QK_BOOT |
* `------------------------------------------------------------------------------'
*/
[1] = LAYOUT_60_tsangan_hhkb_split_space(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |QK_BOOT |
* `------------------------------------------------------------------------------'
*/
[2] = LAYOUT_60_tsangan_hhkb_split_space(
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -39,11 +39,6 @@
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_rain": true,
"pixel_flow": true,
"pixel_fractal": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,

View File

@ -29,7 +29,14 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u2",
"bootloader": "atmel-dfu",
"community_layouts": ["60_ansi_split_bs_rshift", "60_ansi", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi_split_bs_rshift": {
"layout": [
@ -171,7 +178,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -34,7 +34,24 @@
"pid": "0x0604",
"vid": "0x4358"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -816,7 +833,7 @@
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},

View File

@ -33,9 +33,16 @@
"LAYOUT_default": "LAYOUT_all",
"LAYOUT_hhkb": "LAYOUT_60_hhkb",
"LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift",
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_tsangan": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso"
],
"layouts": {
"LAYOUT_all": {
"layout": [
@ -460,7 +467,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -19,14 +19,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -34,7 +34,24 @@
"pid": "0x0603",
"vid": "0x4358"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -816,7 +833,7 @@
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},

View File

@ -19,14 +19,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,

View File

@ -53,9 +53,16 @@
"LAYOUT_default": "LAYOUT_all",
"LAYOUT_hhkb": "LAYOUT_60_hhkb",
"LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift",
"LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_tsangan": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso"
],
"layouts": {
"LAYOUT_all": {
"layout": [
@ -480,7 +487,7 @@
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},

View File

@ -19,14 +19,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -25,7 +25,20 @@
},
"vid": "0x6369"
},
"community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
"layouts": {
"LAYOUT_60_ansi_tsangan": {
"layout": [
@ -541,7 +554,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -0,0 +1,44 @@
# Matrix Diagram for Cipulot EC 60
```
┌───────┐
2u Backpace │0E │
└───────┘
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐1E │ ISO Enter
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │
├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤
│40 │41 │42 │44 │46 │48 │4A │4B │4C │4D │
└────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘
Shift Row:
┌────────┐ ┌──────────┐
│30 │ 2.25u LShift 2.75u RShift │3D │
└────────┘ └──────────┘
┌───┬──────┐
1u-1.75u RShift │3C │3D │
└───┴──────┘
Bottom Row:
┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
│40 │41 │42 │46 │4A │4B │4C │4D │ 6.25u Spacebar
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
│40** │41*│42 │46 │4B │4C*│4D** │ Tsangan/WKL*/HHKB**
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐
│40* │41 │42 │46 │4A │4B │4C*│4D* │ Infinity/True HHKB*
└─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘
┌───────────┬───────────┐
│44 │48 │ Split 6u Spacebar (3u-3u)
└───────────┴───────────┘
┌─────────┬───┬─────────┐
│44 │46 │48 │ Split 6u Spacebar (2.5u-1u-2.5u)
└─────────┴───┴─────────┘
┌─────┬───┬─────┬─────┬─────────┬─────┬─────┬─────┬───┬─────┐
│40 │41*│42 │44 │46 │48 │4A │4B │4C*│4D │ JIS/JIS WKL*
└─────┴───┴─────┴─────┴─────────┴─────┴─────┴─────┴───┴─────┘
```

View File

@ -25,7 +25,14 @@
"pid": "0x6BB6",
"vid": "0x6369"
},
"community_layouts": ["60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
"60_ansi_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [
@ -155,7 +162,7 @@
{"matrix": [4, 11], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -18,21 +18,21 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_RGUI, KC_RALT),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, S(KC_8), KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, MO(2), _______),
[2] = LAYOUT_60_tsangan_hhkb(
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -1,107 +1,390 @@
{
"keyboard_name": "Fidelity",
"manufacturer": "HAND x KOEN",
"keyboard_name": "Fidelity",
"maintainer": "Cutie Club",
"url": "",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"command": false,
"console": false
"console": false,
"extrakey": true,
"mousekey": true
},
"indicators": {
"caps_lock": "B4"
},
"matrix_pins": {
"cols": ["A7", "A6", "A5", "A4", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0"],
"rows": ["A15", "B3", "B5", "B6", "B7"]
},
"processor": "STM32F072",
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"url": "",
"usb": {
"vid": "0xFB9C",
"device_version": "0.0.1",
"pid": "0x4D1B",
"device_version": "0.0.1"
"vid": "0xFB9C"
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": [ "A7", "A6", "A5", "A4", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0" ],
"rows": [ "A15", "B3", "B5", "B6", "B7" ]
},
"indicators": {
"caps_lock": "B4"
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
"layouts": {
"LAYOUT": {
"LAYOUT_65_ansi_bauer": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1, "y": 0 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
{ "matrix": [0, 3], "x": 3, "y": 0 },
{ "matrix": [0, 4], "x": 4, "y": 0 },
{ "matrix": [0, 5], "x": 5, "y": 0 },
{ "matrix": [0, 6], "x": 6, "y": 0 },
{ "matrix": [0, 7], "x": 7, "y": 0 },
{ "matrix": [0, 8], "x": 8, "y": 0 },
{ "matrix": [0, 9], "x": 9, "y": 0 },
{ "matrix": [0, 10], "x": 10, "y": 0 },
{ "matrix": [0, 11], "x": 11, "y": 0 },
{ "matrix": [0, 12], "x": 12, "y": 0 },
{ "matrix": [0, 13], "x": 13, "y": 0 },
{ "matrix": [0, 14], "x": 14, "y": 0 },
{ "matrix": [0, 15], "x": 15, "y": 0 },
{ "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
{ "matrix": [1, 1], "x": 1.5, "y": 1 },
{ "matrix": [1, 2], "x": 2.5, "y": 1 },
{ "matrix": [1, 3], "x": 3.5, "y": 1 },
{ "matrix": [1, 4], "x": 4.5, "y": 1 },
{ "matrix": [1, 5], "x": 5.5, "y": 1 },
{ "matrix": [1, 6], "x": 6.5, "y": 1 },
{ "matrix": [1, 7], "x": 7.5, "y": 1 },
{ "matrix": [1, 8], "x": 8.5, "y": 1 },
{ "matrix": [1, 9], "x": 9.5, "y": 1 },
{ "matrix": [1, 10], "x": 10.5, "y": 1 },
{ "matrix": [1, 11], "x": 11.5, "y": 1 },
{ "matrix": [1, 12], "x": 12.5, "y": 1 },
{ "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
{ "matrix": [1, 15], "x": 15, "y": 1 },
{ "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
{ "matrix": [2, 1], "x": 1.75, "y": 2 },
{ "matrix": [2, 2], "x": 2.75, "y": 2 },
{ "matrix": [2, 3], "x": 3.75, "y": 2 },
{ "matrix": [2, 4], "x": 4.75, "y": 2 },
{ "matrix": [2, 5], "x": 5.75, "y": 2 },
{ "matrix": [2, 6], "x": 6.75, "y": 2 },
{ "matrix": [2, 7], "x": 7.75, "y": 2 },
{ "matrix": [2, 8], "x": 8.75, "y": 2 },
{ "matrix": [2, 9], "x": 9.75, "y": 2 },
{ "matrix": [2, 10], "x": 10.75, "y": 2 },
{ "matrix": [2, 11], "x": 11.75, "y": 2 },
{ "matrix": [2, 12], "x": 12.75, "y": 2, "w": 1.25 },
{ "matrix": [1, 14], "x": 14, "y": 2 },
{ "matrix": [2, 15], "x": 15, "y": 2 },
{ "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 },
{ "matrix": [3, 1], "x": 1.25, "y": 3 },
{ "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 },
{ "matrix": [3, 14], "x": 14, "y": 3 },
{ "matrix": [3, 15], "x": 15, "y": 3 },
{ "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 },
{ "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5 },
{ "matrix": [4, 7], "x": 3.75, "y": 4, "w": 7 },
{ "matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5 },
{ "matrix": [4, 13], "x": 13, "y": 4 },
{ "matrix": [4, 14], "x": 14, "y": 4 },
{ "matrix": [4, 15], "x": 15, "y": 4 }
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_bauer_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_bauer": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
{"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_bauer_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
{"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 1.25},
{"matrix": [1, 14], "x": 14, "y": 2},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
{"matrix": [4, 7], "x": 3.75, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
}
}

View File

@ -18,14 +18,14 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[0] = LAYOUT(
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGDN,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT(
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,

View File

@ -32,7 +32,19 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["60_iso_tsangan", "60_iso_split_bs_rshift", "60_iso", "60_tsangan_hhkb", "60_hhkb", "60_ansi_tsangan", "60_ansi_split_bs_rshift", "60_ansi"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -596,7 +608,7 @@
{"matrix": [4, 12], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -49,11 +49,12 @@
"pin": "GP11"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb"
@ -127,7 +128,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -27,12 +27,14 @@
"cols": ["GP28","GP27","GP26","GP25","GP24","GP23","GP22","GP3","GP2","GP1","GP8","GP9","GP10","GP11","GP7"]
},
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
"LAYOUT": "LAYOUT_all",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
@ -41,8 +43,7 @@
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift",
"60_tsangan_hhkb"
"60_iso_wkl_split_bs_rshift"
],
"layouts": {
"LAYOUT_all": {
@ -326,7 +327,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -151,9 +151,10 @@
},
"layout_aliases": {
"LAYOUT_60_wkl": "LAYOUT_60_ansi_tsangan_split_rshift",
"LAYOUT_60_wkl_split_bs": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_60_wkl_split_bs": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layouts": {
"LAYOUT_60_ansi_tsangan_split_rshift": {
"layout": [
@ -782,7 +783,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -51,7 +51,10 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layouts": {
"LAYOUT_all": {
"layout": [
@ -334,7 +337,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -60,7 +60,18 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["60_ansi", "60_ansi_arrow", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_abnt2", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_arrow",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_abnt2"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT": {
"layout": [
@ -1425,7 +1436,7 @@
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -7,11 +7,12 @@
"vid": "0x445A"
},
"layout_aliases": {
"LAYOUT_HHKB": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_HHKB": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_ansi_wkl_split_bs_rshift", "60_tsangan_hhkb", "60_hhkb"],
"community_layouts": ["60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl_split_bs_rshift", "60_hhkb"],
"layouts": {
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -1,21 +1,21 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL
),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______,
KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, KC_MNXT, _______,
_______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_60_tsangan_hhkb(
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
_______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______,

View File

@ -49,6 +49,7 @@
},
"layout_aliases": {
"LAYOUT_60_tsangan": "LAYOUT_60_ansi_tsangan",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_iso_arrow_one_bksp": "LAYOUT_60_iso_arrow",
"LAYOUT_60_ansi_arrow_split_bs_7u_spc": "LAYOUT_60_ansi_arrow_tsangan_split_bs",
"LAYOUT_60_iso_4th_row_all_1u": "LAYOUT_64_iso"
@ -59,6 +60,7 @@
"60_ansi_arrow_split_bs",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
@ -70,7 +72,6 @@
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift",
"60_tsangan_hhkb",
"64_ansi",
"64_iso"
],
@ -413,72 +414,6 @@
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_60_ansi_arrow_tsangan": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 },
{ "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_60_ansi_arrow_tsangan_split_bs": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
@ -812,6 +747,198 @@
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_ansi_wkl": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_b_ansi": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
@ -1495,141 +1622,6 @@
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_60_iso_arrow_tsangan": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 },
{ "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 },
{ "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 },
{ "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 },
{ "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_60_iso_arrow_tsangan_split_bs": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 },
{ "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 },
{ "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 },
{ "label": "k31", "matrix": [3, 1], "x": 1.25, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3c", "matrix": [3, 12], "w": 1.75, "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 },
{ "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_60_iso_split": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
@ -1968,198 +1960,6 @@
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_tsangan_hhkb": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 12.5, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_ansi_wkl": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2.25, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3.25, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4.25, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5.25, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6.25, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7.25, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8.25, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9.25, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10.25, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11.25, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "w": 1.75, "x": 12.25, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
]
},
"LAYOUT_60_iso_wkl": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
@ -2425,141 +2225,6 @@
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_64_ansi_tsangan": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 },
{ "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 },
{ "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_64_ansi_tsangan_split_bs": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k1e", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k2d", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
{ "label": "k30", "matrix": [3, 0], "w": 2, "x": 0, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 },
{ "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 },
{ "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_64_iso": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
@ -2699,143 +2364,6 @@
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_64_iso_tsangan": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 },
{ "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 },
{ "label": "k30", "matrix": [3, 0], "x": 0, "y": 3 },
{ "label": "k30", "matrix": [3, 1], "x": 1, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 },
{ "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 },
{ "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_64_iso_tsangan_split_bs": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },
{ "label": "k02", "matrix": [0, 2], "x": 2, "y": 0 },
{ "label": "k03", "matrix": [0, 3], "x": 3, "y": 0 },
{ "label": "k04", "matrix": [0, 4], "x": 4, "y": 0 },
{ "label": "k05", "matrix": [0, 5], "x": 5, "y": 0 },
{ "label": "k06", "matrix": [0, 6], "x": 6, "y": 0 },
{ "label": "k07", "matrix": [0, 7], "x": 7, "y": 0 },
{ "label": "k08", "matrix": [0, 8], "x": 8, "y": 0 },
{ "label": "k09", "matrix": [0, 9], "x": 9, "y": 0 },
{ "label": "k0a", "matrix": [0, 10], "x": 10, "y": 0 },
{ "label": "k0b", "matrix": [0, 11], "x": 11, "y": 0 },
{ "label": "k0c", "matrix": [0, 12], "x": 12, "y": 0 },
{ "label": "k0d", "matrix": [0, 13], "x": 13, "y": 0 },
{ "label": "k0e", "matrix": [0, 14], "x": 14, "y": 0 },
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
{ "label": "k12", "matrix": [1, 2], "x": 1.5, "y": 1 },
{ "label": "k13", "matrix": [1, 3], "x": 2.5, "y": 1 },
{ "label": "k14", "matrix": [1, 4], "x": 3.5, "y": 1 },
{ "label": "k15", "matrix": [1, 5], "x": 4.5, "y": 1 },
{ "label": "k16", "matrix": [1, 6], "x": 5.5, "y": 1 },
{ "label": "k17", "matrix": [1, 7], "x": 6.5, "y": 1 },
{ "label": "k18", "matrix": [1, 8], "x": 7.5, "y": 1 },
{ "label": "k19", "matrix": [1, 9], "x": 8.5, "y": 1 },
{ "label": "k1a", "matrix": [1, 10], "x": 9.5, "y": 1 },
{ "label": "k1b", "matrix": [1, 11], "x": 10.5, "y": 1 },
{ "label": "k1c", "matrix": [1, 12], "x": 11.5, "y": 1 },
{ "label": "k1d", "matrix": [1, 13], "x": 12.5, "y": 1 },
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
{ "label": "k22", "matrix": [2, 2], "x": 1.75, "y": 2 },
{ "label": "k23", "matrix": [2, 3], "x": 2.75, "y": 2 },
{ "label": "k24", "matrix": [2, 4], "x": 3.75, "y": 2 },
{ "label": "k25", "matrix": [2, 5], "x": 4.75, "y": 2 },
{ "label": "k26", "matrix": [2, 6], "x": 5.75, "y": 2 },
{ "label": "k27", "matrix": [2, 7], "x": 6.75, "y": 2 },
{ "label": "k28", "matrix": [2, 8], "x": 7.75, "y": 2 },
{ "label": "k29", "matrix": [2, 9], "x": 8.75, "y": 2 },
{ "label": "k2a", "matrix": [2, 10], "x": 9.75, "y": 2 },
{ "label": "k2b", "matrix": [2, 11], "x": 10.75, "y": 2 },
{ "label": "k2c", "matrix": [2, 12], "x": 11.75, "y": 2 },
{ "label": "k1e", "matrix": [1, 14], "x": 12.75, "y": 2 },
{ "h": 2, "label": "k2d", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 },
{ "label": "k30", "matrix": [3, 0], "x": 0, "y": 3 },
{ "label": "k30", "matrix": [3, 1], "x": 1, "y": 3 },
{ "label": "k32", "matrix": [3, 2], "x": 2, "y": 3 },
{ "label": "k33", "matrix": [3, 3], "x": 3, "y": 3 },
{ "label": "k34", "matrix": [3, 4], "x": 4, "y": 3 },
{ "label": "k35", "matrix": [3, 5], "x": 5, "y": 3 },
{ "label": "k36", "matrix": [3, 6], "x": 6, "y": 3 },
{ "label": "k37", "matrix": [3, 7], "x": 7, "y": 3 },
{ "label": "k38", "matrix": [3, 8], "x": 8, "y": 3 },
{ "label": "k39", "matrix": [3, 9], "x": 9, "y": 3 },
{ "label": "k3a", "matrix": [3, 10], "x": 10, "y": 3 },
{ "label": "k3b", "matrix": [3, 11], "x": 11, "y": 3 },
{ "label": "k3c", "matrix": [3, 12], "x": 12, "y": 3 },
{ "label": "k3d", "matrix": [3, 13], "x": 13, "y": 3 },
{ "label": "k3e", "matrix": [3, 14], "x": 14, "y": 3 },
{ "label": "k40", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
{ "label": "k41", "matrix": [4, 1], "x": 1.5, "y": 4 },
{ "label": "k43", "matrix": [4, 3], "w": 1.5, "x": 2.5, "y": 4 },
{ "label": "k46", "matrix": [4, 6], "w": 7, "x": 4, "y": 4 },
{ "label": "k4b", "matrix": [4, 11], "x": 11, "y": 4 },
{ "label": "k4c", "matrix": [4, 12], "x": 12, "y": 4 },
{ "label": "k4d", "matrix": [4, 13], "x": 13, "y": 4 },
{ "label": "k4e", "matrix": [4, 14], "x": 14, "y": 4 }
]
},
"LAYOUT_all": {
"layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },

View File

@ -29,6 +29,7 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
@ -37,9 +38,11 @@
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift",
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift",
"60_tsangan_hhkb"
"60_iso_wkl_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -316,7 +319,7 @@
{ "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 }
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{ "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },

View File

@ -27,7 +27,17 @@
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu",
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_tsangan_hhkb"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT": {
"layout": [
@ -452,7 +462,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -48,9 +48,15 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_60_wkl_split_bs": "LAYOUT_60_tsangan_hhkb"
"LAYOUT_60_wkl_split_bs": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": ["60_ansi", "60_hhkb", "60_tsangan_hhkb", "60_ansi_split_bs_rshift"],
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb"
],
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@ -189,7 +195,7 @@
{"matrix": [4, 12], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -1,14 +1,14 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_END,
KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL
),
[1] = LAYOUT_60_tsangan_hhkb(
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
QK_BOOT, UG_TOGG, UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______,
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,

View File

@ -35,11 +35,15 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -321,7 +325,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -35,11 +35,15 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
"60_tsangan_hhkb",
"60_ansi_tsangan_split_bs_rshift",
"60_iso",
"60_iso_split_bs_rshift",
"60_iso_tsangan"
"60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_all": {
"layout": [
@ -323,7 +327,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

Some files were not shown because too many files have changed in this diff Show More