Merge branch 'master' into nagmeal/develop

This commit is contained in:
t-ando 2024-09-15 22:19:29 +09:00
commit d7f856ebdd
224 changed files with 2130 additions and 461 deletions

View File

@ -1,6 +1,5 @@
<!--- Provide a general summary of your changes in the title above. --> <!--- Provide a general summary of your changes in the title above. -->
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. --> <!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
## Description ## Description
@ -15,7 +14,7 @@
- [ ] New feature - [ ] New feature
- [ ] Enhancement/optimization - [ ] Enhancement/optimization
- [ ] Keyboard (addition or update) - [ ] Keyboard (addition or update)
- [ ] Keymap/layout/userspace (addition or update) - [ ] Keymap/layout (addition or update)
- [ ] Documentation - [ ] Documentation
## Issues Fixed or Closed by This PR ## Issues Fixed or Closed by This PR

View File

@ -56,7 +56,7 @@ jobs:
- name: Deploy - name: Deploy
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
uses: JamesIves/github-pages-deploy-action@v4.6.3 uses: JamesIves/github-pages-deploy-action@v4.6.4
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages branch: gh-pages

View File

@ -47,7 +47,7 @@ jobs:
git config user.email 'hello@qmk.fm' git config user.email 'hello@qmk.fm'
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v6 uses: peter-evans/create-pull-request@v7
if: ${{ github.repository == 'qmk/qmk_firmware'}} if: ${{ github.repository == 'qmk/qmk_firmware'}}
with: with:
token: ${{ secrets.QMK_BOT_TOKEN }} token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@ -34,7 +34,7 @@ jobs:
git config user.email 'hello@qmk.fm' git config user.email 'hello@qmk.fm'
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v6 uses: peter-evans/create-pull-request@v7
if: ${{ github.repository == 'qmk/qmk_firmware'}} if: ${{ github.repository == 'qmk/qmk_firmware'}}
with: with:
token: ${{ secrets.QMK_BOT_TOKEN }} token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@ -167,7 +167,7 @@
}, },
{ "text": "Audio", "link": "/features/audio" }, { "text": "Audio", "link": "/features/audio" },
{ "text": "Bluetooth", "link": "/features/bluetooth" }, { "text": "Bluetooth", "link": "/features/bluetooth" },
{ "text": "Bootmagic Lite", "link": "/features/bootmagic" }, { "text": "Bootmagic", "link": "/features/bootmagic" },
{ "text": "Converters", "link": "/feature_converters" }, { "text": "Converters", "link": "/feature_converters" },
{ "text": "Custom Matrix", "link": "/custom_matrix" }, { "text": "Custom Matrix", "link": "/custom_matrix" },
{ "text": "DIP Switch", "link": "/features/dip_switch" }, { "text": "DIP Switch", "link": "/features/dip_switch" },

View File

@ -413,7 +413,7 @@ Use these to enable or disable building certain features. The more you have enab
* `MAGIC_ENABLE` * `MAGIC_ENABLE`
* MAGIC actions (BOOTMAGIC without the boot) * MAGIC actions (BOOTMAGIC without the boot)
* `BOOTMAGIC_ENABLE` * `BOOTMAGIC_ENABLE`
* Enable Bootmagic Lite * Enable Bootmagic
* `MOUSEKEY_ENABLE` * `MOUSEKEY_ENABLE`
* Mouse keys * Mouse keys
* `EXTRAKEY_ENABLE` * `EXTRAKEY_ENABLE`

View File

@ -8,8 +8,8 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have
## Installation ## Installation
Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in. Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure. Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button. To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
Alternatively, hold `BOOT` while inserting the USB cable. Alternatively, hold `BOOT` while inserting the USB cable.

View File

@ -34,7 +34,7 @@ On first run, the VIA code in the firmware will copy the keymap from flash memor
The simple fix for this is to clear the EEPROM. You can do this in several ways: The simple fix for this is to clear the EEPROM. You can do this in several ways:
* Hold the Bootmagic Lite key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board. * Hold the Bootmagic key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board.
* Press the `QK_CLEAR_EEPROM`/`EE_CLR` keycode if it is accessible on your keymap. * Press the `QK_CLEAR_EEPROM`/`EE_CLR` keycode if it is accessible on your keymap.
* Place the board into bootloader mode and hit the "Clear EEPROM" button. This may not be available for all bootloaders, and you may need to reflash the board afterwards. * Place the board into bootloader mode and hit the "Clear EEPROM" button. This may not be available for all bootloaders, and you may need to reflash the board afterwards.

View File

@ -109,7 +109,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
} }
``` ```
And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic Lite](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued. And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
```c ```c
void eeconfig_init_user(void) { // EEPROM is getting reset! void eeconfig_init_user(void) { // EEPROM is getting reset!

View File

@ -1,6 +1,6 @@
# Command # Command
Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic Lite](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command. Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command.
On some keyboards Command is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk`: On some keyboards Command is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk`:

View File

@ -53,7 +53,7 @@ QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tr
//#define QMK_LED E6 //#define QMK_LED E6
//#define QMK_SPEAKER C6 //#define QMK_SPEAKER C6
``` ```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
@ -209,7 +209,7 @@ To enable the additional features, add the following defines to your `config.h`:
//#define QMK_SPEAKER C6 //#define QMK_SPEAKER C6
``` ```
Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.

View File

@ -5,6 +5,7 @@ This project includes a Docker workflow that will allow you to build a new firmw
## Requirements ## Requirements
The main prerequisite is a working `docker` or `podman` install. The main prerequisite is a working `docker` or `podman` install.
* [Docker CE](https://docs.docker.com/install/#supported-platforms) * [Docker CE](https://docs.docker.com/install/#supported-platforms)
* [Podman](https://podman.io/getting-started/installation) * [Podman](https://podman.io/getting-started/installation)
@ -18,6 +19,7 @@ cd qmk_firmware
``` ```
Run the following command to build a keymap: Run the following command to build a keymap:
``` ```
util/docker_build.sh <keyboard>:<keymap> util/docker_build.sh <keyboard>:<keymap>
# For example: util/docker_build.sh planck/rev6:default # 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 # 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: 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

@ -99,7 +99,7 @@ To reset to the bootloader use `QK_BOOTLOADER` or `QK_BOOT` keycode or `reset_ke
## Wiping the EEPROM (Persistent Storage) ## Wiping the EEPROM (Persistent Storage)
If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic Lite](features/bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so. If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic](features/bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so.
To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default. To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default.

View File

@ -55,7 +55,7 @@ Everything below here requires a lot of foundational knowledge. Besides being ab
* **Advanced Features** * **Advanced Features**
* [Unicode](features/unicode) * [Unicode](features/unicode)
* [API](api_overview) * [API](api_overview)
* [Bootmagic Lite](features/bootmagic) * [Bootmagic](features/bootmagic)
* **Hardware** * **Hardware**
* [How Keyboards Work](how_keyboards_work) * [How Keyboards Work](how_keyboards_work)
* [How A Keyboard Matrix Works](how_a_matrix_works) * [How A Keyboard Matrix Works](how_a_matrix_works)

View File

@ -62,11 +62,15 @@
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "bootloader": "atmel-dfu",
"layout_aliases": { "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": { "layouts": {
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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 #include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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_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_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 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, 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_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, _______, _______, 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": [ "community_layouts": [
"60_ansi", "60_ansi",
"60_ansi_arrow",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_split_bs_rshift",
"60_hhkb", "60_hhkb",
"60_ansi_arrow",
"60_iso", "60_iso",
"60_iso_arrow",
"60_iso_split_bs_rshift", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -394,7 +399,7 @@
{"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -64,12 +64,16 @@
"60_ansi", "60_ansi",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_split_bs_rshift",
"60_hhkb", "60_hhkb",
"60_iso", "60_iso",
"60_iso_split_bs_rshift", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -352,7 +356,7 @@
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0}, {"label": "!", "matrix": [1, 0], "x": 1, "y": 0},

View File

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

View File

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

View File

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

View File

@ -49,7 +49,19 @@
"ws2812": { "ws2812": {
"pin": "A8" "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -510,7 +522,7 @@
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

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

View File

@ -8,6 +8,8 @@ A TKL PCB attempting a87 compatibility with different switch and layout-options.
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make 4pplet/waffling80/rev_a:default make 4pplet/waffling80/rev_a:default
make 4pplet/waffling80/rev_b:default
make 4pplet/waffling80/rev_b_ansi:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@ -0,0 +1,19 @@
/*
Copyright 2022 Stefan Sundin "4pplet" <mail@4pplet.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define WS2812_EXTERNAL_PULLUP

View File

@ -0,0 +1,29 @@
{
"keyboard_name": "waffling80 Rev B ANSI HS",
"usb": {
"pid": "0x0017",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 2
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"ws2812": {
"pin": "A8"
},
"matrix_pins": {
"cols": ["B2", "B1", "B0", "A7", "A6", "A3", "B9", "B8"],
"rows": ["B13", "B12", "A5", "A4", "A2", "A1", "F0", "C15", "C13", "C14", "F1", "A0"]
},
"diode_direction": "COL2ROW",
"processor": "STM32F072",
"bootloader": "stm32-dfu"
}

View File

@ -0,0 +1,18 @@
# waffling80
A TKL PCB attempting a87 and a88 compatibility with different switch and layout-options.
* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
* Hardware Supported: [waffling80](https://github.com/4pplet/waffling80)
Make example for this keyboard (after setting up your build environment):
make 4pplet/waffling80/rev_b_ansi:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
How to enter bootloader (DFU):
* Hold the reset-header for a few seconds on the back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
Alternative option if the firmware is already pre-flashed:
* Unplug your keyboard, hold down the Esc key, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.

View File

@ -0,0 +1,47 @@
/*
Copyright 2024 Stefan Sundin "4pplet" <mail@4pplet.com>
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 "rev_b_ansi.h"
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if (SCROLL_LOCK_ENABLE && res) {
if(led_state.scroll_lock) {
#ifdef SCROLL_LOCK_COLOR
rgblight_sethsv_at(SCROLL_LOCK_COLOR, 0);
#else
rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 0);
#endif
}
else {
rgblight_sethsv_at(HSV_OFF, 0);
}
}
if (CAPS_LOCK_ENABLE && res) {
if(led_state.caps_lock) {
#ifdef CAPS_LOCK_COLOR
rgblight_sethsv_at(CAPS_LOCK_COLOR, 1);
#else
rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 1);
#endif
}
else{
rgblight_sethsv_at(HSV_OFF, 1);
}
}
return res;
}

View File

@ -0,0 +1,26 @@
/*
Copyright 2022 Stefan Sundin "4pplet" <mail@4pplet.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define CAPS_LOCK_ENABLE 1
#define SCROLL_LOCK_ENABLE 1
// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA.
//#define CAPS_LOCK_COLOR HSV_GREEN
//#define SCROLL_LOCK_COLOR HSV_GREEN
#include "quantum.h"

View File

@ -0,0 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -p FFFF -v FFFF

View File

@ -29,6 +29,9 @@
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"processor": "STM32F072", "processor": "STM32F072",
"bootloader": "stm32-dfu", "bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": { "layouts": {
"LAYOUT_60_ansi_tsangan": { "LAYOUT_60_ansi_tsangan": {
"layout": [ "layout": [
@ -98,7 +101,7 @@
{"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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 #include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, 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_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_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_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 ), 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_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_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, 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 "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -179,7 +192,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -58,7 +58,14 @@
}, },
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -274,7 +281,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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] = { 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_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, 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, 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_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 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, 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_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, _______, _______, _______, _______, 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", "diode_direction": "COL2ROW",
"processor": "STM32F072", "processor": "STM32F072",
"bootloader": "stm32-dfu", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -518,7 +529,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -52,9 +52,24 @@
"processor": "atmega32a", "processor": "atmega32a",
"bootloader": "bootloadhid", "bootloader": "bootloadhid",
"layout_aliases": { "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -337,7 +352,7 @@
{"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [4, 0], "x": 0, "y": 0}, {"matrix": [4, 0], "x": 0, "y": 0},
{"matrix": [4, 1], "x": 1, "y": 0}, {"matrix": [4, 1], "x": 1, "y": 0},

View File

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

View File

@ -60,7 +60,14 @@
}, },
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -276,7 +283,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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] = { 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_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, 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, 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_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 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, 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_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, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,

View File

@ -53,7 +53,20 @@
}, },
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -406,7 +419,7 @@
{"matrix": [4, 12], "x": 12.5, "y": 4} {"matrix": [4, 12], "x": 12.5, "y": 4}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

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

View File

@ -60,7 +60,16 @@
}, },
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "qmk-dfu", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -415,7 +424,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

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

View File

@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer // 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_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_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_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 // 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_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_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, 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", "pid": "0x0004",
"vid": "0x4A56" "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -805,7 +822,7 @@
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -55,7 +55,10 @@
"resync": true "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -126,7 +129,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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] = { 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, 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_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, 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 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_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

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

View File

@ -29,12 +29,16 @@
"60_ansi", "60_ansi",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_split_bs_rshift",
"60_hhkb", "60_hhkb",
"60_iso", "60_iso",
"60_iso_split_bs_rshift", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -300,7 +304,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -3,7 +3,13 @@
"usb": { "usb": {
"pid": "0xDB62" "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -74,7 +80,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]}, {"x": 1, "y": 0, "matrix": [0, 1]},

View File

@ -3,7 +3,14 @@
"usb": { "usb": {
"pid": "0xDB60" "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -74,7 +81,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]}, {"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] = { 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, 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_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, 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 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_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -3,7 +3,14 @@
"usb": { "usb": {
"pid": "0xDB61" "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -74,7 +81,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]}, {"x": 1, "y": 0, "matrix": [0, 1]},

View File

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

View File

@ -24,13 +24,14 @@
"pid": "0x0016" "pid": "0x0016"
}, },
"layout_aliases": { "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": [ "community_layouts": [
"60_tsangan_hhkb" "60_ansi_tsangan_split_bs_rshift"
], ],
"layouts": { "layouts": {
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "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] = { 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, 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_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_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 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_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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, QK_BOOT _______, _______, _______, _______, _______, _______, 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 "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -126,7 +132,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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] = { 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, 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_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, 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 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_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -23,7 +23,14 @@
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"processor": "STM32F072", "processor": "STM32F072",
"bootloader": "stm32-dfu", "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -94,7 +101,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"x": 0, "y": 0, "matrix": [0, 0]}, {"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]}, {"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] = { 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, 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_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, 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 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_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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -35,9 +35,13 @@
}, },
"community_layouts": [ "community_layouts": [
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -179,7 +183,7 @@
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0}, {"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.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} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0}, {"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0}, {"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0},

View File

@ -28,13 +28,14 @@
"pid": "0x0013" "pid": "0x0013"
}, },
"layout_aliases": { "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": [ "community_layouts": [
"60_tsangan_hhkb" "60_ansi_tsangan_split_bs_rshift"
], ],
"layouts": { "layouts": {
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "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] = { 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, 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_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_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 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_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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, QK_BOOT _______, _______, _______, _______, _______, _______, 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": [ "community_layouts": [
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -174,7 +178,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -30,11 +30,12 @@
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "bootloader": "atmel-dfu",
"layout_aliases": { "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": [ "community_layouts": [
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb" "60_ansi_tsangan_split_bs_rshift"
], ],
"layouts": { "layouts": {
"LAYOUT_60_ansi_tsangan": { "LAYOUT_60_ansi_tsangan": {
@ -105,7 +106,7 @@
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "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 | * |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, 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_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, 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 | * | | | | | | |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_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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | |QK_BOOT | * | | | | | | |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_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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -59,11 +59,12 @@
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "bootloader": "atmel-dfu",
"layout_aliases": { "layout_aliases": {
"LAYOUT_2x3u": "LAYOUT_60_tsangan_hhkb_split_space", "LAYOUT_2x3u": "LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space",
"LAYOUT_7u": "LAYOUT_60_tsangan_hhkb" "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": { "layouts": {
"LAYOUT_60_tsangan_hhkb_split_space": { "LAYOUT_60_ansi_tsangan_split_bs_rshift_split_space": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},
@ -135,7 +136,7 @@
{"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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 | * |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, 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_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, 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 | * | | | | | | |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_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | |QK_BOOT | * | | | | | | |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_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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 | * |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, 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_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, 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 | * | | | | | | | | |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, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |QK_BOOT | * | | | | | | | | |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, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -29,7 +29,14 @@
"diode_direction": "COL2ROW", "diode_direction": "COL2ROW",
"processor": "atmega32u2", "processor": "atmega32u2",
"bootloader": "atmel-dfu", "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": { "layouts": {
"LAYOUT_60_ansi_split_bs_rshift": { "LAYOUT_60_ansi_split_bs_rshift": {
"layout": [ "layout": [
@ -171,7 +178,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -34,7 +34,24 @@
"pid": "0x0604", "pid": "0x0604",
"vid": "0x4358" "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -816,7 +833,7 @@
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0},

View File

@ -33,9 +33,16 @@
"LAYOUT_default": "LAYOUT_all", "LAYOUT_default": "LAYOUT_all",
"LAYOUT_hhkb": "LAYOUT_60_hhkb", "LAYOUT_hhkb": "LAYOUT_60_hhkb",
"LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -460,7 +467,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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] = { 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, 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_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_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_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), 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_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -34,7 +34,24 @@
"pid": "0x0603", "pid": "0x0603",
"vid": "0x4358" "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -816,7 +833,7 @@
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "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] = { 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, 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_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_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_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), 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_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_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, _______, _______, 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_default": "LAYOUT_all",
"LAYOUT_hhkb": "LAYOUT_60_hhkb", "LAYOUT_hhkb": "LAYOUT_60_hhkb",
"LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -480,7 +487,7 @@
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "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] = { 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, 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_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_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_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), 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_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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -25,7 +25,20 @@
}, },
"vid": "0x6369" "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": { "layouts": {
"LAYOUT_60_ansi_tsangan": { "LAYOUT_60_ansi_tsangan": {
"layout": [ "layout": [
@ -541,7 +554,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -40,7 +40,7 @@
"static_gradient": true, "static_gradient": true,
"twinkle": true "twinkle": true
}, },
"led_count": 22 "led_count": 19
}, },
"usb": { "usb": {
"device_version": "0.0.1", "device_version": "0.0.1",

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", "pid": "0x6BB6",
"vid": "0x6369" "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": { "layouts": {
"LAYOUT_60_ansi_wkl_split_bs_rshift": { "LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [ "layout": [
@ -155,7 +162,7 @@
{"matrix": [4, 11], "x": 12.5, "y": 4} {"matrix": [4, 11], "x": 12.5, "y": 4}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -18,21 +18,21 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off // 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_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_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_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_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), 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_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_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, _______, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, MO(2), _______), _______, _______, _______, _______, _______, MO(2), _______),
[2] = LAYOUT_60_tsangan_hhkb( [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -32,7 +32,19 @@
}, },
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -596,7 +608,7 @@
{"matrix": [4, 12], "x": 12.5, "y": 4} {"matrix": [4, 12], "x": 12.5, "y": 4}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

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

View File

@ -27,16 +27,18 @@
"cols": ["GP28","GP27","GP26","GP25","GP24","GP23","GP22","GP3","GP2","GP1","GP8","GP9","GP10","GP11","GP7"] "cols": ["GP28","GP27","GP26","GP25","GP24","GP23","GP22","GP3","GP2","GP1","GP8","GP9","GP10","GP11","GP7"]
}, },
"layout_aliases": { "layout_aliases": {
"LAYOUT": "LAYOUT_all" "LAYOUT": "LAYOUT_all",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
}, },
"community_layouts": [ "community_layouts": [
"60_ansi", "60_ansi",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_split_bs_rshift",
"60_iso", "60_iso",
"60_iso_split_bs_rshift", "60_iso_split_bs_rshift",
"60_iso_tsangan" "60_iso_tsangan",
"60_iso_tsangan_split_bs_rshift"
], ],
"layouts": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
@ -320,7 +322,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -151,9 +151,15 @@
}, },
"layout_aliases": { "layout_aliases": {
"LAYOUT_60_wkl": "LAYOUT_60_ansi_tsangan_split_rshift", "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_hhkb", "60_iso", "60_ansi_split_bs_rshift"], "community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_hhkb",
"60_iso"
],
"layouts": { "layouts": {
"LAYOUT_60_ansi_tsangan_split_rshift": { "LAYOUT_60_ansi_tsangan_split_rshift": {
"layout": [ "layout": [
@ -502,7 +508,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

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

View File

@ -60,7 +60,18 @@
}, },
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "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": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [
@ -1425,7 +1436,7 @@
{"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -6,12 +6,13 @@
"usb": { "usb": {
"vid": "0x445A" "vid": "0x445A"
}, },
"community_layouts": ["60_tsangan_hhkb"], "community_layouts": ["60_ansi_tsangan_split_bs_rshift"],
"layout_aliases": { "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"
}, },
"layouts": { "layouts": {
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -1,21 +1,21 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, 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_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, 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_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 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_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_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, 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, _______, 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, _______, _______, 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_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______,

View File

@ -53,14 +53,18 @@
"60_ansi_arrow", "60_ansi_arrow",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb", "60_hhkb",
"60_iso", "60_iso",
"60_iso_split_bs_rshift", "60_iso_split_bs_rshift",
"60_iso_tsangan", "60_iso_tsangan",
"60_tsangan_hhkb", "60_iso_tsangan_split_bs_rshift"
"64_ansi", "64_ansi",
"64_iso" "64_iso"
], ],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [
@ -1818,7 +1822,7 @@
{ "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 } { "label": "k4e", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4 }
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{ "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 }, { "label": "k00", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 }, { "label": "k01", "matrix": [0, 1], "x": 1, "y": 0 },

View File

@ -29,12 +29,16 @@
"60_ansi", "60_ansi",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_ansi_tsangan_split_bs_rshift",
"60_hhkb", "60_hhkb",
"60_iso", "60_iso",
"60_iso_split_bs_rshift", "60_iso_split_bs_rshift",
"60_iso_tsangan", "60_iso_tsangan",
"60_tsangan_hhkb" "60_iso_tsangan_split_bs_rshift"
], ],
"layout_aliases": {
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -381,7 +385,7 @@
{ "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 } { "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": [ "layout": [
{ "label": "~", "matrix": [0, 0], "x": 0, "y": 0 }, { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
{ "label": "!", "matrix": [0, 1], "x": 1, "y": 0 }, { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },

View File

@ -136,7 +136,7 @@
{"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 1], "x": 1.5, "y": 1},
@ -279,7 +279,7 @@
{"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 1], "x": 1.5, "y": 1},
@ -420,7 +420,7 @@
{"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 1], "x": 1.5, "y": 1},
@ -565,7 +565,7 @@
{"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "y": 0}, {"matrix": [0, 15], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 1], "x": 1.5, "y": 1},

View File

@ -27,7 +27,17 @@
}, },
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "qmk-dfu", "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": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [ "layout": [
@ -452,7 +462,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -48,9 +48,15 @@
"processor": "atmega32u4", "processor": "atmega32u4",
"bootloader": "atmel-dfu", "bootloader": "atmel-dfu",
"layout_aliases": { "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": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
"layout": [ "layout": [
@ -189,7 +195,7 @@
{"matrix": [4, 12], "x": 12.5, "y": 4} {"matrix": [4, 12], "x": 12.5, "y": 4}
] ]
}, },
"LAYOUT_60_tsangan_hhkb": { "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [ "layout": [
{"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -1,14 +1,14 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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_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_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_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 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, _______, 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, _______, QK_BOOT, UG_TOGG, UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______,
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,

View File

@ -35,11 +35,15 @@
"60_ansi", "60_ansi",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_split_bs_rshift",
"60_iso", "60_iso",
"60_iso_split_bs_rshift", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -321,7 +325,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -35,11 +35,15 @@
"60_ansi", "60_ansi",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb", "60_ansi_tsangan_split_bs_rshift",
"60_iso", "60_iso",
"60_iso_split_bs_rshift", "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": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
@ -323,7 +327,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},

View File

@ -32,13 +32,14 @@
} }
}, },
"layout_aliases": { "layout_aliases": {
"LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift",
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
}, },
"community_layouts": [ "community_layouts": [
"60_ansi", "60_ansi",
"60_ansi_split_bs_rshift", "60_ansi_split_bs_rshift",
"60_ansi_tsangan", "60_ansi_tsangan",
"60_tsangan_hhkb" "60_ansi_tsangan_split_bs_rshift"
], ],
"layouts": { "layouts": {
"LAYOUT_60_ansi": { "LAYOUT_60_ansi": {
@ -249,7 +250,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} {"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": [ "layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "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