Compare commits

...
20 Commits
Author SHA1 Message Date
Joel Challis c588d232cb Avoid name conflicts with usb_hid Arduino code (#13870)
* Avoid name conflicts with usb_hid Arduino code

* Fix tests
2021-08-06 15:53:38 +10:00
James Young b9a1b61f6a Flehrad Tradestation Refactor (#13897)
* add license headers

Apache 2.0 per the included `license` file.

* info.json: use human-friendly formatting

* refactor keymaps

- split `default` keymap into `default` and `tradestation` keymaps (one for each layout)
- remove boilerplate functions
- apply four-space indent

* partial clean up of rules.mk

- update section header comment blocks
2021-08-05 22:18:17 -07:00
James Young 28b59c30d2 MetaMechs Timber Wolf Configurator Fixes (#13895)
* info.json: use human-friendly formatting

* info.json: fix key sequences for ISO layouts

All the ISO layouts had the Enter key out-of-sequence, causing key-assignment mismatches in QMK Configurator.
2021-08-05 21:28:26 -07:00
James YoungandRyan f4c55db8dd cKeys Handwire 101 Refactor (#13879)
* update info.json

- use human-friendly formatting
- remove `key_count` key

* rename LAYOUT to LAYOUT_ortho_4x4

* refactor default keymap

- add license header
- qmk cformat pass
- keycode grid alignment

* remove empty config.h file from default keymap

* update Manufacturer and Product strings

* tidy up handwire_101.c

- add license header
- remove boilerplate functions

* tidy up handwire_101.h

- add license header
- remove instructive comment

* minor rules.mk tidy-up

- remove Bootloader selection sample comments

* rewrite SEND_STRING() statements per fauxpark

Co-authored-by: Ryan <[email protected]>

Co-authored-by: Ryan <[email protected]>
2021-08-04 22:32:27 +01:00
James Young 4445455c1f BM65ISO: refactor layout macro (#13860) 2021-08-04 22:24:54 +10:00
8e8803459f Updated Ducky 2 one mini support (#11112)
* Initial Ducky One 2 Mini keyboard and keymap

* Keymap macro issue, together with general polish suggestions

* Separate default keymap into proper default, iso and ansi versions

* info.json updates (Configurator support). DEBOUNCE define adjust.

* Unused keymap defines removed.

* update requested ducky one mini2 board changes

* ducky: don't trigger app key with left shift

* ducky: make default mouse key behavior more linear

* ducky: add GRAVE_ESC_GUI_OVERRIDE to allow for win+esc to work

* ducky: playpause on fn space

* ducky: disable RGB_MATRIX until driver is merged

* ducky: clang-format matrix and one2mini.c

* ducky: update requested changes

Remove WFI_IDLE since it's already in the rules.mk CORTEX_ENABLE_WFI_IDLE=TRUE

* ducky: update requested changes

* ducky: move winkey grave esc to default keymap

* ducky: remove dipswitch from keymap and use DIP_SWITCH_MATRIX_GRID instead

* ducky: info.json lint

* ducky: enable DIP_SWITCH_ENABLE rule

* ducky: update readme

* ducky: fix backslash on default keymap

* ducky: remove unused USB_LED_CAPSLOCK_INDEX 28

* ducky: move mbi5042 led driver to ducky keyboard

* ducky: cosmetics

* ducky: requested changes

* ducky: refactor matrix.c again so we can better compare it to other boards

* ducky: remove bootmagic_lite as the boards bootloader trigger is actually handled in its own bootloader

* ducky: remove custom matrix

* ducky: update for chibios-contrib changes

* ducky: debug new USB driver

* ducky: debug usb issues

* ducky: update chibios version

* ducky: remove halconf.h

* ducky: update rules.mk

* ducky: update chconf.h

* Matching submodules.

* Restructure to explicitly define which board is in use, remove RGB driver pending followup PR.

* Revert "Matching submodules."

This reverts commit 2fbb34e0c63ea67ee09d2e2d525723c01431d1cd.

Co-authored-by: GitWellBack <[email protected]>
Co-authored-by: Nick Brassel <[email protected]>
2021-08-04 20:35:17 +10:00
James Young ae20574f84 barracuda: update info.json layout macro reference (#13874)
* barracuda: update info.json layout macro reference

- change LAYOUT to LAYOUT_ortho_3x11

* remove Community Layouts rule

ortho_3x11 isn't a valid Community Layout.
2021-08-04 03:09:25 +01:00
Drashna JaelreandRyan a0f2be18a4 Add bootloader section to keyboard template (#13774)
* Add bootloader section to keyboard template

* Apply suggestions from code review

Co-authored-by: Ryan <[email protected]>

Co-authored-by: Ryan <[email protected]>
2021-08-04 01:23:18 +01:00
Changsu Park 9c69db4700 Updated settings.json file to fit VSC's docs (#13829)
This change fixes the warning caused by deprecated way of configuring terminal profiles.

The warning caused by old settings.json is the following:
This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in `#terminal.integrated.profiles.windows#` and setting its profile name as the default in `#terminal.integrated.defaultProfile.windows#`. This will currently take priority over the new profiles settings but that will change in the future.

Refer to the link below for more information:
https://code.visualstudio.com/docs/editor/integrated-terminal#_configuration
2021-08-04 01:22:40 +01:00
James Young 8802d28aad boardsource/holiday/spooky: update info.json layout macro reference (#13875)
- change LAYOUT to LAYOUT_ortho_2x3
2021-08-04 00:29:41 +01:00
Ryan Baker d1cbea685e rb86 (#13824)
* rb86

* adjudicate comments
2021-08-04 08:54:12 +10:00
Joakim Tufvegren 2b097d670a Fix overflows in WPM calculations (#13128)
* Fix overflow in WPM calculations.

First, the "fresh" WPM calculation could end up being up to 12000 (with
default `WPM_ESTIMATED_WORD_SIZE`) if keys were pressed more or less
simultaneously. This value has now been clamped down to 255, in effect
clamping WPM to its max value of 255.

Second, with `WPM_ALLOW_COUNT_REGRESSION` enabled, it was possible to
regress the WPM below 0 (i.e. to 255) by just repeatedly pressing
backspace.

* Fix WPM being limited to 235 due to float/int logic.
2021-08-04 07:40:08 +10:00
James Young f2fc23d1b1 aves65: complete layout data (#13868)
add layout data for:
- LAYOUT_all
- LAYOUT_65_iso
- LAYOUT_65_iso_split_bs
- LAYOUT_65_iso_blocker_split_bs
- LAYOUT_65_ansi
- LAYOUT_65_ansi_split_bs
- LAYOUT_65_ansi_blocker
- LAYOUT_65_ansi_blocker_split_bs
2021-08-03 10:20:53 -07:00
James Young e9a3e20813 4pplet/eagle_viper_rep/rev_a: fix missing key object (#13867)
Adds a key object for the KC_NUHS key to the info.json data.
2021-08-03 10:03:25 -07:00
Jonathan Rascher 853344235a [Keymap] Minor cleanup of bcat keymaps and userspace (#13224) 2021-08-03 09:39:43 -07:00
James Young 4d42fb2031 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8 (#13866)
* 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8

* remove ortho_4x8 from Community Layouts rule

ortho_4x8 isn't a valid option here.
2021-08-03 00:04:07 -07:00
James Young 2d78a43556 capsunlocked/cu7: fix missing key object (#13862)
Adds a key object for the encoder keypress.
2021-08-03 13:17:06 +10:00
plarso fd9d531bd9 [Docs] Remove extra word it bootmagic page (#13855) 2021-08-02 18:01:38 -07:00
James Young be9031d01d 0xCB Static: fix qmk info and Configurator issues (#13856) 2021-08-02 17:52:46 -07:00
JTM c2f227d2a8 Function96 V2: Fixed info.json file (#13322)
Fixes the info.json data for the LAYOUT_default and LAYOUT_ansi_splitspace macros.
2021-08-02 01:24:25 -07:00
88 changed files with 4180 additions and 521 deletions

No files matched your search

+1 -1
View File
@@ -146,7 +146,7 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
## Split Keyboards ## Split Keyboards
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. This To do so, add these entries to your `config.h` file: When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file:
```c ```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4 #define BOOTMAGIC_LITE_ROW_RIGHT 4
+10 -7
View File
@@ -65,14 +65,17 @@ Now, we will set up the MSYS2 window to show up in VSCode as the integrated term
```json ```json
{ {
"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe", "terminal.integrated.profiles.windows": {
"terminal.integrated.env.windows": { "QMK_MSYS": {
"MSYSTEM": "MINGW64", "path": "C:/QMK_MSYS/usr/bin/bash.exe",
"CHERE_INVOKING": "1" "env": {
"MSYSTEM": "MINGW64",
"CHERE_INVOKING": "1"
},
"args": ["--login"]
}
}, },
"terminal.integrated.shellArgs.windows": [
"--login"
],
"terminal.integrated.cursorStyle": "line" "terminal.integrated.cursorStyle": "line"
} }
``` ```
+4 -1
View File
@@ -4,8 +4,11 @@
"maintainer": "Conor-Burns", "maintainer": "Conor-Burns",
"width": 12, "width": 12,
"height": 5, "height": 5,
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT_all": {
"layout": [ "layout": [
{"x":11, "y":0}, {"x":11, "y":0},
{"x":0, "y":1}, {"x":0, "y":1},
@@ -23,28 +23,28 @@ enum layer_names {
_FN4 _FN4
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT( [_HOME] = LAYOUT_all(
KC_MPLY, KC_MPLY,
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
), ),
[_FN2] = LAYOUT( [_FN2] = LAYOUT_all(
RESET, RESET,
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN3] = LAYOUT( [_FN3] = LAYOUT_all(
EEP_RST, EEP_RST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN4] = LAYOUT( [_FN4] = LAYOUT_all(
_______, _______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
+4 -4
View File
@@ -23,28 +23,28 @@ enum layer_names {
_FN4 _FN4
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT( [_HOME] = LAYOUT_all(
KC_MPLY, KC_MPLY,
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
), ),
[_FN2] = LAYOUT( [_FN2] = LAYOUT_all(
RESET, RESET,
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN3] = LAYOUT( [_FN3] = LAYOUT_all(
EEP_RST, EEP_RST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN4] = LAYOUT( [_FN4] = LAYOUT_all(
_______, _______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
+35 -17
View File
@@ -28,21 +28,39 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
// clang-format off // clang-format off
#define LAYOUT( \ #define LAYOUT_all( \
K15, \ K15, \
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \ K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \ K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \ K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \
K60, K70, K61, K71, K72, K64, K74, K65, K75 \ K60, K70, K61, K71, K72, K64, K74, K65, K75 \
) \ ) \
{ \ { \
{ K00, K01, K02, K03, K04, K05 }, \ { K00, K01, K02, K03, K04, K05 }, \
{ K10, K11, K12, K13, K14, K15 }, \ { K10, K11, K12, K13, K14, K15 }, \
{ K20, K21, K22, K23, K24, K25 }, \ { K20, K21, K22, K23, K24, K25 }, \
{ K30, K31, K32, K33, K34, K35 }, \ { K30, K31, K32, K33, K34, K35 }, \
{ K40, K41, K42, K43, K44, K45 }, \ { K40, K41, K42, K43, K44, K45 }, \
{ KC_NO, K51, K52, K53, K54, K55 }, \ { KC_NO, K51, K52, K53, K54, K55 }, \
{ K60, K61, KC_NO, KC_NO, K64, K65 }, \ { K60, K61, KC_NO, KC_NO, K64, K65 }, \
{ K70, K71, K72, KC_NO, K74, K75 }, \ { K70, K71, K72, KC_NO, K74, K75 }, \
} }
#define LAYOUT_bigbar( \
K15, \
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \
K60, K70, K61, K72, K65, K75 \
) \
{ \
{ K00, K01, K02, K03, K04, K05 }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K30, K31, K32, K33, K34, K35 }, \
{ K40, K41, K42, K43, K44, K45 }, \
{ KC_NO, K51, K52, K53, K54, K55 }, \
{ K60, K61, KC_NO, KC_NO, KC_NO, K65 }, \
{ K70, KC_NO, K72, KC_NO, KC_NO, K75 }, \
}
// clang-format on // clang-format on
+1 -1
View File
@@ -40,7 +40,7 @@
{ K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___ }, \ { K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___ }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___ }, \ { K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___ }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___ }, \ { K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___ }, \
{ K30, K31, K32, K33, K34, K35, K35, K37, ___, ___, ___, ___ } \ { K30, K31, K32, K33, K34, K35, K36, K37, ___, ___, ___, ___ } \
} }
#define LAYOUT_ortho_4x12( \ #define LAYOUT_ortho_4x12( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
+1 -1
View File
@@ -30,7 +30,7 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 LAYOUTS = ortho_4x4 ortho_4x12
# Disable unsupported hardware # Disable unsupported hardware
AUDIO_SUPPORTED = no AUDIO_SUPPORTED = no
+2 -1
View File
@@ -48,7 +48,8 @@
{ "label": "L", "x": 9.75, "y": 2 }, { "label": "L", "x": 9.75, "y": 2 },
{ "label": ":", "x": 10.75, "y": 2 }, { "label": ":", "x": 10.75, "y": 2 },
{ "label": "\"", "x": 11.75, "y": 2 }, { "label": "\"", "x": 11.75, "y": 2 },
{ "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, { "label": "~", "x": 12.75, "y": 2},
{ "label": "Enter", "x": 13.75, "y": 2, "w": 1.25 },
{ "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, { "label": "Shift", "x": 0, "y": 3, "w": 1.25 },
{ "label": "|", "x": 1.25, "y": 3 }, { "label": "|", "x": 1.25, "y": 3 },
{ "label": "Z", "x": 2.25, "y": 3 }, { "label": "Z", "x": 2.25, "y": 3 },
+19 -2
View File
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum layer { enum layer {
@@ -6,18 +22,19 @@ enum layer {
}; };
#define LY_FUNC MO(LAYER_FUNCTION) #define LY_FUNC MO(LAYER_FUNCTION)
#define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */ #define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
[LAYER_DEFAULT] = LAYOUT( [LAYER_DEFAULT] = LAYOUT(
KC_MPLY, KC_VOLU, KC_MSTP, KC_MPLY, KC_VOLU, KC_MSTP,
KC_MPRV, KC_VOLD, KC_MNXT, KC_MPRV, KC_VOLD, KC_MNXT,
KY_LOCK, KC_MUTE, LY_FUNC KY_LOCK, KC_MUTE, LY_FUNC
), ),
[LAYER_FUNCTION] = LAYOUT( [LAYER_FUNCTION] = LAYOUT(
EEP_RST, _______, RESET, EEP_RST, _______, RESET,
_______, _______, _______, _______, _______, _______,
_______, _______, _______ _______, _______, _______
), ),
// clang-format on
}; };
+623 -9
View File
@@ -1,10 +1,243 @@
{ {
"keyboard_name": "Aves65", "keyboard_name": "Aves65",
"url": "", "url": "",
"maintainer": "Hund", "maintainer": "Hund",
"width": 16, "width": 16,
"height": 5, "height": 5,
"layouts": { "layouts": {
"LAYOUT_all": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso_split_bs": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker": { "LAYOUT_65_iso_blocker": {
"layout": [ "layout": [
{"label":"k00", "x":0, "y":0}, {"label":"k00", "x":0, "y":0},
@@ -22,7 +255,7 @@
{"label":"k0c", "x":12, "y":0}, {"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0}, {"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1}, {"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1}, {"label":"k12", "x":2.5, "y":1},
@@ -37,7 +270,7 @@
{"label":"k1b", "x":11.5, "y":1}, {"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1}, {"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1}, {"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2}, {"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2}, {"label":"k22", "x":2.75, "y":2},
@@ -53,7 +286,7 @@
{"label":"k2c", "x":12.75, "y":2}, {"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2}, {"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3}, {"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3}, {"label":"k32", "x":2.25, "y":3},
@@ -69,7 +302,388 @@
{"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3}, {"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3}, {"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker_split_bs": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_split_bs": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_blocker": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_blocker_split_bs": {
"layout": [
{"label":"k00", "x":0, "y":0},
{"label":"k01", "x":1, "y":0},
{"label":"k02", "x":2, "y":0},
{"label":"k03", "x":3, "y":0},
{"label":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25},
+1 -1
View File
@@ -5,7 +5,7 @@
"width": 14, "width": 14,
"height": 3, "height": 3,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT_ortho_3x11": {
"layout": [ "layout": [
{"x": 0, "y": 0}, {"x": 0, "y": 0},
{"x": 1, "y": 0}, {"x": 1, "y": 0},
-2
View File
@@ -20,5 +20,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_3x11
+10 -12
View File
@@ -17,20 +17,18 @@
#include "quantum.h" #include "quantum.h"
#define LAYOUT( \ #define XXX KC_NO
#define LAYOUT_65_iso_blocker( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \ K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \
) { \ ) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, K49, K4A, XXX, K4C, K4D, K4E }, \
} }
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/
+9 -6
View File
@@ -5,7 +5,7 @@
"width": 16, "width": 16,
"height": 5, "height": 5,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT_65_iso_blocker": {
"layout": [ "layout": [
{"label":"K00 (B0,D0)", "x":0, "y":0}, {"label":"K00 (B0,D0)", "x":0, "y":0},
{"label":"K01 (B0,D1)", "x":1, "y":0}, {"label":"K01 (B0,D1)", "x":1, "y":0},
@@ -22,6 +22,7 @@
{"label":"K0C (B0,C7)", "x":12, "y":0}, {"label":"K0C (B0,C7)", "x":12, "y":0},
{"label":"K0D (B0,F7)", "x":13, "y":0, "w":2}, {"label":"K0D (B0,F7)", "x":13, "y":0, "w":2},
{"label":"K0E (B0,F6)", "x":15, "y":0}, {"label":"K0E (B0,F6)", "x":15, "y":0},
{"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5}, {"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5},
{"label":"K11 (B1,D1)", "x":1.5, "y":1}, {"label":"K11 (B1,D1)", "x":1.5, "y":1},
{"label":"K12 (B1,D2)", "x":2.5, "y":1}, {"label":"K12 (B1,D2)", "x":2.5, "y":1},
@@ -35,8 +36,8 @@
{"label":"K1A (B1,B6)", "x":10.5, "y":1}, {"label":"K1A (B1,B6)", "x":10.5, "y":1},
{"label":"K1B (B1,C6)", "x":11.5, "y":1}, {"label":"K1B (B1,C6)", "x":11.5, "y":1},
{"label":"K1C (B1,C7)", "x":12.5, "y":1}, {"label":"K1C (B1,C7)", "x":12.5, "y":1},
{"label":"K1D (B1,F7)", "x":13.5, "y":1, "w":1.5},
{"label":"K1E (B1,F6)", "x":15, "y":1}, {"label":"K1E (B1,F6)", "x":15, "y":1},
{"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75}, {"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75},
{"label":"K22 (B2,D2)", "x":1.75, "y":2}, {"label":"K22 (B2,D2)", "x":1.75, "y":2},
{"label":"K23 (B2,D3)", "x":2.75, "y":2}, {"label":"K23 (B2,D3)", "x":2.75, "y":2},
@@ -49,10 +50,12 @@
{"label":"K2A (B2,B6)", "x":9.75, "y":2}, {"label":"K2A (B2,B6)", "x":9.75, "y":2},
{"label":"K2B (B2,C6)", "x":10.75, "y":2}, {"label":"K2B (B2,C6)", "x":10.75, "y":2},
{"label":"K2C (B2,C7)", "x":11.75, "y":2}, {"label":"K2C (B2,C7)", "x":11.75, "y":2},
{"label":"K2D (B2,F7)", "x":12.75, "y":2, "w":2.25}, {"label":"K2D (B2,F7)", "x":12.75, "y":2},
{"label":"K1D (B1,F7)", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"K2E (B2,F6)", "x":15, "y":2}, {"label":"K2E (B2,F6)", "x":15, "y":2},
{"label":"K30 (B2,D1)", "x":0, "y":3, "w":1.25},
{"label":"K31 (B3,D1)", "x":1.25, "y":3, "w":1}, {"label":"K30 (B3,D0)", "x":0, "y":3, "w":1.25},
{"label":"K31 (B3,D1)", "x":1.25, "y":3},
{"label":"K32 (B3,D2)", "x":2.25, "y":3}, {"label":"K32 (B3,D2)", "x":2.25, "y":3},
{"label":"K33 (B3,D3)", "x":3.25, "y":3}, {"label":"K33 (B3,D3)", "x":3.25, "y":3},
{"label":"K34 (B3,D5)", "x":4.25, "y":3}, {"label":"K34 (B3,D5)", "x":4.25, "y":3},
@@ -66,6 +69,7 @@
{"label":"K3C (B3,C7)", "x":12.25, "y":3, "w":1.75}, {"label":"K3C (B3,C7)", "x":12.25, "y":3, "w":1.75},
{"label":"K3D (B3,F7)", "x":14, "y":3}, {"label":"K3D (B3,F7)", "x":14, "y":3},
{"label":"K3E (B3,F6)", "x":15, "y":3}, {"label":"K3E (B3,F6)", "x":15, "y":3},
{"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25}, {"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25},
{"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25}, {"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25}, {"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25},
@@ -78,5 +82,4 @@
] ]
} }
} }
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
} }
+40 -45
View File
@@ -58,82 +58,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
/* 0: ISO qwerty */ /* 0: ISO qwerty */
[_BL] = LAYOUT( [_BL] = LAYOUT_65_iso_blocker(
KC_CAPS, 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_CAPS, 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_ENT, TD(TD_HOME_END), 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, TD(TD_HOME_END),
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT
), ),
#else #else
[_BL] = LAYOUT( [_BL] = LAYOUT_65_iso_blocker(
KC_CAPS, 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_CAPS, 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_ENT, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_HOME,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT KC_LCTL, KC_LGUI, KC_LAPO, KC_SPC, KC_RAPC, MO(_RED_), KC_LEFT, KC_DOWN, KC_RGHT
), ),
#endif #endif
[_RED_] = LAYOUT( [_RED_] = LAYOUT_65_iso_blocker(
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, _______, LGUI(KC_END), 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, _______, LGUI(KC_END),
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, TO(0), LGUI(KC_PAUSE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PAUSE),
_______, TO(_GREEN_), TO(_BLUE_), TO(_CYAN_), TO(_MAGENTA_), TO(_YELLOW_), _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_GREEN_), TO(_BLUE_), TO(_CYAN_), TO(_MAGENTA_), TO(_YELLOW_), _______, _______, _______, _______, _______, _______, _______, TO(0), _______,
_______,_______ ,_______ ,_______ , _______, _______, _______, _______, _______, _______, _______, _______,_______ , KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______,
RESET, _______, _______, KC_LEAD, _______, _______, KC_MPLY, KC_VOLD, KC_MUTE RESET, _______, _______, KC_LEAD, _______, _______, KC_MPLY, KC_VOLD, KC_MUTE
), ),
[_GREEN_] = LAYOUT( [_GREEN_] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______,_______ , _______, _______, _______, KC_PGDN, KC_PGUP, KC_PSCR,_______, _______, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, KC_PSCR, _______, _______, _______, _______,
_______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, KC_MS_BTN1, KC_MS_BTN2, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_BTN2, _______, TO(0), _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_BLUE_] = LAYOUT( [_BLUE_] = LAYOUT_65_iso_blocker(
_______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, DM_PLY1, DM_PLY2, _______, _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______,
_______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______, _______,KC_P7, KC_P8, KC_P9, KC_PMNS, TO(0), _______, _______, DM_REC1, DM_REC2, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, TO(0), _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, _______, KC_0, KC_PCMM, _______, _______, _______
_______, _______, _______, _______, KC_0, KC_PCMM, _______, _______, _______
), ),
[_CYAN_] = LAYOUT( [_CYAN_] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_MAGENTA_] = LAYOUT( [_MAGENTA_] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_YELLOW_] = LAYOUT( [_YELLOW_] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
/*template /*template
[_UL] = LAYOUT( [_UL] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(0), _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
) )
+14 -13
View File
@@ -16,20 +16,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(
KC_CAPS, 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_ENT, KC_HOME,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
), [0] = LAYOUT_65_iso_blocker(
[1] = LAYOUT( KC_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,
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 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_HOME,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
_______, _______, _______, _______, _______, _______, _______, _______, _______ ),
[1] = LAYOUT_65_iso_blocker(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
}; };
+28 -24
View File
@@ -16,33 +16,37 @@
#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(
KC_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, [0] = LAYOUT_65_iso_blocker(
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_ENT, KC_HOME, KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_PGUP, 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_HOME,
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
), ),
[1] = LAYOUT(
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, [1] = LAYOUT_65_iso_blocker(
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ),
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ [2] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
}; };
+2
View File
@@ -23,3 +23,5 @@ AUDIO_ENABLE = no # Audio output
RGB_MATRIX_ENABLE = yes RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812 RGB_MATRIX_DRIVER = WS2812
LTO_ENABLE = yes LTO_ENABLE = yes
LAYOUTS = 65_iso_blocker
@@ -5,7 +5,7 @@
"width": 3, "width": 3,
"height": 2, "height": 2,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT_ortho_2x3": {
"layout": [ "layout": [
{ "label": "k00", "x": 0, "y": 0 }, { "label": "k00", "x": 0, "y": 0 },
{ "label": "k01", "x": 1, "y": 0 }, { "label": "k01", "x": 1, "y": 0 },
+11 -1
View File
@@ -6,7 +6,17 @@
"height": 4.5, "height": 4.5,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [{"x":0, "y":2.5}, {"x":1, "y":2.5}, {"x":2, "y":2.5}, {"x":0, "y":3.5}, {"x":1, "y":3.5}, {"x":2, "y":3.5}] "layout": [
{"x":0.5, "y":0, "w":2, "h":2},
{"x":0, "y":2.5},
{"x":1, "y":2.5},
{"x":2, "y":2.5},
{"x":0, "y":3.5},
{"x":1, "y":3.5},
{"x":2, "y":3.5}
]
} }
} }
} }
+2 -2
View File
@@ -23,8 +23,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0xFEED #define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060 #define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER ckeys_handwire #define MANUFACTURER cKeys
#define PRODUCT ckeys_handwire #define PRODUCT Handwire 101
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4
+16 -27
View File
@@ -1,28 +1,17 @@
/* Copyright 2019 Branden Byers
*
* 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 "handwire_101.h" #include "handwire_101.h"
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
// Turn status LED on
//DDRD |= (1<<6);
//PORTD |= (1<<6);
matrix_init_user();
}
void matrix_scan_kb(void) {
// put your looping keyboard code here
// runs every cycle (a lot)
matrix_scan_user();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here
// runs for every action, just before processing by the firmware
return process_record_user(keycode, record);
}
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
led_set_user(usb_led);
}
+17 -6
View File
@@ -1,12 +1,24 @@
/* Copyright 2019 Branden Byers
*
* 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 #pragma once
#include "quantum.h" #include "quantum.h"
// This a shortcut to help you visually see your layout. #define LAYOUT_ortho_4x4( \
// The following is an example using the Planck MIT layout
// The first section contains all of the arguements
// The second converts the arguments into a two-dimensional array
#define LAYOUT( \
k00, k01, k02, k03, \ k00, k01, k02, k03, \
k10, k11, k12, k13, \ k10, k11, k12, k13, \
k20, k21, k22, k23, \ k20, k21, k22, k23, \
@@ -18,4 +30,3 @@
{ k20, k21, k22, k23 }, \ { k20, k21, k22, k23 }, \
{ k30, k31, k32, k33 } \ { k30, k31, k32, k33 } \
} }
+32 -10
View File
@@ -1,13 +1,35 @@
{ {
"keyboard_name": "cKeys Handwire 101", "keyboard_name": "cKeys Handwire 101",
"url": "https://ckeys.org/slides/handwire/", "url": "https://ckeys.org/slides/handwire/",
"maintainer": "brandenbyers", "maintainer": "brandenbyers",
"width": 4, "width": 4,
"height": 4, "height": 4,
"layouts": { "layout_aliases": {
"LAYOUT_ortho_4x4": { "LAYOUT": "LAYOUT_ortho_4x4"
"key_count": 16, },
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}] "layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3}
]
}
} }
}
} }
@@ -1,3 +0,0 @@
#pragma once
// Add overrides here
@@ -1,177 +1,191 @@
/* Copyright 2019 Branden Byers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum layers { enum layers {
_BASE, // base layer _BASE, // base layer
_LAYERS, // layer of all layers _LAYERS, // layer of all layers
_MUSIC, // music mode _MUSIC, // music mode
_MUSIC_4_LIFE, // music mode until unplugged _MUSIC_4_LIFE, // music mode until unplugged
_MOUSE, // mousekeys _MOUSE, // mousekeys
_TERMINAL, // terminal _TERMINAL, // terminal
_ADMIN // admin duties _ADMIN // admin duties
}; };
enum custom_keycodes { enum custom_keycodes {
TERM_ABOUT = SAFE_RANGE, TERM_ABOUT = SAFE_RANGE,
TERM_PRINT, TERM_PRINT,
TERM_FLUSH, TERM_FLUSH,
TERM_HELP, TERM_HELP,
CKEYS_ABOUT, CKEYS_ABOUT,
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* BASE (numpad) /* BASE (numpad)
* ,-----------------------. * ,-----------------------.
* | 7 | 8 | 9 | / | <-- Hold for LAYERS * | 7 | 8 | 9 | / | <-- Hold for LAYERS
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | 4 | 5 | 6 | * | * | 4 | 5 | 6 | * |
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | 1 | 2 | 3 | - | * | 1 | 2 | 3 | - |
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | 0 | . | = | + | * | 0 | . | = | + |
* `---------------------- ' * `-----------------------'
*/ */
[_BASE] = LAYOUT( [_BASE] = LAYOUT_ortho_4x4(
KC_KP_7, KC_KP_8, KC_KP_9, LT(MO(_LAYERS), KC_PSLS), \ KC_P7, KC_P8, KC_P9, LT(_LAYERS, KC_PSLS),
KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST, \ KC_P4, KC_P5, KC_P6, KC_PAST,
KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS, \ KC_P1, KC_P2, KC_P3, KC_PMNS,
KC_KP_0, KC_KP_DOT, KC_KP_EQUAL, KC_PPLS \ KC_P0, KC_PDOT, KC_PEQL, KC_PPLS
), ),
/* LAYERS /* LAYERS
* ,---------------------------. * ,---------------------------.
* | MUSIC | | | X | * | MUSIC | | | X |
* |---------+-----+-----+-----| * |---------+-----+-----+-----|
* | MOUSE | | | | * | MOUSE | | | |
* |---------+-----+-----+-----| * |---------+-----+-----+-----|
* |TERMINAL | | | | * |TERMINAL | | | |
* |---------+-----+-----+-----| * |---------+-----+-----+-----|
* | ADMIN | | | | * | ADMIN | | | |
* `---------------------------' * `---------------------------'
*/ */
[_LAYERS] = LAYOUT( [_LAYERS] = LAYOUT_ortho_4x4(
TG(_MUSIC), _______, _______, _______, \ TG(_MUSIC), _______, _______, _______,
TG(_MOUSE), _______, _______, _______, \ TG(_MOUSE), _______, _______, _______,
TG(_TERMINAL), _______, _______, _______, \ TG(_TERMINAL), _______, _______, _______,
TG(_ADMIN), _______, _______, _______\ TG(_ADMIN), _______, _______, _______
), ),
/* MUSIC /* MUSIC
* ,-----------------------. * ,-----------------------.
* | X | | | X | * | X | | | X |
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | | | |4EVER| * | | | |4EVER|
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | OFF | | | | * | OFF | | | |
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | ON | | |MODES| * | ON | | |MODES|
* `---------------------- ' * `-----------------------'
*/ */
// TODO: Make this music layer the one to jump to other music layers (different octaves) // TODO: Make this music layer the one to jump to other music layers (different octaves)
[_MUSIC] = LAYOUT( [_MUSIC] = LAYOUT_ortho_4x4(
_______, _______, _______, _______, \ _______, _______, _______, _______,
_______, _______, _______, TG(_MUSIC_4_LIFE), \ _______, _______, _______, TG(_MUSIC_4_LIFE),
MU_OFF, _______, _______, _______, \ MU_OFF, _______, _______, _______,
MU_ON, _______, _______, MU_MOD \ MU_ON, _______, _______, MU_MOD
), ),
/* MUSIC_4_LIFE /* MUSIC_4_LIFE
* ,-----------------------. * ,-----------------------.
* | ♫ | ♫ | ♫ | ♫ | * | ♫ | ♫ | ♫ | ♫ |
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | ♫ | ♫ | ♫ | ♫ | * | ♫ | ♫ | ♫ | ♫ |
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | ♫ | ♫ | ♫ | ♫ | * | ♫ | ♫ | ♫ | ♫ |
* |-----+-----+-----+-----| * |-----+-----+-----+-----|
* | ♫ | ♫ | ♫ | ♫ | * | ♫ | ♫ | ♫ | ♫ |
* `---------------------- ' * `-----------------------'
*/ */
[_MUSIC_4_LIFE] = LAYOUT( [_MUSIC_4_LIFE] = LAYOUT_ortho_4x4(
KC_M, KC_M, KC_M, KC_M, \ KC_M, KC_M, KC_M, KC_M,
KC_M, KC_M, KC_M, KC_M, \ KC_M, KC_M, KC_M, KC_M,
KC_M, KC_M, KC_M, KC_M, \ KC_M, KC_M, KC_M, KC_M,
KC_M, KC_M, KC_M, KC_M \ KC_M, KC_M, KC_M, KC_M
), ),
/* MOUSE /* MOUSE
* ,-------------------------------------------------. * ,-------------------------------------------------.
* | BUTTON 5 | | SCROLL UP | X | * | BUTTON 5 | | SCROLL UP | X |
* |-----------+-----------+------------+------------| * |-----------+-----------+------------+------------|
* | X |LEFT CLICK | UP |RIGHT CLICK | * | X |LEFT CLICK | UP |RIGHT CLICK |
* |-----------+-----------+------------+------------| * |-----------+-----------+------------+------------|
* | BUTTON 4 | LEFT | DOWN | RIGHT | * | BUTTON 4 | LEFT | DOWN | RIGHT |
* |-----------+-----------+------------+------=-----| * |-----------+-----------+------------+------=-----|
* | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT| * | BUTTON 3 |SCROLL LEFT|SCROLL DOWN |SCROLL RIGHT|
* `-------------------------------------------------' * `-------------------------------------------------'
*/ */
[_MOUSE] = LAYOUT( [_MOUSE] = LAYOUT_ortho_4x4(
KC_MS_BTN5, _______, KC_MS_WH_UP, _______, \ KC_BTN5, _______, KC_WH_U, _______,
_______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, \ _______, KC_BTN1, KC_MS_U, KC_BTN2,
KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, \ KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R,
KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT \ KC_BTN3, KC_WH_L, KC_WH_D, KC_WH_R
), ),
/* TERMINAL /* TERMINAL
* ,---------------------------------------. * ,---------------------------------------.
* | |ABOUT| | X | * | |ABOUT| | X |
* |------------+-----+----------+---------| * |------------+-----+----------+---------|
* |TERMINAL OFF|PRINT| | | * |TERMINAL OFF|PRINT| | |
* |------------+-----+----------+---------| * |------------+-----+----------+---------|
* | X |FLUSH| | | * | X |FLUSH| | |
* |------------+-----+----------+---------| * |------------+-----+----------+---------|
* |TERMINAL ON |HELP | | | * |TERMINAL ON |HELP | | |
* `--------=======------------------------' * `--------=======------------------------'
*/ */
[_TERMINAL] = LAYOUT( [_TERMINAL] = LAYOUT_ortho_4x4(
_______, TERM_ABOUT, _______, _______, \ _______, TERM_ABOUT, _______, _______,
TERM_OFF, TERM_PRINT, _______, _______, \ TERM_OFF, TERM_PRINT, _______, _______,
_______, TERM_FLUSH, _______, _______, \ _______, TERM_FLUSH, _______, _______,
TERM_ON, TERM_HELP , _______, _______\ TERM_ON, TERM_HELP , _______, _______
), ),
/* ADMIN /* ADMIN
* ,-----------------------------------------. * ,-----------------------------------------.
* | RESET | | | X | * | RESET | | | X |
* |------------+-----+-----------+----------| * |------------+-----+-----------+----------|
* |ABOUT CKEYS | | | | * |ABOUT CKEYS | | | |
* |------------+-----+-----------+----------| * |------------+-----+-----------+----------|
* | | |CLICKY UP |CLICKY OFF| * | | |CLICKY UP |CLICKY OFF|
* |------------+-----+-----------+----------| * |------------+-----+-----------+----------|
* | X | |CLICKY DOWN|CLICKY ON | * | X | |CLICKY DOWN|CLICKY ON |
* `-----------------------------------------' * `-----------------------------------------'
*/ */
[_ADMIN] = LAYOUT( [_ADMIN] = LAYOUT_ortho_4x4(
RESET, _______, _______, _______, \ RESET, _______, _______, _______,
CKEYS_ABOUT, _______, _______, _______, \ CKEYS_ABOUT, _______, _______, _______,
_______, _______, _______, CK_OFF, \ _______, _______, _______, CK_OFF,
_______, _______, _______, CK_ON \ _______, _______, _______, CK_ON
), ),
}; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) { switch (keycode) {
case TERM_ABOUT: case TERM_ABOUT:
if (record->event.pressed) { if (record->event.pressed) {
// when keycode TERM_ABOUT is pressed // when keycode TERM_ABOUT is pressed
SEND_STRING("about"SS_TAP(X_ENTER)); SEND_STRING("about\n");
} else { }
// when keycode TERM_ABOUT is released break;
} case TERM_PRINT:
break; if (record->event.pressed) {
case TERM_PRINT: SEND_STRING("print\n");
if (record->event.pressed) { }
SEND_STRING("print"SS_TAP(X_ENTER)); break;
} else { } case TERM_FLUSH:
break; if (record->event.pressed) {
case TERM_FLUSH: SEND_STRING("flush\n");
if (record->event.pressed) { }
SEND_STRING("flush"SS_TAP(X_ENTER)); break;
} else { } case TERM_HELP:
break; if (record->event.pressed) {
case TERM_HELP: SEND_STRING("help\n");
if (record->event.pressed) { }
SEND_STRING("help"SS_TAP(X_ENTER)); break;
} else { } case CKEYS_ABOUT:
break; if (record->event.pressed) {
case CKEYS_ABOUT: SEND_STRING("https://cKeys.org\nMaking people smile one keyboard at a time.\ncKeys is a volunteer-run 501(c)(3) nonprofit organization.\n");
if (record->event.pressed) { }
SEND_STRING("https://cKeys.org"SS_TAP(X_ENTER)"Making people smile one keyboard at a time."SS_TAP(X_ENTER)"cKeys is a volunteer-run 501(c)(3) nonprofit organization."SS_TAP(X_ENTER)); break;
} else { } }
break; return true;
}
return true;
}; };
-7
View File
@@ -2,13 +2,6 @@
MCU = atmega32u4 MCU = atmega32u4
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = caterina BOOTLOADER = caterina
# Build Options # Build Options
+68
View File
@@ -0,0 +1,68 @@
/* Copyright 2019 /u/KeepItUnder
*
* 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
#include "quantum.h"
/* This a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO }, \
{ k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \
}
#define LAYOUT_ansi( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, KC_NO }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \
{ k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO }, \
{ k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \
}
#define LAYOUT_iso( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO, }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, KC_NO, }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO, }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO, }, \
{ k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d } \
}
@@ -0,0 +1,57 @@
/*
ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include "hal.h"
#if HAL_USE_PAL || defined(__DOXYGEN__)
/**
* @brief PAL setup.
* @details Digital I/O ports static configuration as defined in @p board.h.
* This variable is used by the HAL when initializing the PAL driver.
*/
const PALConfig pal_default_config = {
# if NUC123_HAS_GPIOA
{VAL_GPIOA_PMD, VAL_GPIOA_OFFD, VAL_GPIOA_DMASK, VAL_GPIOA_DBEN, VAL_GPIOA_IMD, VAL_GPIOA_IEN, VAL_GPIOA_ISRC, VAL_GPIOA_DOUT},
# endif
# if NUC123_HAS_GPIOB
{VAL_GPIOB_PMD, VAL_GPIOB_OFFD, VAL_GPIOB_DMASK, VAL_GPIOB_DBEN, VAL_GPIOB_IMD, VAL_GPIOB_IEN, VAL_GPIOB_ISRC, VAL_GPIOB_DOUT},
# endif
# if NUC123_HAS_GPIOC
{VAL_GPIOC_PMD, VAL_GPIOC_OFFD, VAL_GPIOC_DMASK, VAL_GPIOC_DBEN, VAL_GPIOC_IMD, VAL_GPIOC_IEN, VAL_GPIOC_ISRC, VAL_GPIOC_DOUT},
# endif
# if NUC123_HAS_GPIOD
{VAL_GPIOD_PMD, VAL_GPIOD_OFFD, VAL_GPIOD_DMASK, VAL_GPIOD_DBEN, VAL_GPIOD_IMD, VAL_GPIOD_IEN, VAL_GPIOD_ISRC, VAL_GPIOD_DOUT},
# endif
# if NUC123_HAS_GPIOF
{VAL_GPIOF_PMD, VAL_GPIOF_OFFD, VAL_GPIOF_DMASK, VAL_GPIOF_DBEN, VAL_GPIOF_IMD, VAL_GPIOF_IEN, VAL_GPIOF_ISRC, VAL_GPIOF_DOUT},
# endif
};
#endif
/**
* @brief Early initialization code.
* @details This initialization must be performed just after stack setup
* and before any other initialization.
*/
void __early_init(void) {
NUC123_clock_init();
}
/**
* @brief Board-specific initialization code.
* @todo Add your board-specific code, if any.
*/
void boardInit(void) {}
@@ -0,0 +1,961 @@
/*
ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef BOARD_H
#define BOARD_H
/*
* Setup for Generic NUC123 board.
*/
/*
* Board identifier.
*/
#define BOARD_NUC123SD4AN0
#define BOARD_NAME "Nuvoton NUC123SD4AN0 MCU"
/*
* Board oscillators-related settings.
* NOTE: LSE not fitted.
* NOTE: HSE is fitted.
*/
#if !defined(NUC123_LSECLK)
#define NUC123_LSECLK 0U
#endif
#define NUC123_LSEDRV (3U << 3U)
#if !defined(NUC123_HSECLK)
#define NUC123_HSECLK 12000000U
#endif
//#define NUC123_HSE_BYPASS
/*
* MCU type as defined in the NUC123 header.
*/
#define NUC123SD4AN0
/*
* GPIO Multi Function Pin USB Setup
* Requires Some GPIO pins to be disabled/set to USB
*/
/*
* IO pins assignments.
*/
#define GPIOA_PIN0 0U
#define GPIOA_PIN1 1U
#define GPIOA_PIN2 2U
#define GPIOA_PIN3 3U
#define GPIOA_PIN4 4U
#define GPIOA_PIN5 5U
#define GPIOA_PIN6 6U
#define GPIOA_PIN7 7U
#define GPIOA_PIN8 8U
#define GPIOA_PIN9 9U
#define GPIOA_SPI1_MISO0 10U
#define GPIOA_SPI1_CLK 11U
#define GPIOA_PWM0 12U
#define GPIOA_PWM1 13U
#define GPIOA_PWM2 14U
#define GPIOA_PWM3 15U
#define GPIOB_UART0_RXD 0U
#define GPIOB_UART0_TXD 1U
#define GPIOB_UART0_RTS 2U
#define GPIOB_UART0_CTS 3U
#define GPIOB_UART1_RXD 4U
#define GPIOB_UART1_TXD 5U
#define GPIOB_UART1_RTS 6U
#define GPIOB_UART1_CTS 7U
#define GPIOB_TM0 8U
#define GPIOB_TM1 9U
#define GPIOB_TM2 10U
#define GPIOB_PIN11 11U
#define GPIOB_CLK0 12U
#define GPIOB_PIN13 13U
#define GPIOB_INT0 14U
#define GPIOB_INT1 15U
#define GPIOC_PIN0 0U
#define GPIOC_PIN1 1U
#define GPIOC_PIN2 2U
#define GPIOC_PIN3 3U
#define GPIOC_PIN4 4U
#define GPIOC_PIN5 5U
#define GPIOC_PIN6 6U
#define GPIOC_PIN7 7U
#define GPIOC_PIN8 8U
#define GPIOC_PIN9 9U
#define GPIOC_PIN10 10U
#define GPIOC_PIN11 11U
#define GPIOC_PIN12 12U
#define GPIOC_PIN13 13U
#define GPIOC_PIN14 14U
#define GPIOC_PIN15 15U
#define GPIOD_ADC0 0U
#define GPIOD_ADC1 1U
#define GPIOD_ADC2 2U
#define GPIOD_ADC3 3U
#define GPIOD_ADC4 4U
#define GPIOD_ADC5 5U
#define GPIOD_PIN6 6U
#define GPIOD_PIN7 7U
#define GPIOD_PIN8 8U
#define GPIOD_PIN9 9U
#define GPIOD_PIN10 10U
#define GPIOD_PIN11 11U
#define GPIOD_PIN12 12U
#define GPIOD_PIN13 13U
#define GPIOD_PIN14 14U
#define GPIOD_PIN15 15U
#define GPIOE_PIN0 0U
#define GPIOE_PIN1 1U
#define GPIOE_PIN2 2U
#define GPIOE_PIN3 3U
#define GPIOE_PIN4 4U
#define GPIOE_PIN5 5U
#define GPIOE_PIN6 6U
#define GPIOE_PIN7 7U
#define GPIOE_PIN8 8U
#define GPIOE_PIN9 9U
#define GPIOE_PIN10 10U
#define GPIOE_PIN11 11U
#define GPIOE_PIN12 12U
#define GPIOE_PIN13 13U
#define GPIOE_PIN14 14U
#define GPIOE_PIN15 15U
#define GPIOF_OSC_OUT 0U
#define GPIOF_OSC_IN 1U
#define GPIOF_I2C0_SDA 2U
#define GPIOF_I2C0_SCL 3U
#define GPIOF_PIN4 4U
#define GPIOF_PIN5 5U
#define GPIOF_PIN6 6U
#define GPIOF_PIN7 7U
#define GPIOF_PIN8 8U
#define GPIOF_PIN9 9U
#define GPIOF_PIN10 10U
#define GPIOF_PIN11 11U
#define GPIOF_PIN12 12U
#define GPIOF_PIN13 13U
#define GPIOF_PIN14 14U
#define GPIOF_PIN15 15U
/*
* IO lines assignments.
*/
#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
// #define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
// #define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
// #define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
/*
* I/O ports initial setup, this configuration is established soon after reset
* in the initialization code.
* Please refer to the NUC123 Reference Manual for details.
*/
#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
#define PIN_MODE_OPENDRAIN(n) (2U << ((n) * 2U))
#define PIN_MODE_QUASI(n) (3U << ((n) * 2U))
#define PIN_DIGITAL_EN(n) (0U << (n))
#define PIN_DIGITAL_DIS(n) (1U << (n))
#define PIN_DMASK_DIS(n) (0U << (n))
#define PIN_DMASK_EN(n) (1U << (n))
#define PIN_DBNCE_DIS(n) (0U << (n))
#define PIN_DBNCE_EN(n) (1U << (n))
#define PIN_IMD_EDGE(n) (0U << (n))
#define PIN_IMD_LVL(n) (1U << (n))
#define PIN_IEN_FELL_DIS(n) (0U << (n))
#define PIN_IEN_FELL_EN(n) (1U << (n))
#define PIN_IEN_REHL_DIS(n) ((0U << (n)) << 16)
#define PIN_IEN_REHL_EN(n) ((1U << (n)) << 16)
#define PIN_ISRC_EN(n) (1U << (n))
#define PIN_ISRC_DIS(n) (0U << (n))
#define PIN_ISRC_CLR(n) (1U << (n))
#define PIN_DATA_LOW(n) (0U << (n))
#define PIN_DATA_HIGH(n) (1U << (n))
/*
* GPIOA setup:
*
* PA0 - PIN0 (input pullup).
* PA1 - PIN1 (input pullup).
* PA2 - PIN2 (input pullup).
* PA3 - PIN3 (input pullup).
* PA4 - PIN4 (input pullup).
* PA5 - PIN5 (input pullup).
* PA6 - PIN6 (input pullup).
* PA7 - PIN7 (input pullup).
* PA8 - PIN8 (input pullup).
* PA9 - PIN9 (input pullup).
* PA10 - SPI1_MISO0 (input pullup).
* PA11 - SPI1_CLK (input floating).
* PA12 - PWM0 (input floating).
* PA13 - PWM1 (input pullup).
* PA14 - PWM2 (input pullup).
* PA15 - PWM3 (input pullup).
*/
#define VAL_GPIOA_PMD (PIN_MODE_INPUT(GPIOA_PIN0) | \
PIN_MODE_INPUT(GPIOA_PIN1) | \
PIN_MODE_INPUT(GPIOA_PIN2) | \
PIN_MODE_INPUT(GPIOA_PIN3) | \
PIN_MODE_INPUT(GPIOA_PIN4) | \
PIN_MODE_INPUT(GPIOA_PIN5) | \
PIN_MODE_INPUT(GPIOA_PIN6) | \
PIN_MODE_INPUT(GPIOA_PIN7) | \
PIN_MODE_INPUT(GPIOA_PIN8) | \
PIN_MODE_INPUT(GPIOA_PIN9) | \
PIN_MODE_INPUT(GPIOA_SPI1_MISO0) | \
PIN_MODE_INPUT(GPIOA_SPI1_CLK) | \
PIN_MODE_INPUT(GPIOA_PWM0) | \
PIN_MODE_INPUT(GPIOA_PWM1) | \
PIN_MODE_INPUT(GPIOA_PWM2) | \
PIN_MODE_INPUT(GPIOA_PWM3))
#define VAL_GPIOA_OFFD (PIN_DIGITAL_EN(GPIOA_PIN0) | \
PIN_DIGITAL_EN(GPIOA_PIN1) | \
PIN_DIGITAL_EN(GPIOA_PIN2) | \
PIN_DIGITAL_EN(GPIOA_PIN3) | \
PIN_DIGITAL_EN(GPIOA_PIN4) | \
PIN_DIGITAL_EN(GPIOA_PIN5) | \
PIN_DIGITAL_EN(GPIOA_PIN6) | \
PIN_DIGITAL_EN(GPIOA_PIN7) | \
PIN_DIGITAL_EN(GPIOA_PIN8) | \
PIN_DIGITAL_EN(GPIOA_PIN9) | \
PIN_DIGITAL_EN(GPIOA_SPI1_MISO0) | \
PIN_DIGITAL_EN(GPIOA_SPI1_CLK) | \
PIN_DIGITAL_EN(GPIOA_PWM0) | \
PIN_DIGITAL_EN(GPIOA_PWM1) | \
PIN_DIGITAL_EN(GPIOA_PWM2) | \
PIN_DIGITAL_EN(GPIOA_PWM3))
#define VAL_GPIOA_DMASK (PIN_DMASK_EN(GPIOA_PIN0) | \
PIN_DMASK_EN(GPIOA_PIN1) | \
PIN_DMASK_EN(GPIOA_PIN2) | \
PIN_DMASK_EN(GPIOA_PIN3) | \
PIN_DMASK_EN(GPIOA_PIN4) | \
PIN_DMASK_EN(GPIOA_PIN5) | \
PIN_DMASK_EN(GPIOA_PIN6) | \
PIN_DMASK_EN(GPIOA_PIN7) | \
PIN_DMASK_EN(GPIOA_PIN8) | \
PIN_DMASK_EN(GPIOA_PIN9) | \
PIN_DMASK_EN(GPIOA_SPI1_MISO0) | \
PIN_DMASK_EN(GPIOA_SPI1_CLK) | \
PIN_DMASK_EN(GPIOA_PWM0) | \
PIN_DMASK_EN(GPIOA_PWM1) | \
PIN_DMASK_EN(GPIOA_PWM2) | \
PIN_DMASK_EN(GPIOA_PWM3))
#define VAL_GPIOA_DBEN (PIN_DBNCE_EN(GPIOA_PIN0) | \
PIN_DBNCE_EN(GPIOA_PIN1) | \
PIN_DBNCE_EN(GPIOA_PIN2) | \
PIN_DBNCE_EN(GPIOA_PIN3) | \
PIN_DBNCE_EN(GPIOA_PIN4) | \
PIN_DBNCE_EN(GPIOA_PIN5) | \
PIN_DBNCE_EN(GPIOA_PIN6) | \
PIN_DBNCE_EN(GPIOA_PIN7) | \
PIN_DBNCE_EN(GPIOA_PIN8) | \
PIN_DBNCE_EN(GPIOA_PIN9) | \
PIN_DBNCE_EN(GPIOA_SPI1_MISO0) | \
PIN_DBNCE_EN(GPIOA_SPI1_CLK) | \
PIN_DBNCE_EN(GPIOA_PWM0) | \
PIN_DBNCE_EN(GPIOA_PWM1) | \
PIN_DBNCE_EN(GPIOA_PWM2) | \
PIN_DBNCE_EN(GPIOA_PWM3))
#define VAL_GPIOA_IMD (PIN_IMD_EDGE(GPIOA_PIN0) | \
PIN_IMD_EDGE(GPIOA_PIN1) | \
PIN_IMD_EDGE(GPIOA_PIN2) | \
PIN_IMD_EDGE(GPIOA_PIN3) | \
PIN_IMD_EDGE(GPIOA_PIN4) | \
PIN_IMD_EDGE(GPIOA_PIN5) | \
PIN_IMD_EDGE(GPIOA_PIN6) | \
PIN_IMD_EDGE(GPIOA_PIN7) | \
PIN_IMD_EDGE(GPIOA_PIN8) | \
PIN_IMD_EDGE(GPIOA_PIN9) | \
PIN_IMD_EDGE(GPIOA_SPI1_MISO0) | \
PIN_IMD_EDGE(GPIOA_SPI1_CLK) | \
PIN_IMD_EDGE(GPIOA_PWM0) | \
PIN_IMD_EDGE(GPIOA_PWM1) | \
PIN_IMD_EDGE(GPIOA_PWM2) | \
PIN_IMD_EDGE(GPIOA_PWM3))
#define VAL_GPIOA_IEN (PIN_IEN_FELL_DIS(GPIOA_PIN0) | \
PIN_IEN_FELL_DIS(GPIOA_PIN1) | \
PIN_IEN_FELL_DIS(GPIOA_PIN2) | \
PIN_IEN_FELL_DIS(GPIOA_PIN3) | \
PIN_IEN_FELL_DIS(GPIOA_PIN4) | \
PIN_IEN_FELL_DIS(GPIOA_PIN5) | \
PIN_IEN_FELL_DIS(GPIOA_PIN6) | \
PIN_IEN_FELL_DIS(GPIOA_PIN7) | \
PIN_IEN_FELL_DIS(GPIOA_PIN8) | \
PIN_IEN_FELL_DIS(GPIOA_PIN9) | \
PIN_IEN_FELL_DIS(GPIOA_SPI1_MISO0) | \
PIN_IEN_FELL_DIS(GPIOA_SPI1_CLK) | \
PIN_IEN_FELL_DIS(GPIOA_PWM0) | \
PIN_IEN_FELL_DIS(GPIOA_PWM1) | \
PIN_IEN_FELL_DIS(GPIOA_PWM2) | \
PIN_IEN_FELL_DIS(GPIOA_PWM3))
#define VAL_GPIOA_ISRC (PIN_ISRC_DIS(GPIOA_PIN0) | \
PIN_ISRC_DIS(GPIOA_PIN1) | \
PIN_ISRC_DIS(GPIOA_PIN2) | \
PIN_ISRC_DIS(GPIOA_PIN3) | \
PIN_ISRC_DIS(GPIOA_PIN4) | \
PIN_ISRC_DIS(GPIOA_PIN5) | \
PIN_ISRC_DIS(GPIOA_PIN6) | \
PIN_ISRC_DIS(GPIOA_PIN7) | \
PIN_ISRC_DIS(GPIOA_PIN8) | \
PIN_ISRC_DIS(GPIOA_PIN9) | \
PIN_ISRC_DIS(GPIOA_SPI1_MISO0) | \
PIN_ISRC_DIS(GPIOA_SPI1_CLK) | \
PIN_ISRC_DIS(GPIOA_PWM0) | \
PIN_ISRC_DIS(GPIOA_PWM1) | \
PIN_ISRC_DIS(GPIOA_PWM2) | \
PIN_ISRC_DIS(GPIOA_PWM3))
#define VAL_GPIOA_DOUT (PIN_DATA_LOW(GPIOA_PIN0) | \
PIN_DATA_LOW(GPIOA_PIN1) | \
PIN_DATA_LOW(GPIOA_PIN2) | \
PIN_DATA_LOW(GPIOA_PIN3) | \
PIN_DATA_LOW(GPIOA_PIN4) | \
PIN_DATA_LOW(GPIOA_PIN5) | \
PIN_DATA_LOW(GPIOA_PIN6) | \
PIN_DATA_LOW(GPIOA_PIN7) | \
PIN_DATA_LOW(GPIOA_PIN8) | \
PIN_DATA_LOW(GPIOA_PIN9) | \
PIN_DATA_LOW(GPIOA_SPI1_MISO0) | \
PIN_DATA_LOW(GPIOA_SPI1_CLK) | \
PIN_DATA_LOW(GPIOA_PWM0) | \
PIN_DATA_LOW(GPIOA_PWM1) | \
PIN_DATA_LOW(GPIOA_PWM2) | \
PIN_DATA_LOW(GPIOA_PWM3))
/*
* GPIOB setup:
*
* PB0 - UART0_RXD (input pullup).
* PB1 - UART0_TXD (output).
* PB2 - UART0_RTS (output).
* PB3 - UART0_CTS (output).
* PB4 - UART1_RXD (output).
* PB5 - UART1_TXD (output).
* PB6 - UART1_RTS (output).
* PB7 - UART1_CTS (output).
* PB8 - TM0 (input pullup).
* PB9 - TM1 (input pullup).
* PB10 - TM2 (input pullup).
* PB11 - PIN11 (input pullup).
* PB12 - CLK0 (output).
* PB13 - PIN13 (output).
* PB14 - INT0 (debug output).
* PB15 - INT1 (input pullup).
*/
#define VAL_GPIOB_PMD (PIN_MODE_INPUT(GPIOB_UART0_RXD) | \
PIN_MODE_OUTPUT(GPIOB_UART0_TXD) | \
PIN_MODE_OUTPUT(GPIOB_UART0_RTS) | \
PIN_MODE_OUTPUT(GPIOB_UART0_CTS) | \
PIN_MODE_OUTPUT(GPIOB_UART1_RXD) | \
PIN_MODE_OUTPUT(GPIOB_UART1_TXD) | \
PIN_MODE_OUTPUT(GPIOB_UART1_RTS) | \
PIN_MODE_OUTPUT(GPIOB_UART1_CTS) | \
PIN_MODE_INPUT(GPIOB_TM0) | \
PIN_MODE_INPUT(GPIOB_TM1) | \
PIN_MODE_INPUT(GPIOB_TM2) | \
PIN_MODE_INPUT(GPIOB_PIN11) | \
PIN_MODE_OUTPUT(GPIOB_CLK0) | \
PIN_MODE_OUTPUT(GPIOB_PIN13) | \
PIN_MODE_OUTPUT(GPIOB_INT0) | \
PIN_MODE_INPUT(GPIOB_INT1))
#define VAL_GPIOB_OFFD (PIN_DIGITAL_EN(GPIOB_UART0_RXD) | \
PIN_DIGITAL_DIS(GPIOB_UART0_TXD) | \
PIN_DIGITAL_DIS(GPIOB_UART0_RTS) | \
PIN_DIGITAL_DIS(GPIOB_UART0_CTS) | \
PIN_DIGITAL_DIS(GPIOB_UART1_RXD) | \
PIN_DIGITAL_DIS(GPIOB_UART1_TXD) | \
PIN_DIGITAL_DIS(GPIOB_UART1_RTS) | \
PIN_DIGITAL_DIS(GPIOB_UART1_CTS) | \
PIN_DIGITAL_DIS(GPIOB_TM0) | \
PIN_DIGITAL_EN(GPIOB_TM1) | \
PIN_DIGITAL_EN(GPIOB_TM2) | \
PIN_DIGITAL_EN(GPIOB_PIN11) | \
PIN_DIGITAL_DIS(GPIOB_CLK0) | \
PIN_DIGITAL_DIS(GPIOB_PIN13) | \
PIN_DIGITAL_DIS(GPIOB_INT0) | \
PIN_DIGITAL_EN(GPIOB_INT1))
#define VAL_GPIOB_DMASK (PIN_DMASK_EN(GPIOB_UART0_RXD) | \
PIN_DMASK_DIS(GPIOB_UART0_TXD) | \
PIN_DMASK_DIS(GPIOB_UART0_RTS) | \
PIN_DMASK_DIS(GPIOB_UART0_CTS) | \
PIN_DMASK_DIS(GPIOB_UART1_RXD) | \
PIN_DMASK_DIS(GPIOB_UART1_TXD) | \
PIN_DMASK_DIS(GPIOB_UART1_RTS) | \
PIN_DMASK_DIS(GPIOB_UART1_CTS) | \
PIN_DMASK_EN(GPIOB_TM0) | \
PIN_DMASK_EN(GPIOB_TM1) | \
PIN_DMASK_EN(GPIOB_TM2) | \
PIN_DMASK_EN(GPIOB_PIN11) | \
PIN_DMASK_DIS(GPIOB_CLK0) | \
PIN_DMASK_DIS(GPIOB_PIN13) | \
PIN_DMASK_DIS(GPIOB_INT0) | \
PIN_DMASK_EN(GPIOB_INT1))
#define VAL_GPIOB_DBEN (PIN_DBNCE_EN(GPIOB_UART0_RXD) | \
PIN_DBNCE_DIS(GPIOB_UART0_TXD) | \
PIN_DBNCE_DIS(GPIOB_UART0_RTS) | \
PIN_DBNCE_DIS(GPIOB_UART0_CTS) | \
PIN_DBNCE_DIS(GPIOB_UART1_RXD) | \
PIN_DBNCE_DIS(GPIOB_UART1_TXD) | \
PIN_DBNCE_DIS(GPIOB_UART1_RTS) | \
PIN_DBNCE_DIS(GPIOB_UART1_CTS) | \
PIN_DBNCE_EN(GPIOB_TM0) | \
PIN_DBNCE_EN(GPIOB_TM1) | \
PIN_DBNCE_EN(GPIOB_TM2) | \
PIN_DBNCE_EN(GPIOB_PIN11) | \
PIN_DBNCE_DIS(GPIOB_CLK0) | \
PIN_DBNCE_DIS(GPIOB_PIN13) | \
PIN_DBNCE_DIS(GPIOB_INT0) | \
PIN_DBNCE_EN(GPIOB_INT1))
#define VAL_GPIOB_IMD (PIN_IMD_EDGE(GPIOB_UART0_RXD) | \
PIN_IMD_EDGE(GPIOB_UART0_TXD) | \
PIN_IMD_EDGE(GPIOB_UART0_RTS) | \
PIN_IMD_EDGE(GPIOB_UART0_CTS) | \
PIN_IMD_EDGE(GPIOB_UART1_RXD) | \
PIN_IMD_EDGE(GPIOB_UART1_TXD) | \
PIN_IMD_EDGE(GPIOB_UART1_RTS) | \
PIN_IMD_EDGE(GPIOB_UART1_CTS) | \
PIN_IMD_EDGE(GPIOB_TM0) | \
PIN_IMD_EDGE(GPIOB_TM1) | \
PIN_IMD_EDGE(GPIOB_TM2) | \
PIN_IMD_EDGE(GPIOB_PIN11) | \
PIN_IMD_EDGE(GPIOB_CLK0) | \
PIN_IMD_EDGE(GPIOB_PIN13) | \
PIN_IMD_EDGE(GPIOB_INT0) | \
PIN_IMD_EDGE(GPIOB_INT1))
#define VAL_GPIOB_IEN (PIN_IEN_FELL_DIS(GPIOB_UART0_RXD) | \
PIN_IEN_FELL_DIS(GPIOB_UART0_TXD) | \
PIN_IEN_FELL_DIS(GPIOB_UART0_RTS) | \
PIN_IEN_FELL_DIS(GPIOB_UART0_CTS) | \
PIN_IEN_FELL_DIS(GPIOB_UART1_RXD) | \
PIN_IEN_FELL_DIS(GPIOB_UART1_TXD) | \
PIN_IEN_FELL_DIS(GPIOB_UART1_RTS) | \
PIN_IEN_FELL_DIS(GPIOB_UART1_CTS) | \
PIN_IEN_FELL_DIS(GPIOB_TM0) | \
PIN_IEN_FELL_DIS(GPIOB_TM1) | \
PIN_IEN_FELL_DIS(GPIOB_TM2) | \
PIN_IEN_FELL_DIS(GPIOB_PIN11) | \
PIN_IEN_FELL_DIS(GPIOB_CLK0) | \
PIN_IEN_FELL_DIS(GPIOB_PIN13) | \
PIN_IEN_FELL_DIS(GPIOB_INT0) | \
PIN_IEN_FELL_DIS(GPIOB_INT1))
#define VAL_GPIOB_ISRC (PIN_ISRC_DIS(GPIOB_UART0_RXD) | \
PIN_ISRC_DIS(GPIOB_UART0_TXD) | \
PIN_ISRC_DIS(GPIOB_UART0_RTS) | \
PIN_ISRC_DIS(GPIOB_UART0_CTS) | \
PIN_ISRC_DIS(GPIOB_UART1_RXD) | \
PIN_ISRC_DIS(GPIOB_UART1_TXD) | \
PIN_ISRC_DIS(GPIOB_UART1_RTS) | \
PIN_ISRC_DIS(GPIOB_UART1_CTS) | \
PIN_ISRC_DIS(GPIOB_TM0) | \
PIN_ISRC_DIS(GPIOB_TM1) | \
PIN_ISRC_DIS(GPIOB_TM2) | \
PIN_ISRC_DIS(GPIOB_PIN11) | \
PIN_ISRC_DIS(GPIOB_CLK0) | \
PIN_ISRC_DIS(GPIOB_PIN13) | \
PIN_ISRC_DIS(GPIOB_INT0) | \
PIN_ISRC_DIS(GPIOB_INT1))
#define VAL_GPIOB_DOUT (PIN_DATA_LOW(GPIOB_UART0_RXD) | \
PIN_DATA_LOW(GPIOB_UART0_TXD) | \
PIN_DATA_LOW(GPIOB_UART0_RTS) | \
PIN_DATA_LOW(GPIOB_UART0_CTS) | \
PIN_DATA_LOW(GPIOB_UART1_RXD) | \
PIN_DATA_LOW(GPIOB_UART1_TXD) | \
PIN_DATA_LOW(GPIOB_UART1_RTS) | \
PIN_DATA_LOW(GPIOB_UART1_CTS) | \
PIN_DATA_LOW(GPIOB_TM0) | \
PIN_DATA_LOW(GPIOB_TM1) | \
PIN_DATA_LOW(GPIOB_TM2) | \
PIN_DATA_LOW(GPIOB_PIN11) | \
PIN_DATA_LOW(GPIOB_CLK0) | \
PIN_DATA_LOW(GPIOB_PIN13) | \
PIN_DATA_LOW(GPIOB_INT0) | \
PIN_DATA_LOW(GPIOB_INT1))
/*
* GPIOC setup:
*
* PC0 - PIN0 (input pullup).
* PC1 - PIN1 (input pullup).
* PC2 - PIN2 (input pullup).
* PC3 - PIN3 (input pullup).
* PC4 - PIN4 (output).
* PC5 - PIN5 (output).
* PC6 - PIN6 (input pullup).
* PC7 - PIN7 (input pullup).
* PC8 - PIN8 (input pullup).
* PC9 - PIN9 (input pullup).
* PC10 - PIN10 (input pullup).
* PC11 - PIN11 (input pullup).
* PC12 - PIN12 (input pullup).
* PC13 - PIN13 (input pullup).
* PC14 - PIN14 (input pullup).
* PC15 - PIN15 (input pullup).
*/
#define VAL_GPIOC_PMD (PIN_MODE_INPUT(GPIOC_PIN0) | \
PIN_MODE_INPUT(GPIOC_PIN1) | \
PIN_MODE_INPUT(GPIOC_PIN2) | \
PIN_MODE_INPUT(GPIOC_PIN3) | \
PIN_MODE_OUTPUT(GPIOC_PIN4) | \
PIN_MODE_OUTPUT(GPIOC_PIN5) | \
PIN_MODE_INPUT(GPIOC_PIN6) | \
PIN_MODE_INPUT(GPIOC_PIN7) | \
PIN_MODE_INPUT(GPIOC_PIN8) | \
PIN_MODE_INPUT(GPIOC_PIN9) | \
PIN_MODE_INPUT(GPIOC_PIN10) | \
PIN_MODE_INPUT(GPIOC_PIN11) | \
PIN_MODE_INPUT(GPIOC_PIN12) | \
PIN_MODE_INPUT(GPIOC_PIN13) | \
PIN_MODE_INPUT(GPIOC_PIN14) | \
PIN_MODE_INPUT(GPIOC_PIN15))
#define VAL_GPIOC_OFFD (PIN_DIGITAL_EN(GPIOC_PIN0) | \
PIN_DIGITAL_EN(GPIOC_PIN1) | \
PIN_DIGITAL_EN(GPIOC_PIN2) | \
PIN_DIGITAL_EN(GPIOC_PIN3) | \
PIN_DIGITAL_DIS(GPIOC_PIN4) | \
PIN_DIGITAL_DIS(GPIOC_PIN5) | \
PIN_DIGITAL_EN(GPIOC_PIN6) | \
PIN_DIGITAL_EN(GPIOC_PIN7) | \
PIN_DIGITAL_EN(GPIOC_PIN8) | \
PIN_DIGITAL_EN(GPIOC_PIN9) | \
PIN_DIGITAL_EN(GPIOC_PIN10) | \
PIN_DIGITAL_EN(GPIOC_PIN11) | \
PIN_DIGITAL_EN(GPIOC_PIN12) | \
PIN_DIGITAL_EN(GPIOC_PIN13) | \
PIN_DIGITAL_EN(GPIOC_PIN14) | \
PIN_DIGITAL_EN(GPIOC_PIN15))
#define VAL_GPIOC_DMASK (PIN_DMASK_EN(GPIOC_PIN0) | \
PIN_DMASK_EN(GPIOC_PIN1) | \
PIN_DMASK_EN(GPIOC_PIN2) | \
PIN_DMASK_EN(GPIOC_PIN3) | \
PIN_DMASK_DIS(GPIOC_PIN4) | \
PIN_DMASK_DIS(GPIOC_PIN5) | \
PIN_DMASK_EN(GPIOC_PIN6) | \
PIN_DMASK_EN(GPIOC_PIN7) | \
PIN_DMASK_EN(GPIOC_PIN8) | \
PIN_DMASK_EN(GPIOC_PIN9) | \
PIN_DMASK_EN(GPIOC_PIN10) | \
PIN_DMASK_EN(GPIOC_PIN11) | \
PIN_DMASK_EN(GPIOC_PIN12) | \
PIN_DMASK_EN(GPIOC_PIN13) | \
PIN_DMASK_EN(GPIOC_PIN14) | \
PIN_DMASK_EN(GPIOC_PIN15))
#define VAL_GPIOC_DBEN (PIN_DBNCE_EN(GPIOC_PIN0) | \
PIN_DBNCE_EN(GPIOC_PIN1) | \
PIN_DBNCE_EN(GPIOC_PIN2) | \
PIN_DBNCE_EN(GPIOC_PIN3) | \
PIN_DBNCE_DIS(GPIOC_PIN4) | \
PIN_DBNCE_DIS(GPIOC_PIN5) | \
PIN_DBNCE_EN(GPIOC_PIN6) | \
PIN_DBNCE_EN(GPIOC_PIN7) | \
PIN_DBNCE_EN(GPIOC_PIN8) | \
PIN_DBNCE_EN(GPIOC_PIN9) | \
PIN_DBNCE_EN(GPIOC_PIN10) | \
PIN_DBNCE_EN(GPIOC_PIN11) | \
PIN_DBNCE_EN(GPIOC_PIN12) | \
PIN_DBNCE_EN(GPIOC_PIN13) | \
PIN_DBNCE_EN(GPIOC_PIN14) | \
PIN_DBNCE_EN(GPIOC_PIN15))
#define VAL_GPIOC_IMD (PIN_IMD_EDGE(GPIOC_PIN0) | \
PIN_IMD_EDGE(GPIOC_PIN1) | \
PIN_IMD_EDGE(GPIOC_PIN2) | \
PIN_IMD_EDGE(GPIOC_PIN3) | \
PIN_IMD_EDGE(GPIOC_PIN4) | \
PIN_IMD_EDGE(GPIOC_PIN5) | \
PIN_IMD_EDGE(GPIOC_PIN6) | \
PIN_IMD_EDGE(GPIOC_PIN7) | \
PIN_IMD_EDGE(GPIOC_PIN8) | \
PIN_IMD_EDGE(GPIOC_PIN9) | \
PIN_IMD_EDGE(GPIOC_PIN10) | \
PIN_IMD_EDGE(GPIOC_PIN11) | \
PIN_IMD_EDGE(GPIOC_PIN12) | \
PIN_IMD_EDGE(GPIOC_PIN13) | \
PIN_IMD_EDGE(GPIOC_PIN14) | \
PIN_IMD_EDGE(GPIOC_PIN15))
#define VAL_GPIOC_IEN (PIN_IEN_FELL_DIS(GPIOC_PIN0) | \
PIN_IEN_FELL_DIS(GPIOC_PIN1) | \
PIN_IEN_FELL_DIS(GPIOC_PIN2) | \
PIN_IEN_FELL_DIS(GPIOC_PIN3) | \
PIN_IEN_FELL_DIS(GPIOC_PIN4) | \
PIN_IEN_FELL_DIS(GPIOC_PIN5) | \
PIN_IEN_FELL_DIS(GPIOC_PIN6) | \
PIN_IEN_FELL_DIS(GPIOC_PIN7) | \
PIN_IEN_FELL_DIS(GPIOC_PIN8) | \
PIN_IEN_FELL_DIS(GPIOC_PIN9) | \
PIN_IEN_FELL_DIS(GPIOC_PIN10) | \
PIN_IEN_FELL_DIS(GPIOC_PIN11) | \
PIN_IEN_FELL_DIS(GPIOC_PIN12) | \
PIN_IEN_FELL_DIS(GPIOC_PIN13) | \
PIN_IEN_FELL_DIS(GPIOC_PIN14) | \
PIN_IEN_FELL_DIS(GPIOC_PIN15))
#define VAL_GPIOC_ISRC (PIN_ISRC_DIS(GPIOC_PIN0) | \
PIN_ISRC_DIS(GPIOC_PIN1) | \
PIN_ISRC_DIS(GPIOC_PIN2) | \
PIN_ISRC_DIS(GPIOC_PIN3) | \
PIN_ISRC_DIS(GPIOC_PIN4) | \
PIN_ISRC_DIS(GPIOC_PIN5) | \
PIN_ISRC_DIS(GPIOC_PIN6) | \
PIN_ISRC_DIS(GPIOC_PIN7) | \
PIN_ISRC_DIS(GPIOC_PIN8) | \
PIN_ISRC_DIS(GPIOC_PIN9) | \
PIN_ISRC_DIS(GPIOC_PIN10) | \
PIN_ISRC_DIS(GPIOC_PIN11) | \
PIN_ISRC_DIS(GPIOC_PIN12) | \
PIN_ISRC_DIS(GPIOC_PIN13) | \
PIN_ISRC_DIS(GPIOC_PIN14) | \
PIN_ISRC_DIS(GPIOC_PIN15))
#define VAL_GPIOC_DOUT (PIN_DATA_LOW(GPIOC_PIN0) | \
PIN_DATA_LOW(GPIOC_PIN1) | \
PIN_DATA_LOW(GPIOC_PIN2) | \
PIN_DATA_LOW(GPIOC_PIN3) | \
PIN_DATA_LOW(GPIOC_PIN4) | \
PIN_DATA_LOW(GPIOC_PIN5) | \
PIN_DATA_LOW(GPIOC_PIN6) | \
PIN_DATA_LOW(GPIOC_PIN7) | \
PIN_DATA_LOW(GPIOC_PIN8) | \
PIN_DATA_LOW(GPIOC_PIN9) | \
PIN_DATA_LOW(GPIOC_PIN10) | \
PIN_DATA_LOW(GPIOC_PIN11) | \
PIN_DATA_LOW(GPIOC_PIN12) | \
PIN_DATA_LOW(GPIOC_PIN13) | \
PIN_DATA_LOW(GPIOC_PIN14) | \
PIN_DATA_LOW(GPIOC_PIN15))
/*
* GPIOD setup:
*
* PD0 - ADC0 (input pullup).
* PD1 - ADC1 (input pullup).
* PD2 - ADC2 (input pullup).
* PD3 - ADC3 (output).
* PD4 - ADC4 (output).
* PD5 - ADC5 (output).
* PD6 - PIN6 (input pullup).
* PD7 - PIN7 (input pullup).
* PD8 - PIN8 (input pullup).
* PD9 - PIN9 (output).
* PD10 - PIN10 (debug output).
* PD11 - PIN11 (output).
* PD12 - PIN12 (input pullup).
* PD13 - PIN13 (input pullup).
* PD14 - PIN14 (input pullup).
* PD15 - PIN15 (input pullup).
*/
#define VAL_GPIOD_PMD (PIN_MODE_INPUT(GPIOD_ADC0) | \
PIN_MODE_INPUT(GPIOD_ADC1) | \
PIN_MODE_INPUT(GPIOD_ADC2) | \
PIN_MODE_OUTPUT(GPIOD_ADC3) | \
PIN_MODE_OUTPUT(GPIOD_ADC4) | \
PIN_MODE_OUTPUT(GPIOD_ADC5) | \
PIN_MODE_INPUT(GPIOD_PIN6) | \
PIN_MODE_INPUT(GPIOD_PIN7) | \
PIN_MODE_INPUT(GPIOD_PIN8) | \
PIN_MODE_OUTPUT(GPIOD_PIN9) | \
PIN_MODE_OUTPUT(GPIOD_PIN10) | \
PIN_MODE_OUTPUT(GPIOD_PIN11) | \
PIN_MODE_INPUT(GPIOD_PIN12) | \
PIN_MODE_INPUT(GPIOD_PIN13) | \
PIN_MODE_INPUT(GPIOD_PIN14) | \
PIN_MODE_INPUT(GPIOD_PIN15))
#define VAL_GPIOD_OFFD (PIN_DIGITAL_EN(GPIOD_ADC0) | \
PIN_DIGITAL_EN(GPIOD_ADC1) | \
PIN_DIGITAL_EN(GPIOD_ADC2) | \
PIN_DIGITAL_DIS(GPIOD_ADC3) | \
PIN_DIGITAL_DIS(GPIOD_ADC4) | \
PIN_DIGITAL_DIS(GPIOD_ADC5) | \
PIN_DIGITAL_EN(GPIOD_PIN6) | \
PIN_DIGITAL_EN(GPIOD_PIN7) | \
PIN_DIGITAL_EN(GPIOD_PIN8) | \
PIN_DIGITAL_DIS(GPIOD_PIN9) | \
PIN_DIGITAL_DIS(GPIOD_PIN10) | \
PIN_DIGITAL_DIS(GPIOD_PIN11) | \
PIN_DIGITAL_EN(GPIOD_PIN12) | \
PIN_DIGITAL_EN(GPIOD_PIN13) | \
PIN_DIGITAL_EN(GPIOD_PIN14) | \
PIN_DIGITAL_EN(GPIOD_PIN15))
#define VAL_GPIOD_DMASK (PIN_DMASK_EN(GPIOD_ADC0) | \
PIN_DMASK_EN(GPIOD_ADC1) | \
PIN_DMASK_EN(GPIOD_ADC2) | \
PIN_DMASK_DIS(GPIOD_ADC3) | \
PIN_DMASK_DIS(GPIOD_ADC4) | \
PIN_DMASK_DIS(GPIOD_ADC5) | \
PIN_DMASK_EN(GPIOD_PIN6) | \
PIN_DMASK_EN(GPIOD_PIN7) | \
PIN_DMASK_EN(GPIOD_PIN8) | \
PIN_DMASK_DIS(GPIOD_PIN9) | \
PIN_DMASK_DIS(GPIOD_PIN10) | \
PIN_DMASK_DIS(GPIOD_PIN11) | \
PIN_DMASK_EN(GPIOD_PIN12) | \
PIN_DMASK_EN(GPIOD_PIN13) | \
PIN_DMASK_EN(GPIOD_PIN14) | \
PIN_DMASK_EN(GPIOD_PIN15))
#define VAL_GPIOD_DBEN (PIN_DBNCE_EN(GPIOD_ADC0) | \
PIN_DBNCE_EN(GPIOD_ADC1) | \
PIN_DBNCE_EN(GPIOD_ADC2) | \
PIN_DBNCE_DIS(GPIOD_ADC3) | \
PIN_DBNCE_DIS(GPIOD_ADC4) | \
PIN_DBNCE_DIS(GPIOD_ADC5) | \
PIN_DBNCE_EN(GPIOD_PIN6) | \
PIN_DBNCE_EN(GPIOD_PIN7) | \
PIN_DBNCE_EN(GPIOD_PIN8) | \
PIN_DBNCE_DIS(GPIOD_PIN9) | \
PIN_DBNCE_DIS(GPIOD_PIN10) | \
PIN_DBNCE_DIS(GPIOD_PIN11) | \
PIN_DBNCE_EN(GPIOD_PIN12) | \
PIN_DBNCE_EN(GPIOD_PIN13) | \
PIN_DBNCE_EN(GPIOD_PIN14) | \
PIN_DBNCE_EN(GPIOD_PIN15))
#define VAL_GPIOD_IMD (PIN_IMD_EDGE(GPIOD_ADC0) | \
PIN_IMD_EDGE(GPIOD_ADC1) | \
PIN_IMD_EDGE(GPIOD_ADC2) | \
PIN_IMD_EDGE(GPIOD_ADC3) | \
PIN_IMD_EDGE(GPIOD_ADC4) | \
PIN_IMD_EDGE(GPIOD_ADC5) | \
PIN_IMD_EDGE(GPIOD_PIN6) | \
PIN_IMD_EDGE(GPIOD_PIN7) | \
PIN_IMD_EDGE(GPIOD_PIN8) | \
PIN_IMD_EDGE(GPIOD_PIN9) | \
PIN_IMD_EDGE(GPIOD_PIN10) | \
PIN_IMD_EDGE(GPIOD_PIN11) | \
PIN_IMD_EDGE(GPIOD_PIN12) | \
PIN_IMD_EDGE(GPIOD_PIN13) | \
PIN_IMD_EDGE(GPIOD_PIN14) | \
PIN_IMD_EDGE(GPIOD_PIN15))
#define VAL_GPIOD_IEN (PIN_IEN_FELL_DIS(GPIOD_ADC0) | \
PIN_IEN_FELL_DIS(GPIOD_ADC1) | \
PIN_IEN_FELL_DIS(GPIOD_ADC2) | \
PIN_IEN_FELL_DIS(GPIOD_ADC3) | \
PIN_IEN_FELL_DIS(GPIOD_ADC4) | \
PIN_IEN_FELL_DIS(GPIOD_ADC5) | \
PIN_IEN_FELL_DIS(GPIOD_PIN6) | \
PIN_IEN_FELL_DIS(GPIOD_PIN7) | \
PIN_IEN_FELL_DIS(GPIOD_PIN8) | \
PIN_IEN_FELL_DIS(GPIOD_PIN9) | \
PIN_IEN_FELL_DIS(GPIOD_PIN10) | \
PIN_IEN_FELL_DIS(GPIOD_PIN11) | \
PIN_IEN_FELL_DIS(GPIOD_PIN12) | \
PIN_IEN_FELL_DIS(GPIOD_PIN13) | \
PIN_IEN_FELL_DIS(GPIOD_PIN14) | \
PIN_IEN_FELL_DIS(GPIOD_PIN15))
#define VAL_GPIOD_ISRC (PIN_ISRC_DIS(GPIOD_ADC0) | \
PIN_ISRC_DIS(GPIOD_ADC1) | \
PIN_ISRC_DIS(GPIOD_ADC2) | \
PIN_ISRC_DIS(GPIOD_ADC3) | \
PIN_ISRC_DIS(GPIOD_ADC4) | \
PIN_ISRC_DIS(GPIOD_ADC5) | \
PIN_ISRC_DIS(GPIOD_PIN6) | \
PIN_ISRC_DIS(GPIOD_PIN7) | \
PIN_ISRC_DIS(GPIOD_PIN8) | \
PIN_ISRC_DIS(GPIOD_PIN9) | \
PIN_ISRC_DIS(GPIOD_PIN10) | \
PIN_ISRC_DIS(GPIOD_PIN11) | \
PIN_ISRC_DIS(GPIOD_PIN12) | \
PIN_ISRC_DIS(GPIOD_PIN13) | \
PIN_ISRC_DIS(GPIOD_PIN14) | \
PIN_ISRC_DIS(GPIOD_PIN15))
#define VAL_GPIOD_DOUT (PIN_DATA_LOW(GPIOD_ADC0) | \
PIN_DATA_LOW(GPIOD_ADC1) | \
PIN_DATA_LOW(GPIOD_ADC2) | \
PIN_DATA_LOW(GPIOD_ADC3) | \
PIN_DATA_LOW(GPIOD_ADC4) | \
PIN_DATA_LOW(GPIOD_ADC5) | \
PIN_DATA_LOW(GPIOD_PIN6) | \
PIN_DATA_LOW(GPIOD_PIN7) | \
PIN_DATA_LOW(GPIOD_PIN8) | \
PIN_DATA_LOW(GPIOD_PIN9) | \
PIN_DATA_LOW(GPIOD_PIN10) | \
PIN_DATA_LOW(GPIOD_PIN11) | \
PIN_DATA_LOW(GPIOD_PIN12) | \
PIN_DATA_LOW(GPIOD_PIN13) | \
PIN_DATA_LOW(GPIOD_PIN14) | \
PIN_DATA_LOW(GPIOD_PIN15))
/*
* GPIOF setup:
*
* PF0 - OSC_IN (input floating).
* PF1 - OSC_OUT (input floating).
* PF2 - I2C0_SDA (input pullup).
* PF3 - I2C0_SCL (input pullup).
* PF4 - PIN4 (input pullup).
* PF5 - PIN5 (input pullup).
* PF6 - PIN6 (input pullup).
* PF7 - PIN7 (input pullup).
* PF8 - PIN8 (input pullup).
* PF9 - PIN9 (input pullup).
* PF10 - PIN10 (input pullup).
* PF11 - PIN11 (input pullup).
* PF12 - PIN12 (input pullup).
* PF13 - PIN13 (input pullup).
* PF14 - PIN14 (input pullup).
* PF15 - PIN15 (input pullup).
*/
#define VAL_GPIOF_PMD (PIN_MODE_QUASI(GPIOF_OSC_IN) | \
PIN_MODE_QUASI(GPIOF_OSC_OUT) | \
PIN_MODE_INPUT(GPIOF_I2C0_SDA) | \
PIN_MODE_INPUT(GPIOF_I2C0_SCL) | \
PIN_MODE_INPUT(GPIOF_PIN4) | \
PIN_MODE_INPUT(GPIOF_PIN5) | \
PIN_MODE_INPUT(GPIOF_PIN6) | \
PIN_MODE_INPUT(GPIOF_PIN7) | \
PIN_MODE_INPUT(GPIOF_PIN8) | \
PIN_MODE_INPUT(GPIOF_PIN9) | \
PIN_MODE_INPUT(GPIOF_PIN10) | \
PIN_MODE_INPUT(GPIOF_PIN11) | \
PIN_MODE_INPUT(GPIOF_PIN12) | \
PIN_MODE_INPUT(GPIOF_PIN13) | \
PIN_MODE_INPUT(GPIOF_PIN14) | \
PIN_MODE_INPUT(GPIOF_PIN15))
#define VAL_GPIOF_OFFD (PIN_DIGITAL_DIS(GPIOF_OSC_IN) | \
PIN_DIGITAL_DIS(GPIOF_OSC_OUT) | \
PIN_DIGITAL_EN(GPIOF_I2C0_SDA) | \
PIN_DIGITAL_EN(GPIOF_I2C0_SCL) | \
PIN_DIGITAL_EN(GPIOF_PIN4) | \
PIN_DIGITAL_EN(GPIOF_PIN5) | \
PIN_DIGITAL_EN(GPIOF_PIN6) | \
PIN_DIGITAL_EN(GPIOF_PIN7) | \
PIN_DIGITAL_EN(GPIOF_PIN8) | \
PIN_DIGITAL_EN(GPIOF_PIN9) | \
PIN_DIGITAL_EN(GPIOF_PIN10) | \
PIN_DIGITAL_EN(GPIOF_PIN11) | \
PIN_DIGITAL_EN(GPIOF_PIN12) | \
PIN_DIGITAL_EN(GPIOF_PIN13) | \
PIN_DIGITAL_EN(GPIOF_PIN14) | \
PIN_DIGITAL_EN(GPIOF_PIN15))
#define VAL_GPIOF_DMASK (PIN_DMASK_DIS(GPIOF_OSC_IN) | \
PIN_DMASK_DIS(GPIOF_OSC_OUT) | \
PIN_DMASK_EN(GPIOF_I2C0_SDA) | \
PIN_DMASK_EN(GPIOF_I2C0_SCL) | \
PIN_DMASK_EN(GPIOF_PIN4) | \
PIN_DMASK_EN(GPIOF_PIN5) | \
PIN_DMASK_EN(GPIOF_PIN6) | \
PIN_DMASK_EN(GPIOF_PIN7) | \
PIN_DMASK_EN(GPIOF_PIN8) | \
PIN_DMASK_EN(GPIOF_PIN9) | \
PIN_DMASK_EN(GPIOF_PIN10) | \
PIN_DMASK_EN(GPIOF_PIN11) | \
PIN_DMASK_EN(GPIOF_PIN12) | \
PIN_DMASK_EN(GPIOF_PIN13) | \
PIN_DMASK_EN(GPIOF_PIN14) | \
PIN_DMASK_EN(GPIOF_PIN15))
#define VAL_GPIOF_DBEN (PIN_DBNCE_DIS(GPIOF_OSC_IN) | \
PIN_DBNCE_DIS(GPIOF_OSC_OUT) | \
PIN_DBNCE_EN(GPIOF_I2C0_SDA) | \
PIN_DBNCE_EN(GPIOF_I2C0_SCL) | \
PIN_DBNCE_EN(GPIOF_PIN4) | \
PIN_DBNCE_EN(GPIOF_PIN5) | \
PIN_DBNCE_EN(GPIOF_PIN6) | \
PIN_DBNCE_EN(GPIOF_PIN7) | \
PIN_DBNCE_EN(GPIOF_PIN8) | \
PIN_DBNCE_EN(GPIOF_PIN9) | \
PIN_DBNCE_EN(GPIOF_PIN10) | \
PIN_DBNCE_EN(GPIOF_PIN11) | \
PIN_DBNCE_EN(GPIOF_PIN12) | \
PIN_DBNCE_EN(GPIOF_PIN13) | \
PIN_DBNCE_EN(GPIOF_PIN14) | \
PIN_DBNCE_EN(GPIOF_PIN15))
#define VAL_GPIOF_IMD (PIN_IMD_LVL(GPIOF_OSC_IN) | \
PIN_IMD_LVL(GPIOF_OSC_OUT) | \
PIN_IMD_EDGE(GPIOF_I2C0_SDA) | \
PIN_IMD_EDGE(GPIOF_I2C0_SCL) | \
PIN_IMD_EDGE(GPIOF_PIN4) | \
PIN_IMD_EDGE(GPIOF_PIN5) | \
PIN_IMD_EDGE(GPIOF_PIN6) | \
PIN_IMD_EDGE(GPIOF_PIN7) | \
PIN_IMD_EDGE(GPIOF_PIN8) | \
PIN_IMD_EDGE(GPIOF_PIN9) | \
PIN_IMD_EDGE(GPIOF_PIN10) | \
PIN_IMD_EDGE(GPIOF_PIN11) | \
PIN_IMD_EDGE(GPIOF_PIN12) | \
PIN_IMD_EDGE(GPIOF_PIN13) | \
PIN_IMD_EDGE(GPIOF_PIN14) | \
PIN_IMD_EDGE(GPIOF_PIN15))
#define VAL_GPIOF_IEN (PIN_IEN_FELL_DIS(GPIOF_OSC_IN) | \
PIN_IEN_FELL_DIS(GPIOF_OSC_OUT) | \
PIN_IEN_FELL_DIS(GPIOF_I2C0_SDA) | \
PIN_IEN_FELL_DIS(GPIOF_I2C0_SCL) | \
PIN_IEN_FELL_DIS(GPIOF_PIN4) | \
PIN_IEN_FELL_DIS(GPIOF_PIN5) | \
PIN_IEN_FELL_DIS(GPIOF_PIN6) | \
PIN_IEN_FELL_DIS(GPIOF_PIN7) | \
PIN_IEN_FELL_DIS(GPIOF_PIN8) | \
PIN_IEN_FELL_DIS(GPIOF_PIN9) | \
PIN_IEN_FELL_DIS(GPIOF_PIN10) | \
PIN_IEN_FELL_DIS(GPIOF_PIN11) | \
PIN_IEN_FELL_DIS(GPIOF_PIN12) | \
PIN_IEN_FELL_DIS(GPIOF_PIN13) | \
PIN_IEN_FELL_DIS(GPIOF_PIN14) | \
PIN_IEN_FELL_DIS(GPIOF_PIN15))
#define VAL_GPIOF_ISRC (PIN_ISRC_DIS(GPIOF_OSC_IN) | \
PIN_ISRC_DIS(GPIOF_OSC_OUT) | \
PIN_ISRC_DIS(GPIOF_I2C0_SDA) | \
PIN_ISRC_DIS(GPIOF_I2C0_SCL) | \
PIN_ISRC_DIS(GPIOF_PIN4) | \
PIN_ISRC_DIS(GPIOF_PIN5) | \
PIN_ISRC_DIS(GPIOF_PIN6) | \
PIN_ISRC_DIS(GPIOF_PIN7) | \
PIN_ISRC_DIS(GPIOF_PIN8) | \
PIN_ISRC_DIS(GPIOF_PIN9) | \
PIN_ISRC_DIS(GPIOF_PIN10) | \
PIN_ISRC_DIS(GPIOF_PIN11) | \
PIN_ISRC_DIS(GPIOF_PIN12) | \
PIN_ISRC_DIS(GPIOF_PIN13) | \
PIN_ISRC_DIS(GPIOF_PIN14) | \
PIN_ISRC_DIS(GPIOF_PIN15))
#define VAL_GPIOF_DOUT (PIN_DATA_LOW(GPIOF_OSC_IN) | \
PIN_DATA_LOW(GPIOF_OSC_OUT) | \
PIN_DATA_LOW(GPIOF_I2C0_SDA) | \
PIN_DATA_LOW(GPIOF_I2C0_SCL) | \
PIN_DATA_LOW(GPIOF_PIN4) | \
PIN_DATA_LOW(GPIOF_PIN5) | \
PIN_DATA_LOW(GPIOF_PIN6) | \
PIN_DATA_LOW(GPIOF_PIN7) | \
PIN_DATA_LOW(GPIOF_PIN8) | \
PIN_DATA_LOW(GPIOF_PIN9) | \
PIN_DATA_LOW(GPIOF_PIN10) | \
PIN_DATA_LOW(GPIOF_PIN11) | \
PIN_DATA_LOW(GPIOF_PIN12) | \
PIN_DATA_LOW(GPIOF_PIN13) | \
PIN_DATA_LOW(GPIOF_PIN14) | \
PIN_DATA_LOW(GPIOF_PIN15))
#if !defined(_FROM_ASM_)
#ifdef __cplusplus
extern "C" {
#endif
void boardInit(void);
#ifdef __cplusplus
}
#endif
#endif /* _FROM_ASM_ */
#endif /* BOARD_H */
@@ -0,0 +1,5 @@
# List of all the board related files.
BOARDSRC = $(BOARD_PATH)/boards/NUC123SD4AN0/board.c
# Required include directories
BOARDINC = $(BOARD_PATH)/boards/NUC123SD4AN0
+23
View File
@@ -0,0 +1,23 @@
/* Copyright 2020 QMK
*
* 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 CH_CFG_ST_FREQUENCY 10000
#define CH_CFG_ST_TIMEDELTA 0
#define CH_CFG_USE_WAITEXIT TRUE
#include_next <chconf.h>
+56
View File
@@ -0,0 +1,56 @@
/*
Copyright 2019 /u/KeepItUnder
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
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x0416
#define PRODUCT_ID 0x0123
#define DEVICE_VER 0x0001
#define MANUFACTURER Ducky
#define PRODUCT One2mini
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { D11, B4, B5, B6, B7 }
#define MATRIX_COL_PINS { B10, B9, C13, C12, C11, C10, C9, C8, A15, A14, A13, D0, D1, D2, B8 }
#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} }
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
#define FORCE_NKRO
#define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L)
+208
View File
@@ -0,0 +1,208 @@
{
"keyboard_name": "Ducky One 2 Mini",
"width": 14,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{ "x": 0, "y": 0, "w": 1, "label": "ESC" },
{ "x": 1, "y": 0, "w": 1, "label": "1" },
{ "x": 2, "y": 0, "w": 1, "label": "2" },
{ "x": 3, "y": 0, "w": 1, "label": "3" },
{ "x": 4, "y": 0, "w": 1, "label": "4" },
{ "x": 5, "y": 0, "w": 1, "label": "5" },
{ "x": 6, "y": 0, "w": 1, "label": "6" },
{ "x": 7, "y": 0, "w": 1, "label": "7" },
{ "x": 8, "y": 0, "w": 1, "label": "8" },
{ "x": 9, "y": 0, "w": 1, "label": "9" },
{ "x": 10, "y": 0, "w": 1, "label": "0" },
{ "x": 11, "y": 0, "w": 1, "label": "DASH" },
{ "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" },
{ "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" },
{ "x": 0, "y": 1, "w": 1.5, "label": "TAB" },
{ "x": 1.5, "y": 1, "w": 1, "label": "Q" },
{ "x": 2.5, "y": 1, "w": 1, "label": "W" },
{ "x": 3.5, "y": 1, "w": 1, "label": "E" },
{ "x": 4.5, "y": 1, "w": 1, "label": "R" },
{ "x": 5.5, "y": 1, "w": 1, "label": "T" },
{ "x": 6.5, "y": 1, "w": 1, "label": "Y" },
{ "x": 7.5, "y": 1, "w": 1, "label": "U" },
{ "x": 8.5, "y": 1, "w": 1, "label": "I" },
{ "x": 9.5, "y": 1, "w": 1, "label": "O" },
{ "x": 10.5, "y": 1, "w": 1, "label": "P" },
{ "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" },
{ "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" },
{ "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" },
{ "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" },
{ "x": 1.75, "y": 2, "w": 1, "label": "A" },
{ "x": 2.75, "y": 2, "w": 1, "label": "S" },
{ "x": 3.75, "y": 2, "w": 1, "label": "D" },
{ "x": 4.75, "y": 2, "w": 1, "label": "F" },
{ "x": 5.75, "y": 2, "w": 1, "label": "G" },
{ "x": 6.75, "y": 2, "w": 1, "label": "H" },
{ "x": 7.75, "y": 2, "w": 1, "label": "J" },
{ "x": 8.75, "y": 2, "w": 1, "label": "K" },
{ "x": 9.75, "y": 2, "w": 1, "label": "L" },
{ "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" },
{ "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" },
{ "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" },
{ "x": 13.75, "y": 2, "w": 1.25, "label": "ENTER" },
{ "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" },
{ "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" },
{ "x": 2.25, "y": 3, "w": 1, "label": "Z" },
{ "x": 3.25, "y": 3, "w": 1, "label": "X" },
{ "x": 4.25, "y": 3, "w": 1, "label": "C" },
{ "x": 5.25, "y": 3, "w": 1, "label": "V" },
{ "x": 6.25, "y": 3, "w": 1, "label": "B" },
{ "x": 7.25, "y": 3, "w": 1, "label": "N" },
{ "x": 8.25, "y": 3, "w": 1, "label": "M" },
{ "x": 9.25, "y": 3, "w": 1, "label": "COMMA" },
{ "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" },
{ "x": 11.25, "y": 3, "w": 1, "label": "SLASH" },
{ "x": 12.25, "y": 3, "w": 2.25, "label": "RSHIFT" },
{ "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" },
{ "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" },
{ "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" },
{ "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" },
{ "x": 10, "y": 4, "w": 1.25, "label": "RALT" },
{ "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" },
{ "x": 12.5, "y": 4, "w": 1.25, "label": "FN" },
{ "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" }
]
},
"LAYOUT_ansi": {
"layout": [
{ "x": 0, "y": 0, "w": 1, "label": "ESC" },
{ "x": 1, "y": 0, "w": 1, "label": "1" },
{ "x": 2, "y": 0, "w": 1, "label": "2" },
{ "x": 3, "y": 0, "w": 1, "label": "3" },
{ "x": 4, "y": 0, "w": 1, "label": "4" },
{ "x": 5, "y": 0, "w": 1, "label": "5" },
{ "x": 6, "y": 0, "w": 1, "label": "6" },
{ "x": 7, "y": 0, "w": 1, "label": "7" },
{ "x": 8, "y": 0, "w": 1, "label": "8" },
{ "x": 9, "y": 0, "w": 1, "label": "9" },
{ "x": 10, "y": 0, "w": 1, "label": "0" },
{ "x": 11, "y": 0, "w": 1, "label": "DASH" },
{ "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" },
{ "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" },
{ "x": 0, "y": 1, "w": 1.5, "label": "TAB" },
{ "x": 1.5, "y": 1, "w": 1, "label": "Q" },
{ "x": 2.5, "y": 1, "w": 1, "label": "W" },
{ "x": 3.5, "y": 1, "w": 1, "label": "E" },
{ "x": 4.5, "y": 1, "w": 1, "label": "R" },
{ "x": 5.5, "y": 1, "w": 1, "label": "T" },
{ "x": 6.5, "y": 1, "w": 1, "label": "Y" },
{ "x": 7.5, "y": 1, "w": 1, "label": "U" },
{ "x": 8.5, "y": 1, "w": 1, "label": "I" },
{ "x": 9.5, "y": 1, "w": 1, "label": "O" },
{ "x": 10.5, "y": 1, "w": 1, "label": "P" },
{ "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" },
{ "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" },
{ "x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH" },
{ "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" },
{ "x": 1.75, "y": 2, "w": 1, "label": "A" },
{ "x": 2.75, "y": 2, "w": 1, "label": "S" },
{ "x": 3.75, "y": 2, "w": 1, "label": "D" },
{ "x": 4.75, "y": 2, "w": 1, "label": "F" },
{ "x": 5.75, "y": 2, "w": 1, "label": "G" },
{ "x": 6.75, "y": 2, "w": 1, "label": "H" },
{ "x": 7.75, "y": 2, "w": 1, "label": "J" },
{ "x": 8.75, "y": 2, "w": 1, "label": "K" },
{ "x": 9.75, "y": 2, "w": 1, "label": "L" },
{ "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" },
{ "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" },
{ "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" },
{ "x": 12.75, "y": 2, "w": 2.25, "label": "ENTER" },
{ "x": 0, "y": 3, "w": 2.25, "label": "LSHIFT" },
{ "x": 2.25, "y": 3, "w": 1, "label": "Z" },
{ "x": 3.25, "y": 3, "w": 1, "label": "X" },
{ "x": 4.25, "y": 3, "w": 1, "label": "C" },
{ "x": 5.25, "y": 3, "w": 1, "label": "V" },
{ "x": 6.25, "y": 3, "w": 1, "label": "B" },
{ "x": 7.25, "y": 3, "w": 1, "label": "N" },
{ "x": 8.25, "y": 3, "w": 1, "label": "M" },
{ "x": 9.25, "y": 3, "w": 1, "label": "COMMA" },
{ "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" },
{ "x": 11.25, "y": 3, "w": 1, "label": "SLASH" },
{ "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" },
{ "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" },
{ "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" },
{ "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" },
{ "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" },
{ "x": 10, "y": 4, "w": 1.25, "label": "RALT" },
{ "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" },
{ "x": 12.5, "y": 4, "w": 1.25, "label": "FN" },
{ "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" }
]
},
"LAYOUT_iso": {
"layout": [
{ "x": 0, "y": 0, "w": 1, "label": "ESC" },
{ "x": 1, "y": 0, "w": 1, "label": "1" },
{ "x": 2, "y": 0, "w": 1, "label": "2" },
{ "x": 3, "y": 0, "w": 1, "label": "3" },
{ "x": 4, "y": 0, "w": 1, "label": "4" },
{ "x": 5, "y": 0, "w": 1, "label": "5" },
{ "x": 6, "y": 0, "w": 1, "label": "6" },
{ "x": 7, "y": 0, "w": 1, "label": "7" },
{ "x": 8, "y": 0, "w": 1, "label": "8" },
{ "x": 9, "y": 0, "w": 1, "label": "9" },
{ "x": 10, "y": 0, "w": 1, "label": "0" },
{ "x": 11, "y": 0, "w": 1, "label": "DASH" },
{ "x": 12, "y": 0, "w": 1, "label": "EQUALSIGN" },
{ "x": 13, "y": 0, "w": 2, "label": "BACKSPACE" },
{ "x": 0, "y": 1, "w": 1.5, "label": "TAB" },
{ "x": 1.5, "y": 1, "w": 1, "label": "Q" },
{ "x": 2.5, "y": 1, "w": 1, "label": "W" },
{ "x": 3.5, "y": 1, "w": 1, "label": "E" },
{ "x": 4.5, "y": 1, "w": 1, "label": "R" },
{ "x": 5.5, "y": 1, "w": 1, "label": "T" },
{ "x": 6.5, "y": 1, "w": 1, "label": "Y" },
{ "x": 7.5, "y": 1, "w": 1, "label": "U" },
{ "x": 8.5, "y": 1, "w": 1, "label": "I" },
{ "x": 9.5, "y": 1, "w": 1, "label": "O" },
{ "x": 10.5, "y": 1, "w": 1, "label": "P" },
{ "x": 11.5, "y": 1, "w": 1, "label": "LBRACKET" },
{ "x": 12.5, "y": 1, "w": 1, "label": "RBRACKET" },
{ "x": 13.75, "y": 1, "w": 1.25, "h": 2, "label": "ENTER" },
{ "x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK" },
{ "x": 1.75, "y": 2, "w": 1, "label": "A" },
{ "x": 2.75, "y": 2, "w": 1, "label": "S" },
{ "x": 3.75, "y": 2, "w": 1, "label": "D" },
{ "x": 4.75, "y": 2, "w": 1, "label": "F" },
{ "x": 5.75, "y": 2, "w": 1, "label": "G" },
{ "x": 6.75, "y": 2, "w": 1, "label": "H" },
{ "x": 7.75, "y": 2, "w": 1, "label": "J" },
{ "x": 8.75, "y": 2, "w": 1, "label": "K" },
{ "x": 9.75, "y": 2, "w": 1, "label": "L" },
{ "x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON" },
{ "x": 11.75, "y": 2, "w": 1, "label": "QUOTE" },
{ "x": 12.75, "y": 2, "w": 1, "label": "ISOHASH" },
{ "x": 0, "y": 3, "w": 1.25, "label": "LSHIFT" },
{ "x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH" },
{ "x": 2.25, "y": 3, "w": 1, "label": "Z" },
{ "x": 3.25, "y": 3, "w": 1, "label": "X" },
{ "x": 4.25, "y": 3, "w": 1, "label": "C" },
{ "x": 5.25, "y": 3, "w": 1, "label": "V" },
{ "x": 6.25, "y": 3, "w": 1, "label": "B" },
{ "x": 7.25, "y": 3, "w": 1, "label": "N" },
{ "x": 8.25, "y": 3, "w": 1, "label": "M" },
{ "x": 9.25, "y": 3, "w": 1, "label": "COMMA" },
{ "x": 10.25, "y": 3, "w": 1, "label": "PERIOD" },
{ "x": 11.25, "y": 3, "w": 1, "label": "SLASH" },
{ "x": 12.25, "y": 3, "w": 2.75, "label": "RSHIFT" },
{ "x": 0, "y": 4, "w": 1.25, "label": "LCTRL" },
{ "x": 1.25, "y": 4, "w": 1.25, "label": "LCMD" },
{ "x": 2.5, "y": 4, "w": 1.25, "label": "LALT" },
{ "x": 3.75, "y": 4, "w": 6.25, "label": "SPACE" },
{ "x": 10, "y": 4, "w": 1.25, "label": "RALT" },
{ "x": 11.25, "y": 4, "w": 1.25, "label": "RCMD" },
{ "x": 12.5, "y": 4, "w": 1.25, "label": "FN" },
{ "x": 13.75, "y": 4, "w": 1.25, "label": "RCTRL" }
]
}
}
}
+51
View File
@@ -0,0 +1,51 @@
/*
ChibiOS - Copyright (C) 2020 Alex Lewontin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef _MCUCONF_H_
#define _MCUCONF_H_
/*
* Board setting
* The following settings override the default settings present in
* the various device driver implementation headers.
* Note that the settings for each driver only have effect if the whole
* driver is enabled in halconf.h.
*
* IRQ priorities:
* 3...0 Lowest...Highest.
*
* DMA priorities:
* 5...0 Lowest...Highest.
*/
/*
* HAL driver system settings.
*/
#define NUC123_HSE_ENABLED TRUE
#define NUC123_PLL_ENABLED TRUE
#define NUC123_PLLSRC NUC123_PLLSRC_HSE
#define NUC123_HCLKSRC NUC123_HCLKSRC_PLL
#define NUC123_HCLKDIV 2
#define NUC123_PLL_NF 144
#define NUC123_USB_USE_USB0 TRUE
#define NUC123_USB_USE_USB1 TRUE
#define NUC123_SERIAL_USE_UART0 TRUE
#define NUC123_SERIAL_CLKSRC NUC123_SERIAL_CLKSRC_HSI
#define NUC123_MCUCONF
#endif /* _MCUCONF_H_ */
+29
View File
@@ -0,0 +1,29 @@
# one2mini
![one2mini](http://www.duckychannel.com.tw/page-en/One_2_Mini_RGB/images/One2_Mini_01_02.jpg)
A 60% keyboard featuring per-key RGB LEDs.
* Keyboard Maintainer: [Reza Jelveh](https://github.com/fishman)
* Hardware Supported: Ducky One 2 Mini RGB / NUC123SD4AN0 / MBI5042GP
* Hardware Availability: [Ducky Channel](http://www.duckychannel.com.tw/page-en/One_2_Mini_RGB/)
Make example for this keyboard (after setting up your build environment):
make ducky/one2mini: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).
RGB LEDs are currently disabled until the driver is merged.
This firmware was tested on the duckyon2mini 1861ST version. To enter the 1861ST bootloader to flash you can boot the keyboard while holding D+L.
There are then two ways to flash the keyboard:
pip install --user nuvoton-isp
nuvoisp -f ducky_one2mini_default.bin
Alternatively you can use elfmimi's [nu-isp-cli](https://lib.rs/crates/nu-isp-cli) which is more complete than nuvoisp and allows flashing .hex files as well.
cargo install nu-isp-cli
nu-isp-cli flash ducky_one2mini_default.bin
+35
View File
@@ -0,0 +1,35 @@
MCU_FAMILY = NUMICRO
MCU_SERIES = NUC123
# linker script to use
MCU_LDSCRIPT = NUC123xD4xx0
# startup code to use
MCU_STARTUP = NUC123
BOARD = NUC123SD4AN0
# NUC123 series is Cortex M0
MCU = cortex-m0
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
ARMV = 6
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
@@ -0,0 +1,56 @@
/* Copyright 2019 /u/KeepItUnder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// LAYERS
enum Layer {
_QWERTY = 0, // Standard QWERTY layer
_FUNCTION, // Function key layer
_COLOUR // RGB key layer
};
#define _QW _QWERTY
#define _FN _FUNCTION
#define _CLR _COLOUR
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_ansi(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
KC_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_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_NUBS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL
),
[_FUNCTION] = LAYOUT_ansi(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______,
_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT,
_______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______
),
[_COLOUR] = LAYOUT_ansi(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, RGB_TOG, _______, _______, _______, _______
),
};
@@ -0,0 +1 @@
# The default ANSI keymap for one2mini
@@ -0,0 +1,25 @@
/* Copyright 2019 /u/KeepItUnder
*
* 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
// place overrides here
#define GRAVE_ESC_GUI_OVERRIDE
#define MK_3_SPEED
#define MK_C_OFFSET_UNMOD 400 /* Cursor offset per movement (unmodified) */
#define MK_C_INTERVAL_UNMOD 5 /* Time between cursor movements (unmodified) */
#define MK_W_OFFSET_UNMOD 100 /* Scroll steps per scroll action (unmodified) */
#define MK_W_INTERVAL_UNMOD 10 /* Time between scroll steps (unmodified) */
@@ -0,0 +1,56 @@
/* Copyright 2019 /u/KeepItUnder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// LAYERS
enum Layer {
_QWERTY = 0, // Standard QWERTY layer
_FUNCTION, // Function key layer
_COLOUR // RGB key layer
};
#define _QW _QWERTY
#define _FN _FUNCTION
#define _CLR _COLOUR
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_all(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
KC_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_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_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL
),
[_FUNCTION] = LAYOUT_all(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______,
_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT,
_______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, _______, MO(_CLR), KC_MPLY, _______, KC_APP, _______, _______
),
[_COLOUR] = LAYOUT_all(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, RGB_TOG, _______, _______, _______, _______
),
};
@@ -0,0 +1 @@
# The default keymap for one2mini (ISO & ANSI combined)
@@ -0,0 +1,56 @@
/* Copyright 2019 /u/KeepItUnder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// LAYERS
enum Layer {
_QWERTY = 0, // Standard QWERTY layer
_FUNCTION, // Function key layer
_COLOUR // RGB key layer
};
#define _QW _QWERTY
#define _FN _FUNCTION
#define _CLR _COLOUR
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_iso(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
KC_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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL
),
[_FUNCTION] = LAYOUT_iso(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR,
_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SLCK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_ENT,
_______, _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
_______, KC_APP, MO(_CLR), _______, _______, KC_APP, _______, _______
),
[_COLOUR] = LAYOUT_iso(
// 2 3 4 5 6 7 8 9 10 11 12 13 14
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, RGB_TOG, _______, _______, _______, _______
),
};
@@ -0,0 +1 @@
# The default ISO keymap for one2mini
+7
View File
@@ -0,0 +1,7 @@
# one2mini
![one2mini](http://www.duckychannel.com.tw/page-en/One_2_Mini_RGB/images/One2_Mini_01_02.jpg)
A 60% keyboard featuring per-key RGB LEDs.
See child directories for compatible boards.
+1
View File
@@ -0,0 +1 @@
DEFAULT_FOLDER = ducky/one2mini/1861st
+3 -6
View File
@@ -34,6 +34,7 @@ enum layer {
#define KY_ZMRST LCTL(KC_0) #define KY_ZMRST LCTL(KC_0)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281 */ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281 */
[LAYER_DEFAULT] = LAYOUT( [LAYER_DEFAULT] = LAYOUT(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
@@ -41,7 +42,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
XXXXXXX, XXXXXXX, KC_LALT, KC_LCTL, LY_LWR, KC_SPC, XXXXXXX, XXXXXXX, KC_ENT, LY_RSE, KC_RALT, KC_RGUI, XXXXXXX, XXXXXXX XXXXXXX, XXXXXXX, KC_LALT, KC_LCTL, LY_LWR, KC_SPC, XXXXXXX, XXXXXXX, KC_ENT, LY_RSE, KC_RALT, KC_RGUI, XXXXXXX, XXXXXXX
), ),
/* Lower layer: http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415 */ /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415 */
[LAYER_LOWER] = LAYOUT( [LAYER_LOWER] = LAYOUT(
MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
@@ -49,7 +49,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
/* Raise layer: http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862 */ /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862 */
[LAYER_RAISE] = LAYOUT( [LAYER_RAISE] = LAYOUT(
KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
@@ -57,7 +56,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
/* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21 */ /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21 */
[LAYER_ADJUST] = LAYOUT( [LAYER_ADJUST] = LAYOUT(
_______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______,
@@ -65,8 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______,
_______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______
), ),
// clang-format on
}; };
layer_state_t layer_state_set_keymap(layer_state_t state) { layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); }
return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
}
+15
View File
@@ -1,3 +1,18 @@
/* Copyright 2019 flehrad
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once #pragma once
#include "config_common.h" #include "config_common.h"
+38 -2
View File
@@ -6,10 +6,46 @@
"height": 4.5, "height": 4.5,
"layouts": { "layouts": {
"LAYOUT_tradestation": { "LAYOUT_tradestation": {
"layout": [{"x":0, "y":0},{"x":1.125, "y":0},{"x":2.25, "y":0},{"x":3.375, "y":0},{"x":0, "y":1.1},{"x":1.125, "y":1.1},{"x":2.25, "y":1.1},{"x":3.375, "y":1.1},{"x":0, "y":2.25, "w":2},{"x":2.25, "y":2.25, "w":2},{"x":0, "y":3.5, "w":2},{"x":2.25, "y":3.5, "w":2}] "layout": [
{"x":0, "y":0},
{"x":1.125, "y":0},
{"x":2.25, "y":0},
{"x":3.375, "y":0},
{"x":0, "y":1.1},
{"x":1.125, "y":1.1},
{"x":2.25, "y":1.1},
{"x":3.375, "y":1.1},
{"x":0, "y":2.25, "w":2},
{"x":2.25, "y":2.25, "w":2},
{"x":0, "y":3.5, "w":2},
{"x":2.25, "y":3.5, "w":2}
]
}, },
"LAYOUT_ortho_4x4": { "LAYOUT_ortho_4x4": {
"layout": [{"x":0, "y":0},{"x":1.125, "y":0},{"x":2.25, "y":0},{"x":3.375, "y":0},{"x":0, "y":1.1},{"x":1.125, "y":1.1},{"x":2.25, "y":1.1},{"x":3.375, "y":1.1},{"x":0, "y":2.25},{"x":1.125, "y":2.25},{"x":2.25, "y":2.25},{"x":3.375, "y":2.25},{"x":0, "y":3.5},{"x":1.125, "y":3.5},{"x":2.25, "y":3.5},{"x":3.375, "y":3.5}] "layout": [
{"x":0, "y":0},
{"x":1.125, "y":0},
{"x":2.25, "y":0},
{"x":3.375, "y":0},
{"x":0, "y":1.1},
{"x":1.125, "y":1.1},
{"x":2.25, "y":1.1},
{"x":3.375, "y":1.1},
{"x":0, "y":2.25},
{"x":1.125, "y":2.25},
{"x":2.25, "y":2.25},
{"x":3.375, "y":2.25},
{"x":0, "y":3.5},
{"x":1.125, "y":3.5},
{"x":2.25, "y":3.5},
{"x":3.375, "y":3.5}
]
} }
} }
} }
@@ -1,61 +1,27 @@
/* Copyright 2019 flehrad
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#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] = {
LAYOUT_ortho_4x4( [0] = LAYOUT_ortho_4x4(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
LAYOUT_tradestation(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS),
}; };
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
}
@@ -0,0 +1,27 @@
/* Copyright 2019 flehrad
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_tradestation(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS
),
};
+1 -8
View File
@@ -2,17 +2,10 @@
MCU = atmega32u4 MCU = atmega32u4
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = caterina BOOTLOADER = caterina
# Build Options # Build Options
# comment out to disable the options. # change yes to no to disable
# #
BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
@@ -1 +1,16 @@
/* Copyright 2019 flehrad
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "tradestation.h" #include "tradestation.h"
@@ -1,3 +1,18 @@
/* Copyright 2019 flehrad
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once #pragma once
#include "quantum.h" #include "quantum.h"
+2 -2
View File
@@ -6,10 +6,10 @@
"height": 6, "height": 6,
"layouts": { "layouts": {
"LAYOUT_default": { "LAYOUT_default": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}]
}, },
"LAYOUT_ansi_splitspace": { "LAYOUT_ansi_splitspace": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":2.25}, {"label":"Layer", "x":6, "y":5, "w":1.25}, {"label":"Space", "x":7.25, "y":5, "w":2.75}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":2.25}, {"label":"Layer", "x":6, "y":5, "w":1.25}, {"label":"Space", "x":7.25, "y":5, "w":2.75}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":4, "h":2}]
}, },
"LAYOUT_iso": { "LAYOUT_iso": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"~", "x":12.75, "y":3}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"|", "x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}] "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Prev", "x":15, "y":0}, {"label":"Next", "x":16, "y":0}, {"label":"Vol -", "x":17, "y":0}, {"label":"Vol +", "x":18, "y":0}, {"label":"\u00ac", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"\"", "x":2, "y":1}, {"label":"\u00a3", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Play", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2, "h":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"@", "x":11.75, "y":3}, {"label":"~", "x":12.75, "y":3}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"|", "x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4, "h":2}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"6.25Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}]
+22 -8
View File
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum layer { enum layer {
@@ -8,17 +24,18 @@ enum layer {
#define LY_SECND MO(LAYER_SECOND) #define LY_SECND MO(LAYER_SECOND)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
[LAYER_FIRST] = LAYOUT( [LAYER_FIRST] = LAYOUT(
KC_MUTE, LY_SECND, BL_BRTG, KC_MUTE, LY_SECND, BL_BRTG,
KC_F4, KC_F5, KC_F6, KC_F4, KC_F5, KC_F6,
KC_F1, KC_F2, KC_F3 KC_F1, KC_F2, KC_F3
), ),
[LAYER_SECOND] = LAYOUT( [LAYER_SECOND] = LAYOUT(
EEP_RST, _______, RESET, EEP_RST, _______, RESET,
KC_F10, KC_F11, KC_F12, KC_F10, KC_F11, KC_F12,
KC_F7, KC_F8, KC_F9 KC_F7, KC_F8, KC_F9
), ),
// clang-format on
}; };
bool encoder_update_user(uint8_t index, bool clockwise) { bool encoder_update_user(uint8_t index, bool clockwise) {
@@ -26,20 +43,17 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
/* Top-left encoder (volume) */ /* Top-left encoder (volume) */
case 0: case 0:
tap_code(clockwise ? KC_VOLU : KC_VOLD); tap_code(clockwise ? KC_VOLU : KC_VOLD);
break; return false;
/* Top-right encoder (backlight brightness) */ /* Top-right encoder (backlight brightness) */
case 1: case 1:
#if defined(BACKLIGHT_ENABLE)
if (clockwise) { if (clockwise) {
#ifdef BACKLIGHT_ENABLE
backlight_increase(); backlight_increase();
#endif
} else { } else {
#ifdef BACKLIGHT_ENABLE
backlight_decrease(); backlight_decrease();
#endif
} }
break; #endif
return false;
} }
return true; return true;
} }
@@ -1,10 +1,25 @@
/* Copyright 2021 Jonathan Rascher
*
* 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 #pragma once
/* /* Quefrency lacks I2C resistors on the right PCB, so the right half doesn't
* Quefrency lacks I2C resistors on the right PCB, so the right half doesn't
* work independently. (Presumably the floating I2C lines cause a problem.) * work independently. (Presumably the floating I2C lines cause a problem.)
* Using serial seems sufficiently fast in practice and allows both halves to * Using serial seems sufficiently fast in practice and allows both halves to be
* be used independently. * used independently.
*/ */
#define USE_SERIAL #define USE_SERIAL
@@ -14,4 +29,5 @@
/* Set up RGB lighting so it works with either side as master. */ /* Set up RGB lighting so it works with either side as master. */
#undef RGBLED_SPLIT #undef RGBLED_SPLIT
#define RGBLED_SPLIT { 8, 9 } #define RGBLED_SPLIT \
{ 8, 9 }
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum layer { enum layer {
@@ -8,6 +24,7 @@ enum layer {
#define LY_FN MO(LAYER_FUNCTION) #define LY_FN MO(LAYER_FUNCTION)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/60a262432bb340b37d364a4424f3037b */ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/60a262432bb340b37d364a4424f3037b */
[LAYER_DEFAULT] = LAYOUT_65( [LAYER_DEFAULT] = LAYOUT_65(
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_HOME, 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_HOME,
@@ -16,7 +33,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_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_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, LY_FN, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT KC_LCTL, KC_LGUI, KC_LALT, LY_FN, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
), ),
/* Function layer: http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d */ /* Function layer: http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d */
[LAYER_FUNCTION] = LAYOUT_65( [LAYER_FUNCTION] = LAYOUT_65(
_______, 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, RGB_HUI, _______, 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, RGB_HUI,
@@ -25,4 +41,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD
), ),
// clang-format on
}; };
+16
View File
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* 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 #pragma once
#define EE_HANDS #define EE_HANDS
+3 -6
View File
@@ -34,6 +34,7 @@ enum layer {
#define KY_ZMRST LCTL(KC_0) #define KY_ZMRST LCTL(KC_0)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/e0eb3af65961e9fd612dcff3ddd88e4f */ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/e0eb3af65961e9fd612dcff3ddd88e4f */
[LAYER_DEFAULT] = LAYOUT( [LAYER_DEFAULT] = LAYOUT(
KC_EQL, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
@@ -42,7 +43,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_WBAK, KC_WFWD, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_WBAK, KC_WFWD, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT, KC_RGUI KC_LALT, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT, KC_RGUI
), ),
/* Lower layer: http://www.keyboard-layout-editor.com/#/gists/19ad0d3b5d745fbb2818db09740f5a11 */ /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/19ad0d3b5d745fbb2818db09740f5a11 */
[LAYER_LOWER] = LAYOUT( [LAYER_LOWER] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -51,7 +51,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV,
_______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______
), ),
/* Raise layer: http://www.keyboard-layout-editor.com/#/gists/912be7955f781cdaf692cc4d4c0b5823 */ /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/912be7955f781cdaf692cc4d4c0b5823 */
[LAYER_RAISE] = LAYOUT( [LAYER_RAISE] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -60,7 +59,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______
), ),
/* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/8f6a3f08350a9bbe1d414b22bca4e6c7 */ /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/8f6a3f08350a9bbe1d414b22bca4e6c7 */
[LAYER_ADJUST] = LAYOUT( [LAYER_ADJUST] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -69,8 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______
), ),
// clang-format on
}; };
layer_state_t layer_state_set_keymap(layer_state_t state) { layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); }
return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
}
+718 -49
View File
@@ -1,72 +1,741 @@
{ {
"keyboard_name": "Timber Wolf", "keyboard_name": "Timber Wolf",
"url": "https://geekhack.org/index.php?topic=102520.0", "url": "https://geekhack.org/index.php?topic=102520.0",
"maintainer": "Croktopus", "maintainer": "Croktopus",
"width": 18.75, "width": 18.75,
"height": 6.5, "height": 6.5,
"layouts": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"Mute", "x":0, "y":0},
{"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, {"label":"Esc", "x":1.25, "y":0},
{"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25}, {"label":"F1", "x":2.5, "y":0},
{"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Enter", "x":15, "y":3.25, "w":1.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25}, {"label":"F2", "x":3.5, "y":0},
{"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.25}, {"label":"Fn", "x":14.75, "y":4.25}, {"label":"Up", "x":15.75, "y":4.5}, {"label":"Up", "x":16.75, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"F3", "x":4.5, "y":0},
{"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":5.5}, {"label":"Alt", "x":10.75, "y":5.25, "w":1}, {"label":"Win", "x":11.75, "y":5.25}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1}, {"label":"Left", "x":13.75, "y":5.5}, {"label":"Left", "x":14.75, "y":5.5}, {"label":"Down", "x":15.75, "y":5.5}, {"label":"Right", "x":16.75, "y":5.5}, {"label":"Enter", "x":17.75, "y":5.25}] {"label":"F4", "x":5.5, "y":0},
{"label":"F5", "x":7, "y":0},
{"label":"F6", "x":8, "y":0},
{"label":"F7", "x":9, "y":0},
{"label":"F8", "x":10, "y":0},
{"label":"F9", "x":11.5, "y":0},
{"label":"F10", "x":12.5, "y":0},
{"label":"F11", "x":13.5, "y":0},
{"label":"F12", "x":14.5, "y":0},
{"label":"Insert", "x":15.75, "y":0},
{"label":"Home", "x":16.75, "y":0},
{"label":"PgUp", "x":17.75, "y":0},
{"label":"F13", "x":0, "y":1.25},
{"label":"~", "x":1.25, "y":1.25},
{"label":"!", "x":2.25, "y":1.25},
{"label":"@", "x":3.25, "y":1.25},
{"label":"#", "x":4.25, "y":1.25},
{"label":"$", "x":5.25, "y":1.25},
{"label":"%", "x":6.25, "y":1.25},
{"label":"^", "x":7.25, "y":1.25},
{"label":"&", "x":8.25, "y":1.25},
{"label":"*", "x":9.25, "y":1.25},
{"label":"(", "x":10.25, "y":1.25},
{"label":")", "x":11.25, "y":1.25},
{"label":"_", "x":12.25, "y":1.25},
{"label":"+", "x":13.25, "y":1.25},
{"x":14.25, "y":1.25},
{"label":"Backspace", "x":15.25, "y":1.25},
{"label":"End", "x":16.75, "y":1},
{"label":"PgDn", "x":17.75, "y":1},
{"label":"F14", "x":0, "y":2.25},
{"label":"Tab", "x":1.25, "y":2.25, "w":1.5},
{"label":"Q", "x":2.75, "y":2.25},
{"label":"W", "x":3.75, "y":2.25},
{"label":"E", "x":4.75, "y":2.25},
{"label":"R", "x":5.75, "y":2.25},
{"label":"T", "x":6.75, "y":2.25},
{"label":"Y", "x":7.75, "y":2.25},
{"label":"U", "x":8.75, "y":2.25},
{"label":"I", "x":9.75, "y":2.25},
{"label":"O", "x":10.75, "y":2.25},
{"label":"P", "x":11.75, "y":2.25},
{"label":"{", "x":12.75, "y":2.25},
{"label":"}", "x":13.75, "y":2.25},
{"label":"|", "x":14.75, "y":2.25, "w":1.5},
{"label":"Insert", "x":16.5, "y":2.25},
{"label":"PrtSc", "x":17.75, "y":2.25},
{"label":"F15", "x":0, "y":3.25},
{"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75},
{"label":"A", "x":3, "y":3.25},
{"label":"S", "x":4, "y":3.25},
{"label":"D", "x":5, "y":3.25},
{"label":"F", "x":6, "y":3.25},
{"label":"G", "x":7, "y":3.25},
{"label":"H", "x":8, "y":3.25},
{"label":"J", "x":9, "y":3.25},
{"label":"K", "x":10, "y":3.25},
{"label":"L", "x":11, "y":3.25},
{"label":":", "x":12, "y":3.25},
{"label":"\"", "x":13, "y":3.25},
{"x":14, "y":3.25},
{"label":"Enter", "x":15, "y":3.25, "w":1.25},
{"label":"Delete", "x":16.5, "y":3.25},
{"label":"Enter", "x":17.75, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Shift", "x":1.25, "y":4.25, "w":1.25},
{"x":2.5, "y":4.25},
{"label":"Z", "x":3.5, "y":4.25},
{"label":"X", "x":4.5, "y":4.25},
{"label":"C", "x":5.5, "y":4.25},
{"label":"V", "x":6.5, "y":4.25},
{"label":"B", "x":7.5, "y":4.25},
{"label":"N", "x":8.5, "y":4.25},
{"label":"M", "x":9.5, "y":4.25},
{"label":"<", "x":10.5, "y":4.25},
{"label":">", "x":11.5, "y":4.25},
{"label":"?", "x":12.5, "y":4.25},
{"label":"Shift", "x":13.5, "y":4.25, "w":1.25},
{"label":"Fn", "x":14.75, "y":4.25},
{"label":"Up", "x":15.75, "y":4.5},
{"label":"Up", "x":16.75, "y":4.5},
{"label":"Enter", "x":17.75, "y":4.25},
{"label":"F17", "x":0, "y":5.25},
{"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5},
{"label":"Win", "x":2.75, "y":5.25},
{"label":"Alt", "x":3.75, "y":5.25, "w":1.5},
{"x":5.25, "y":5.25, "w":5.5},
{"label":"Alt", "x":10.75, "y":5.25, "w":1},
{"label":"Win", "x":11.75, "y":5.25},
{"label":"Ctrl", "x":12.75, "y":5.25, "w":1},
{"label":"Left", "x":13.75, "y":5.5},
{"label":"Left", "x":14.75, "y":5.5},
{"label":"Down", "x":15.75, "y":5.5},
{"label":"Right", "x":16.75, "y":5.5},
{"label":"Enter", "x":17.75, "y":5.25}
]
}, },
"LAYOUT_prime_ansi": { "LAYOUT_prime_ansi": {
"layout": [ "layout": [
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"Mute", "x":0, "y":0},
{"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, {"label":"Esc", "x":1.25, "y":0},
{"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25}, {"label":"F1", "x":2.5, "y":0},
{"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25}, {"label":"F2", "x":3.5, "y":0},
{"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"F3", "x":4.5, "y":0},
{"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] {"label":"F4", "x":5.5, "y":0},
{"label":"F5", "x":7, "y":0},
{"label":"F6", "x":8, "y":0},
{"label":"F7", "x":9, "y":0},
{"label":"F8", "x":10, "y":0},
{"label":"F9", "x":11.5, "y":0},
{"label":"F10", "x":12.5, "y":0},
{"label":"F11", "x":13.5, "y":0},
{"label":"F12", "x":14.5, "y":0},
{"label":"Insert", "x":15.75, "y":0},
{"label":"Home", "x":16.75, "y":0},
{"label":"PgUp", "x":17.75, "y":0},
{"label":"F13", "x":0, "y":1.25},
{"label":"~", "x":1.25, "y":1.25},
{"label":"!", "x":2.25, "y":1.25},
{"label":"@", "x":3.25, "y":1.25},
{"label":"#", "x":4.25, "y":1.25},
{"label":"$", "x":5.25, "y":1.25},
{"label":"%", "x":6.25, "y":1.25},
{"label":"^", "x":7.25, "y":1.25},
{"label":"&", "x":8.25, "y":1.25},
{"label":"*", "x":9.25, "y":1.25},
{"label":"(", "x":10.25, "y":1.25},
{"label":")", "x":11.25, "y":1.25},
{"label":"_", "x":12.25, "y":1.25},
{"label":"+", "x":13.25, "y":1.25},
{"x":14.25, "y":1.25},
{"label":"Backspace", "x":15.25, "y":1.25},
{"label":"End", "x":16.75, "y":1},
{"label":"PgDn", "x":17.75, "y":1},
{"label":"F14", "x":0, "y":2.25},
{"label":"Tab", "x":1.25, "y":2.25, "w":1.5},
{"label":"Q", "x":2.75, "y":2.25},
{"label":"W", "x":3.75, "y":2.25},
{"label":"E", "x":4.75, "y":2.25},
{"label":"R", "x":5.75, "y":2.25},
{"label":"T", "x":6.75, "y":2.25},
{"label":"Y", "x":7.75, "y":2.25},
{"label":"U", "x":8.75, "y":2.25},
{"label":"I", "x":9.75, "y":2.25},
{"label":"O", "x":10.75, "y":2.25},
{"label":"P", "x":11.75, "y":2.25},
{"label":"{", "x":12.75, "y":2.25},
{"label":"}", "x":13.75, "y":2.25},
{"label":"|", "x":14.75, "y":2.25, "w":1.5},
{"label":"Insert", "x":16.5, "y":2.25},
{"label":"PrtSc", "x":17.75, "y":2.25},
{"label":"F15", "x":0, "y":3.25},
{"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75},
{"label":"A", "x":3, "y":3.25},
{"label":"S", "x":4, "y":3.25},
{"label":"D", "x":5, "y":3.25},
{"label":"F", "x":6, "y":3.25},
{"label":"G", "x":7, "y":3.25},
{"label":"H", "x":8, "y":3.25},
{"label":"J", "x":9, "y":3.25},
{"label":"K", "x":10, "y":3.25},
{"label":"L", "x":11, "y":3.25},
{"label":":", "x":12, "y":3.25},
{"label":"\"", "x":13, "y":3.25},
{"label":"Enter", "x":14, "y":3.25, "w":2.25},
{"label":"Delete", "x":16.5, "y":3.25},
{"label":"Enter", "x":17.75, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Shift", "x":1.25, "y":4.25, "w":2.25},
{"label":"Z", "x":3.5, "y":4.25},
{"label":"X", "x":4.5, "y":4.25},
{"label":"C", "x":5.5, "y":4.25},
{"label":"V", "x":6.5, "y":4.25},
{"label":"B", "x":7.5, "y":4.25},
{"label":"N", "x":8.5, "y":4.25},
{"label":"M", "x":9.5, "y":4.25},
{"label":"<", "x":10.5, "y":4.25},
{"label":">", "x":11.5, "y":4.25},
{"label":"?", "x":12.5, "y":4.25},
{"label":"Shift", "x":13.5, "y":4.25, "w":1.75},
{"label":"Fn", "x":15.25, "y":4.25},
{"label":"Up", "x":16.5, "y":4.5},
{"label":"Enter", "x":17.75, "y":4.25},
{"label":"F17", "x":0, "y":5.25},
{"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5},
{"label":"Win", "x":2.75, "y":5.25},
{"label":"Alt", "x":3.75, "y":5.25, "w":1.5},
{"x":5.25, "y":5.25, "w":6},
{"label":"Alt", "x":11.25, "y":5.25, "w":1.5},
{"label":"Win", "x":12.75, "y":5.25},
{"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5},
{"label":"Left", "x":15.5, "y":5.5},
{"label":"Down", "x":16.5, "y":5.5},
{"label":"Right", "x":17.5, "y":5.5}
]
}, },
"LAYOUT_prime_iso": { "LAYOUT_prime_iso": {
"layout": [ "layout": [
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"Mute", "x":0, "y":0},
{"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, {"label":"Esc", "x":1.25, "y":0},
{"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"PrtSc", "x":17.75, "y":2.25}, {"label":"F1", "x":2.5, "y":0},
{"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"Enter", "x":17.75, "y":3.25}, {"label":"F2", "x":3.5, "y":0},
{"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"F3", "x":4.5, "y":0},
{"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] {"label":"F4", "x":5.5, "y":0},
{"label":"F5", "x":7, "y":0},
{"label":"F6", "x":8, "y":0},
{"label":"F7", "x":9, "y":0},
{"label":"F8", "x":10, "y":0},
{"label":"F9", "x":11.5, "y":0},
{"label":"F10", "x":12.5, "y":0},
{"label":"F11", "x":13.5, "y":0},
{"label":"F12", "x":14.5, "y":0},
{"label":"Insert", "x":15.75, "y":0},
{"label":"Home", "x":16.75, "y":0},
{"label":"PgUp", "x":17.75, "y":0},
{"label":"F13", "x":0, "y":1.25},
{"label":"~", "x":1.25, "y":1.25},
{"label":"!", "x":2.25, "y":1.25},
{"label":"@", "x":3.25, "y":1.25},
{"label":"#", "x":4.25, "y":1.25},
{"label":"$", "x":5.25, "y":1.25},
{"label":"%", "x":6.25, "y":1.25},
{"label":"^", "x":7.25, "y":1.25},
{"label":"&", "x":8.25, "y":1.25},
{"label":"*", "x":9.25, "y":1.25},
{"label":"(", "x":10.25, "y":1.25},
{"label":")", "x":11.25, "y":1.25},
{"label":"_", "x":12.25, "y":1.25},
{"label":"+", "x":13.25, "y":1.25},
{"x":14.25, "y":1.25},
{"label":"Backspace", "x":15.25, "y":1.25},
{"label":"End", "x":16.75, "y":1},
{"label":"PgDn", "x":17.75, "y":1},
{"label":"F14", "x":0, "y":2.25},
{"label":"Tab", "x":1.25, "y":2.25, "w":1.5},
{"label":"Q", "x":2.75, "y":2.25},
{"label":"W", "x":3.75, "y":2.25},
{"label":"E", "x":4.75, "y":2.25},
{"label":"R", "x":5.75, "y":2.25},
{"label":"T", "x":6.75, "y":2.25},
{"label":"Y", "x":7.75, "y":2.25},
{"label":"U", "x":8.75, "y":2.25},
{"label":"I", "x":9.75, "y":2.25},
{"label":"O", "x":10.75, "y":2.25},
{"label":"P", "x":11.75, "y":2.25},
{"label":"{", "x":12.75, "y":2.25},
{"label":"}", "x":13.75, "y":2.25},
{"label":"Insert", "x":16.5, "y":2.25},
{"label":"PrtSc", "x":17.75, "y":2.25},
{"label":"F15", "x":0, "y":3.25},
{"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75},
{"label":"A", "x":3, "y":3.25},
{"label":"S", "x":4, "y":3.25},
{"label":"D", "x":5, "y":3.25},
{"label":"F", "x":6, "y":3.25},
{"label":"G", "x":7, "y":3.25},
{"label":"H", "x":8, "y":3.25},
{"label":"J", "x":9, "y":3.25},
{"label":"K", "x":10, "y":3.25},
{"label":"L", "x":11, "y":3.25},
{"label":":", "x":12, "y":3.25},
{"label":"\"", "x":13, "y":3.25},
{"x":14, "y":3.25},
{"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2},
{"label":"Delete", "x":16.5, "y":3.25},
{"label":"Enter", "x":17.75, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Shift", "x":1.25, "y":4.25, "w":1.25},
{"x":2.5, "y":4.25},
{"label":"Z", "x":3.5, "y":4.25},
{"label":"X", "x":4.5, "y":4.25},
{"label":"C", "x":5.5, "y":4.25},
{"label":"V", "x":6.5, "y":4.25},
{"label":"B", "x":7.5, "y":4.25},
{"label":"N", "x":8.5, "y":4.25},
{"label":"M", "x":9.5, "y":4.25},
{"label":"<", "x":10.5, "y":4.25},
{"label":">", "x":11.5, "y":4.25},
{"label":"?", "x":12.5, "y":4.25},
{"label":"Shift", "x":13.5, "y":4.25, "w":1.75},
{"label":"Fn", "x":15.25, "y":4.25},
{"label":"Up", "x":16.5, "y":4.5},
{"label":"Enter", "x":17.75, "y":4.25},
{"label":"F17", "x":0, "y":5.25},
{"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5},
{"label":"Win", "x":2.75, "y":5.25},
{"label":"Alt", "x":3.75, "y":5.25, "w":1.5},
{"x":5.25, "y":5.25, "w":6},
{"label":"Alt", "x":11.25, "y":5.25, "w":1.5},
{"label":"Win", "x":12.75, "y":5.25},
{"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5},
{"label":"Left", "x":15.5, "y":5.5},
{"label":"Down", "x":16.5, "y":5.5},
{"label":"Right", "x":17.5, "y":5.5}
]
}, },
"LAYOUT_b_ansi": { "LAYOUT_b_ansi": {
"layout": [ "layout": [
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"PrtSc", "x":15.75, "y":0}, {"label":"Scroll Lock", "x":16.75, "y":0}, {"label":"Pause", "x":17.75, "y":0}, {"label":"Mute", "x":0, "y":0},
{"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"Home", "x":16.75, "y":1.25}, {"label":"PgUp", "x":17.75, "y":1.25}, {"label":"Esc", "x":1.25, "y":0},
{"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"End", "x":16.75, "y":2.25}, {"label":"PgDn", "x":17.75, "y":2.25}, {"label":"F1", "x":2.5, "y":0},
{"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.75, "y":3.25}, {"label":"Insert", "x":17.75, "y":3.25}, {"label":"F2", "x":3.5, "y":0},
{"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"F3", "x":4.5, "y":0},
{"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] {"label":"F4", "x":5.5, "y":0},
{"label":"F5", "x":7, "y":0},
{"label":"F6", "x":8, "y":0},
{"label":"F7", "x":9, "y":0},
{"label":"F8", "x":10, "y":0},
{"label":"F9", "x":11.5, "y":0},
{"label":"F10", "x":12.5, "y":0},
{"label":"F11", "x":13.5, "y":0},
{"label":"F12", "x":14.5, "y":0},
{"label":"PrtSc", "x":15.75, "y":0},
{"label":"Scroll Lock", "x":16.75, "y":0},
{"label":"Pause", "x":17.75, "y":0},
{"label":"F13", "x":0, "y":1.25},
{"label":"~", "x":1.25, "y":1.25},
{"label":"!", "x":2.25, "y":1.25},
{"label":"@", "x":3.25, "y":1.25},
{"label":"#", "x":4.25, "y":1.25},
{"label":"$", "x":5.25, "y":1.25},
{"label":"%", "x":6.25, "y":1.25},
{"label":"^", "x":7.25, "y":1.25},
{"label":"&", "x":8.25, "y":1.25},
{"label":"*", "x":9.25, "y":1.25},
{"label":"(", "x":10.25, "y":1.25},
{"label":")", "x":11.25, "y":1.25},
{"label":"_", "x":12.25, "y":1.25},
{"label":"+", "x":13.25, "y":1.25},
{"x":14.25, "y":1.25},
{"label":"Backspace", "x":15.25, "y":1.25},
{"label":"Home", "x":16.75, "y":1.25},
{"label":"PgUp", "x":17.75, "y":1.25},
{"label":"F14", "x":0, "y":2.25},
{"label":"Tab", "x":1.25, "y":2.25, "w":1.5},
{"label":"Q", "x":2.75, "y":2.25},
{"label":"W", "x":3.75, "y":2.25},
{"label":"E", "x":4.75, "y":2.25},
{"label":"R", "x":5.75, "y":2.25},
{"label":"T", "x":6.75, "y":2.25},
{"label":"Y", "x":7.75, "y":2.25},
{"label":"U", "x":8.75, "y":2.25},
{"label":"I", "x":9.75, "y":2.25},
{"label":"O", "x":10.75, "y":2.25},
{"label":"P", "x":11.75, "y":2.25},
{"label":"{", "x":12.75, "y":2.25},
{"label":"}", "x":13.75, "y":2.25},
{"label":"|", "x":14.75, "y":2.25, "w":1.5},
{"label":"End", "x":16.75, "y":2.25},
{"label":"PgDn", "x":17.75, "y":2.25},
{"label":"F15", "x":0, "y":3.25},
{"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75},
{"label":"A", "x":3, "y":3.25},
{"label":"S", "x":4, "y":3.25},
{"label":"D", "x":5, "y":3.25},
{"label":"F", "x":6, "y":3.25},
{"label":"G", "x":7, "y":3.25},
{"label":"H", "x":8, "y":3.25},
{"label":"J", "x":9, "y":3.25},
{"label":"K", "x":10, "y":3.25},
{"label":"L", "x":11, "y":3.25},
{"label":":", "x":12, "y":3.25},
{"label":"\"", "x":13, "y":3.25},
{"label":"Enter", "x":14, "y":3.25, "w":2.25},
{"label":"Delete", "x":16.75, "y":3.25},
{"label":"Insert", "x":17.75, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Shift", "x":1.25, "y":4.25, "w":2.25},
{"label":"Z", "x":3.5, "y":4.25},
{"label":"X", "x":4.5, "y":4.25},
{"label":"C", "x":5.5, "y":4.25},
{"label":"V", "x":6.5, "y":4.25},
{"label":"B", "x":7.5, "y":4.25},
{"label":"N", "x":8.5, "y":4.25},
{"label":"M", "x":9.5, "y":4.25},
{"label":"<", "x":10.5, "y":4.25},
{"label":">", "x":11.5, "y":4.25},
{"label":"?", "x":12.5, "y":4.25},
{"label":"Shift", "x":13.5, "y":4.25, "w":1.75},
{"label":"Fn", "x":15.25, "y":4.25},
{"label":"Up", "x":16.5, "y":4.5},
{"label":"Enter", "x":17.75, "y":4.25},
{"label":"F17", "x":0, "y":5.25},
{"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5},
{"label":"Win", "x":2.75, "y":5.25},
{"label":"Alt", "x":3.75, "y":5.25, "w":1.5},
{"x":5.25, "y":5.25, "w":6},
{"label":"Alt", "x":11.25, "y":5.25, "w":1.5},
{"label":"Win", "x":12.75, "y":5.25},
{"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5},
{"label":"Left", "x":15.5, "y":5.5},
{"label":"Down", "x":16.5, "y":5.5},
{"label":"Right", "x":17.5, "y":5.5}
]
}, },
"LAYOUT_b_iso": { "LAYOUT_b_iso": {
"layout": [ "layout": [
{"label":"Mute", "x":0, "y":0}, {"label":"Esc", "x":1.25, "y":0}, {"label":"F1", "x":2.5, "y":0}, {"label":"F2", "x":3.5, "y":0}, {"label":"F3", "x":4.5, "y":0}, {"label":"F4", "x":5.5, "y":0}, {"label":"F5", "x":7, "y":0}, {"label":"F6", "x":8, "y":0}, {"label":"F7", "x":9, "y":0}, {"label":"F8", "x":10, "y":0}, {"label":"F9", "x":11.5, "y":0}, {"label":"F10", "x":12.5, "y":0}, {"label":"F11", "x":13.5, "y":0}, {"label":"F12", "x":14.5, "y":0}, {"label":"PrtSc", "x":15.75, "y":0}, {"label":"Scroll Lock", "x":16.75, "y":0}, {"label":"Pause", "x":17.75, "y":0}, {"label":"Mute", "x":0, "y":0},
{"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"Home", "x":16.75, "y":1.25}, {"label":"PgUp", "x":17.75, "y":1.25}, {"label":"Esc", "x":1.25, "y":0},
{"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"End", "x":16.75, "y":2.25}, {"label":"PgDn", "x":17.75, "y":2.25}, {"label":"F1", "x":2.5, "y":0},
{"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.75, "y":3.25}, {"label":"Insert", "x":17.75, "y":3.25}, {"label":"F2", "x":3.5, "y":0},
{"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Fn", "x":15.25, "y":4.25}, {"label":"Up", "x":16.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"F3", "x":4.5, "y":0},
{"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5}, {"label":"Win", "x":2.75, "y":5.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.5}, {"x":5.25, "y":5.25, "w":6}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Win", "x":12.75, "y":5.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5}, {"label":"Left", "x":15.5, "y":5.5}, {"label":"Down", "x":16.5, "y":5.5}, {"label":"Right", "x":17.5, "y":5.5}] {"label":"F4", "x":5.5, "y":0},
{"label":"F5", "x":7, "y":0},
{"label":"F6", "x":8, "y":0},
{"label":"F7", "x":9, "y":0},
{"label":"F8", "x":10, "y":0},
{"label":"F9", "x":11.5, "y":0},
{"label":"F10", "x":12.5, "y":0},
{"label":"F11", "x":13.5, "y":0},
{"label":"F12", "x":14.5, "y":0},
{"label":"PrtSc", "x":15.75, "y":0},
{"label":"Scroll Lock", "x":16.75, "y":0},
{"label":"Pause", "x":17.75, "y":0},
{"label":"F13", "x":0, "y":1.25},
{"label":"~", "x":1.25, "y":1.25},
{"label":"!", "x":2.25, "y":1.25},
{"label":"@", "x":3.25, "y":1.25},
{"label":"#", "x":4.25, "y":1.25},
{"label":"$", "x":5.25, "y":1.25},
{"label":"%", "x":6.25, "y":1.25},
{"label":"^", "x":7.25, "y":1.25},
{"label":"&", "x":8.25, "y":1.25},
{"label":"*", "x":9.25, "y":1.25},
{"label":"(", "x":10.25, "y":1.25},
{"label":")", "x":11.25, "y":1.25},
{"label":"_", "x":12.25, "y":1.25},
{"label":"+", "x":13.25, "y":1.25},
{"x":14.25, "y":1.25},
{"label":"Backspace", "x":15.25, "y":1.25},
{"label":"Home", "x":16.75, "y":1.25},
{"label":"PgUp", "x":17.75, "y":1.25},
{"label":"F14", "x":0, "y":2.25},
{"label":"Tab", "x":1.25, "y":2.25, "w":1.5},
{"label":"Q", "x":2.75, "y":2.25},
{"label":"W", "x":3.75, "y":2.25},
{"label":"E", "x":4.75, "y":2.25},
{"label":"R", "x":5.75, "y":2.25},
{"label":"T", "x":6.75, "y":2.25},
{"label":"Y", "x":7.75, "y":2.25},
{"label":"U", "x":8.75, "y":2.25},
{"label":"I", "x":9.75, "y":2.25},
{"label":"O", "x":10.75, "y":2.25},
{"label":"P", "x":11.75, "y":2.25},
{"label":"{", "x":12.75, "y":2.25},
{"label":"}", "x":13.75, "y":2.25},
{"label":"End", "x":16.75, "y":2.25},
{"label":"PgDn", "x":17.75, "y":2.25},
{"label":"F15", "x":0, "y":3.25},
{"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75},
{"label":"A", "x":3, "y":3.25},
{"label":"S", "x":4, "y":3.25},
{"label":"D", "x":5, "y":3.25},
{"label":"F", "x":6, "y":3.25},
{"label":"G", "x":7, "y":3.25},
{"label":"H", "x":8, "y":3.25},
{"label":"J", "x":9, "y":3.25},
{"label":"K", "x":10, "y":3.25},
{"label":"L", "x":11, "y":3.25},
{"label":":", "x":12, "y":3.25},
{"label":"\"", "x":13, "y":3.25},
{"x":14, "y":3.25},
{"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2},
{"label":"Delete", "x":16.75, "y":3.25},
{"label":"Insert", "x":17.75, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Shift", "x":1.25, "y":4.25, "w":1.25},
{"x":2.5, "y":4.25},
{"label":"Z", "x":3.5, "y":4.25},
{"label":"X", "x":4.5, "y":4.25},
{"label":"C", "x":5.5, "y":4.25},
{"label":"V", "x":6.5, "y":4.25},
{"label":"B", "x":7.5, "y":4.25},
{"label":"N", "x":8.5, "y":4.25},
{"label":"M", "x":9.5, "y":4.25},
{"label":"<", "x":10.5, "y":4.25},
{"label":">", "x":11.5, "y":4.25},
{"label":"?", "x":12.5, "y":4.25},
{"label":"Shift", "x":13.5, "y":4.25, "w":1.75},
{"label":"Fn", "x":15.25, "y":4.25},
{"label":"Up", "x":16.5, "y":4.5},
{"label":"Enter", "x":17.75, "y":4.25},
{"label":"F17", "x":0, "y":5.25},
{"label":"Ctrl", "x":1.25, "y":5.25, "w":1.5},
{"label":"Win", "x":2.75, "y":5.25},
{"label":"Alt", "x":3.75, "y":5.25, "w":1.5},
{"x":5.25, "y":5.25, "w":6},
{"label":"Alt", "x":11.25, "y":5.25, "w":1.5},
{"label":"Win", "x":12.75, "y":5.25},
{"label":"Ctrl", "x":13.75, "y":5.25, "w":1.5},
{"label":"Left", "x":15.5, "y":5.5},
{"label":"Down", "x":16.5, "y":5.5},
{"label":"Right", "x":17.5, "y":5.5}
]
}, },
"LAYOUT_a_ansi": { "LAYOUT_a_ansi": {
"layout": [ "layout": [
{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10.25, "y":0}, {"label":"F10", "x":11.25, "y":0}, {"label":"F11", "x":12.25, "y":0}, {"label":"F12", "x":13.25, "y":0}, {"label":"PrtSc", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"Esc", "x":0, "y":0},
{"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, {"label":"F1", "x":1.25, "y":0},
{"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"|", "x":14.75, "y":2.25, "w":1.5}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"Mute", "x":17.75, "y":2.625}, {"label":"F2", "x":2.25, "y":0},
{"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"label":"Enter", "x":14, "y":3.25, "w":2.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"F3", "x":3.25, "y":0},
{"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":2.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Up", "x":15.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"F4", "x":4.25, "y":0},
{"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, {"x":5, "y":5.25, "w":6.25}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, {"label":"Left", "x":14.5, "y":5.5}, {"label":"Down", "x":15.5, "y":5.5}, {"label":"Right", "x":16.5, "y":5.5}, {"label":"Enter", "x":17.75, "y":5.25}] {"label":"F5", "x":5.75, "y":0},
{"label":"F6", "x":6.75, "y":0},
{"label":"F7", "x":7.75, "y":0},
{"label":"F8", "x":8.75, "y":0},
{"label":"F9", "x":10.25, "y":0},
{"label":"F10", "x":11.25, "y":0},
{"label":"F11", "x":12.25, "y":0},
{"label":"F12", "x":13.25, "y":0},
{"label":"PrtSc", "x":14.5, "y":0},
{"label":"Insert", "x":15.75, "y":0},
{"label":"Home", "x":16.75, "y":0},
{"label":"PgUp", "x":17.75, "y":0},
{"label":"F13", "x":0, "y":1.25},
{"label":"~", "x":1.25, "y":1.25},
{"label":"!", "x":2.25, "y":1.25},
{"label":"@", "x":3.25, "y":1.25},
{"label":"#", "x":4.25, "y":1.25},
{"label":"$", "x":5.25, "y":1.25},
{"label":"%", "x":6.25, "y":1.25},
{"label":"^", "x":7.25, "y":1.25},
{"label":"&", "x":8.25, "y":1.25},
{"label":"*", "x":9.25, "y":1.25},
{"label":"(", "x":10.25, "y":1.25},
{"label":")", "x":11.25, "y":1.25},
{"label":"_", "x":12.25, "y":1.25},
{"label":"+", "x":13.25, "y":1.25},
{"x":14.25, "y":1.25},
{"label":"Backspace", "x":15.25, "y":1.25},
{"label":"End", "x":16.75, "y":1},
{"label":"PgDn", "x":17.75, "y":1},
{"label":"F14", "x":0, "y":2.25},
{"label":"Tab", "x":1.25, "y":2.25, "w":1.5},
{"label":"Q", "x":2.75, "y":2.25},
{"label":"W", "x":3.75, "y":2.25},
{"label":"E", "x":4.75, "y":2.25},
{"label":"R", "x":5.75, "y":2.25},
{"label":"T", "x":6.75, "y":2.25},
{"label":"Y", "x":7.75, "y":2.25},
{"label":"U", "x":8.75, "y":2.25},
{"label":"I", "x":9.75, "y":2.25},
{"label":"O", "x":10.75, "y":2.25},
{"label":"P", "x":11.75, "y":2.25},
{"label":"{", "x":12.75, "y":2.25},
{"label":"}", "x":13.75, "y":2.25},
{"label":"|", "x":14.75, "y":2.25, "w":1.5},
{"label":"Insert", "x":16.5, "y":2.25},
{"label":"Mute", "x":17.75, "y":2.625},
{"label":"F15", "x":0, "y":3.25},
{"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75},
{"label":"A", "x":3, "y":3.25},
{"label":"S", "x":4, "y":3.25},
{"label":"D", "x":5, "y":3.25},
{"label":"F", "x":6, "y":3.25},
{"label":"G", "x":7, "y":3.25},
{"label":"H", "x":8, "y":3.25},
{"label":"J", "x":9, "y":3.25},
{"label":"K", "x":10, "y":3.25},
{"label":"L", "x":11, "y":3.25},
{"label":":", "x":12, "y":3.25},
{"label":"\"", "x":13, "y":3.25},
{"label":"Enter", "x":14, "y":3.25, "w":2.25},
{"label":"Delete", "x":16.5, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Shift", "x":1.25, "y":4.25, "w":2.25},
{"label":"Z", "x":3.5, "y":4.25},
{"label":"X", "x":4.5, "y":4.25},
{"label":"C", "x":5.5, "y":4.25},
{"label":"V", "x":6.5, "y":4.25},
{"label":"B", "x":7.5, "y":4.25},
{"label":"N", "x":8.5, "y":4.25},
{"label":"M", "x":9.5, "y":4.25},
{"label":"<", "x":10.5, "y":4.25},
{"label":">", "x":11.5, "y":4.25},
{"label":"?", "x":12.5, "y":4.25},
{"label":"Shift", "x":13.5, "y":4.25, "w":1.75},
{"label":"Up", "x":15.5, "y":4.5},
{"label":"Enter", "x":17.75, "y":4.25},
{"label":"F17", "x":0, "y":5.25},
{"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25},
{"label":"Win", "x":2.5, "y":5.25, "w":1.25},
{"label":"Alt", "x":3.75, "y":5.25, "w":1.25},
{"x":5, "y":5.25, "w":6.25},
{"label":"Alt", "x":11.25, "y":5.25, "w":1.5},
{"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5},
{"label":"Left", "x":14.5, "y":5.5},
{"label":"Down", "x":15.5, "y":5.5},
{"label":"Right", "x":16.5, "y":5.5},
{"label":"Enter", "x":17.75, "y":5.25}
]
}, },
"LAYOUT_a_iso": { "LAYOUT_a_iso": {
"layout": [ "layout": [
{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.75, "y":0}, {"label":"F6", "x":6.75, "y":0}, {"label":"F7", "x":7.75, "y":0}, {"label":"F8", "x":8.75, "y":0}, {"label":"F9", "x":10.25, "y":0}, {"label":"F10", "x":11.25, "y":0}, {"label":"F11", "x":12.25, "y":0}, {"label":"F12", "x":13.25, "y":0}, {"label":"PrtSc", "x":14.5, "y":0}, {"label":"Insert", "x":15.75, "y":0}, {"label":"Home", "x":16.75, "y":0}, {"label":"PgUp", "x":17.75, "y":0}, {"label":"Esc", "x":0, "y":0},
{"label":"F13", "x":0, "y":1.25}, {"label":"~", "x":1.25, "y":1.25}, {"label":"!", "x":2.25, "y":1.25}, {"label":"@", "x":3.25, "y":1.25}, {"label":"#", "x":4.25, "y":1.25}, {"label":"$", "x":5.25, "y":1.25}, {"label":"%", "x":6.25, "y":1.25}, {"label":"^", "x":7.25, "y":1.25}, {"label":"&", "x":8.25, "y":1.25}, {"label":"*", "x":9.25, "y":1.25}, {"label":"(", "x":10.25, "y":1.25}, {"label":")", "x":11.25, "y":1.25}, {"label":"_", "x":12.25, "y":1.25}, {"label":"+", "x":13.25, "y":1.25}, {"x":14.25, "y":1.25}, {"label":"Backspace", "x":15.25, "y":1.25}, {"label":"End", "x":16.75, "y":1}, {"label":"PgDn", "x":17.75, "y":1}, {"label":"F1", "x":1.25, "y":0},
{"label":"F14", "x":0, "y":2.25}, {"label":"Tab", "x":1.25, "y":2.25, "w":1.5}, {"label":"Q", "x":2.75, "y":2.25}, {"label":"W", "x":3.75, "y":2.25}, {"label":"E", "x":4.75, "y":2.25}, {"label":"R", "x":5.75, "y":2.25}, {"label":"T", "x":6.75, "y":2.25}, {"label":"Y", "x":7.75, "y":2.25}, {"label":"U", "x":8.75, "y":2.25}, {"label":"I", "x":9.75, "y":2.25}, {"label":"O", "x":10.75, "y":2.25}, {"label":"P", "x":11.75, "y":2.25}, {"label":"{", "x":12.75, "y":2.25}, {"label":"}", "x":13.75, "y":2.25}, {"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2}, {"label":"Insert", "x":16.5, "y":2.25}, {"label":"Mute", "x":17.75, "y":2.625}, {"label":"F2", "x":2.25, "y":0},
{"label":"F15", "x":0, "y":3.25}, {"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75}, {"label":"A", "x":3, "y":3.25}, {"label":"S", "x":4, "y":3.25}, {"label":"D", "x":5, "y":3.25}, {"label":"F", "x":6, "y":3.25}, {"label":"G", "x":7, "y":3.25}, {"label":"H", "x":8, "y":3.25}, {"label":"J", "x":9, "y":3.25}, {"label":"K", "x":10, "y":3.25}, {"label":"L", "x":11, "y":3.25}, {"label":":", "x":12, "y":3.25}, {"label":"\"", "x":13, "y":3.25}, {"x":14, "y":3.25}, {"label":"Delete", "x":16.5, "y":3.25}, {"label":"F3", "x":3.25, "y":0},
{"label":"F16", "x":0, "y":4.25}, {"label":"Shift", "x":1.25, "y":4.25, "w":1.25}, {"x":2.5, "y":4.25}, {"label":"Z", "x":3.5, "y":4.25}, {"label":"X", "x":4.5, "y":4.25}, {"label":"C", "x":5.5, "y":4.25}, {"label":"V", "x":6.5, "y":4.25}, {"label":"B", "x":7.5, "y":4.25}, {"label":"N", "x":8.5, "y":4.25}, {"label":"M", "x":9.5, "y":4.25}, {"label":"<", "x":10.5, "y":4.25}, {"label":">", "x":11.5, "y":4.25}, {"label":"?", "x":12.5, "y":4.25}, {"label":"Shift", "x":13.5, "y":4.25, "w":1.75}, {"label":"Up", "x":15.5, "y":4.5}, {"label":"Enter", "x":17.75, "y":4.25}, {"label":"F4", "x":4.25, "y":0},
{"label":"F17", "x":0, "y":5.25}, {"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25}, {"label":"Win", "x":2.5, "y":5.25, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.25, "w":1.25}, {"x":5, "y":5.25, "w":6.25}, {"label":"Alt", "x":11.25, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5}, {"label":"Left", "x":14.5, "y":5.5}, {"label":"Down", "x":15.5, "y":5.5}, {"label":"Right", "x":16.5, "y":5.5}, {"label":"Enter", "x":17.75, "y":5.25}] {"label":"F5", "x":5.75, "y":0},
{"label":"F6", "x":6.75, "y":0},
{"label":"F7", "x":7.75, "y":0},
{"label":"F8", "x":8.75, "y":0},
{"label":"F9", "x":10.25, "y":0},
{"label":"F10", "x":11.25, "y":0},
{"label":"F11", "x":12.25, "y":0},
{"label":"F12", "x":13.25, "y":0},
{"label":"PrtSc", "x":14.5, "y":0},
{"label":"Insert", "x":15.75, "y":0},
{"label":"Home", "x":16.75, "y":0},
{"label":"PgUp", "x":17.75, "y":0},
{"label":"F13", "x":0, "y":1.25},
{"label":"~", "x":1.25, "y":1.25},
{"label":"!", "x":2.25, "y":1.25},
{"label":"@", "x":3.25, "y":1.25},
{"label":"#", "x":4.25, "y":1.25},
{"label":"$", "x":5.25, "y":1.25},
{"label":"%", "x":6.25, "y":1.25},
{"label":"^", "x":7.25, "y":1.25},
{"label":"&", "x":8.25, "y":1.25},
{"label":"*", "x":9.25, "y":1.25},
{"label":"(", "x":10.25, "y":1.25},
{"label":")", "x":11.25, "y":1.25},
{"label":"_", "x":12.25, "y":1.25},
{"label":"+", "x":13.25, "y":1.25},
{"x":14.25, "y":1.25},
{"label":"Backspace", "x":15.25, "y":1.25},
{"label":"End", "x":16.75, "y":1},
{"label":"PgDn", "x":17.75, "y":1},
{"label":"F14", "x":0, "y":2.25},
{"label":"Tab", "x":1.25, "y":2.25, "w":1.5},
{"label":"Q", "x":2.75, "y":2.25},
{"label":"W", "x":3.75, "y":2.25},
{"label":"E", "x":4.75, "y":2.25},
{"label":"R", "x":5.75, "y":2.25},
{"label":"T", "x":6.75, "y":2.25},
{"label":"Y", "x":7.75, "y":2.25},
{"label":"U", "x":8.75, "y":2.25},
{"label":"I", "x":9.75, "y":2.25},
{"label":"O", "x":10.75, "y":2.25},
{"label":"P", "x":11.75, "y":2.25},
{"label":"{", "x":12.75, "y":2.25},
{"label":"}", "x":13.75, "y":2.25},
{"label":"Insert", "x":16.5, "y":2.25},
{"label":"Mute", "x":17.75, "y":2.625},
{"label":"F15", "x":0, "y":3.25},
{"label":"Caps Lock", "x":1.25, "y":3.25, "w":1.75},
{"label":"A", "x":3, "y":3.25},
{"label":"S", "x":4, "y":3.25},
{"label":"D", "x":5, "y":3.25},
{"label":"F", "x":6, "y":3.25},
{"label":"G", "x":7, "y":3.25},
{"label":"H", "x":8, "y":3.25},
{"label":"J", "x":9, "y":3.25},
{"label":"K", "x":10, "y":3.25},
{"label":"L", "x":11, "y":3.25},
{"label":":", "x":12, "y":3.25},
{"label":"\"", "x":13, "y":3.25},
{"x":14, "y":3.25},
{"label":"Enter", "x":15, "y":2.25, "w":1.25, "h":2},
{"label":"Delete", "x":16.5, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Shift", "x":1.25, "y":4.25, "w":1.25},
{"x":2.5, "y":4.25},
{"label":"Z", "x":3.5, "y":4.25},
{"label":"X", "x":4.5, "y":4.25},
{"label":"C", "x":5.5, "y":4.25},
{"label":"V", "x":6.5, "y":4.25},
{"label":"B", "x":7.5, "y":4.25},
{"label":"N", "x":8.5, "y":4.25},
{"label":"M", "x":9.5, "y":4.25},
{"label":"<", "x":10.5, "y":4.25},
{"label":">", "x":11.5, "y":4.25},
{"label":"?", "x":12.5, "y":4.25},
{"label":"Shift", "x":13.5, "y":4.25, "w":1.75},
{"label":"Up", "x":15.5, "y":4.5},
{"label":"Enter", "x":17.75, "y":4.25},
{"label":"F17", "x":0, "y":5.25},
{"label":"Ctrl", "x":1.25, "y":5.25, "w":1.25},
{"label":"Win", "x":2.5, "y":5.25, "w":1.25},
{"label":"Alt", "x":3.75, "y":5.25, "w":1.25},
{"x":5, "y":5.25, "w":6.25},
{"label":"Alt", "x":11.25, "y":5.25, "w":1.5},
{"label":"Ctrl", "x":12.75, "y":5.25, "w":1.5},
{"label":"Left", "x":14.5, "y":5.5},
{"label":"Down", "x":15.5, "y":5.5},
{"label":"Right", "x":16.5, "y":5.5},
{"label":"Enter", "x":17.75, "y":5.25}
]
} }
} }
} }
+150
View File
@@ -0,0 +1,150 @@
/*
Copyright 2021 ryanbaekr
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
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x7262
#define PRODUCT_ID 0x0086
#define DEVICE_VER 0x0002
#define MANUFACTURER ryanbaekr
#define PRODUCT rb86
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, D7 }
#define MATRIX_COL_PINS { B6, B5, D5, C7, F1, F0, D3, D2, D1, D0, D4, E6, B7, C6, F4, F5, F6 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Magic Key Options
*
* Magic keys are hotkey commands that allow control over firmware functions of
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
* The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
/* key combination for magic key command */
/* defined by default; to change, uncomment and set to the combination you want */
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
/* override magic key keymap */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP H
//#define MAGIC_KEY_HELP_ALT SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
//#define MAGIC_KEY_DEBUG_MOUSE M
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
//#define MAGIC_KEY_LAYER0 0
//#define MAGIC_KEY_LAYER0_ALT GRAVE
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
//#define MAGIC_KEY_LAYER4 4
//#define MAGIC_KEY_LAYER5 5
//#define MAGIC_KEY_LAYER6 6
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
//#define MAGIC_KEY_BOOTLOADER B
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "rb86",
"url": "",
"maintainer": "qmk",
"width": 17.25,
"height": 6.25,
"layouts": {
"LAYOUT_numpad_6x17": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":0, "y":1.25}, {"x":1, "y":1.25}, {"x":2, "y":1.25}, {"x":3, "y":1.25}, {"x":4, "y":1.25}, {"x":5, "y":1.25}, {"x":6, "y":1.25}, {"x":7, "y":1.25}, {"x":8, "y":1.25}, {"x":9, "y":1.25}, {"x":10, "y":1.25}, {"x":11, "y":1.25}, {"x":12, "y":1.25}, {"x":13, "y":1.25, "w":2}, {"x":15.25, "y":1.25}, {"x":16.25, "y":1.25}, {"x":0, "y":2.25, "w":1.5}, {"x":1.5, "y":2.25}, {"x":2.5, "y":2.25}, {"x":3.5, "y":2.25}, {"x":4.5, "y":2.25}, {"x":5.5, "y":2.25}, {"x":6.5, "y":2.25}, {"x":7.5, "y":2.25}, {"x":8.5, "y":2.25}, {"x":9.5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.25}, {"x":12.5, "y":2.25}, {"x":13.5, "y":2.25, "w":1.5}, {"x":15.25, "y":2.25}, {"x":16.25, "y":2.25}, {"x":0, "y":3.25, "w":1.75}, {"x":1.75, "y":3.25}, {"x":2.75, "y":3.25}, {"x":3.75, "y":3.25}, {"x":4.75, "y":3.25}, {"x":5.75, "y":3.25}, {"x":6.75, "y":3.25}, {"x":7.75, "y":3.25}, {"x":8.75, "y":3.25}, {"x":9.75, "y":3.25}, {"x":10.75, "y":3.25}, {"x":11.75, "y":3.25}, {"x":12.75, "y":3.25, "w":2.25}, {"x":0, "y":4.25, "w":2.25}, {"x":2.25, "y":4.25}, {"x":3.25, "y":4.25}, {"x":4.25, "y":4.25}, {"x":5.25, "y":4.25}, {"x":6.25, "y":4.25}, {"x":7.25, "y":4.25}, {"x":8.25, "y":4.25}, {"x":9.25, "y":4.25}, {"x":10.25, "y":4.25}, {"x":11.25, "y":4.25}, {"x":12.25, "y":4.25, "w":2.75}, {"x":15.25, "y":4.25}, {"x":0, "y":5.25}, {"x":1, "y":5.25}, {"x":2, "y":5.25}, {"x":3, "y":5.25}, {"x":4, "y":5.25, "w":6.25}, {"x":10.25, "y":5.25, "w":1.25}, {"x":11.5, "y":5.25, "w":1.25}, {"x":12.75, "y":5.25, "w":1.25}, {"x":14.25, "y":5.25}, {"x":15.25, "y":5.25}, {"x":16.25, "y":5.25}]
}
}
}
@@ -0,0 +1,36 @@
/* Copyright 2021 ryanbaekr
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_numpad_6x17(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_PSCR, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
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_UP,
KC_LCTL, TG(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_F13, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_numpad_6x17(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLCK, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -0,0 +1 @@
# The default keymap for rb86
@@ -0,0 +1,54 @@
/* Copyright 2021 ryanbaekr
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_numpad_6x17(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_END, KC_PSCR, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
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_UP,
KC_LCTL, TG(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_F13, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_numpad_6x17(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLCK, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_numpad_6x17(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_numpad_6x17(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
+17
View File
@@ -0,0 +1,17 @@
/* Copyright 2021 ryanbaekr
*
* 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 "rb86.h"
+37
View File
@@ -0,0 +1,37 @@
/* Copyright 2021 ryanbaekr
*
* 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
#include "quantum.h"
#define ____ KC_NO
#define LAYOUT_numpad_6x17( \
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, \
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k114, k115, k116, \
k200, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216, \
k300, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k413, k415, \
k500, k501, k502, k503, k507, k510, k512, k513, k514, k515, k516 \
){ \
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016 }, \
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, ____, k114, k115, k116 }, \
{ k200, ____, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k214, k215, k216 }, \
{ k300, ____, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, ____, ____, ____ }, \
{ ____, k401, k402, k403, k404, k405, k406, k407, k408, k409, k410, k411, ____, k413, ____, k415, ____ }, \
{ k500, k501, k502, k503, ____, ____, ____, k507, ____, ____, k510, ____, k512, k513, k514, k515, k516 } \
}
+15
View File
@@ -0,0 +1,15 @@
# rb86
A diy sandwich compact TKL keyboard.
* Keyboard Maintainer: [ryanbaekr](https://github.com/ryanbaekr)
* Hardware Supported: rb86 with Elite-C
* Hardware Availability: 2021/05/15
Make example for this keyboard (after setting up your build environment):
make ryanbaekr/rb86:default
To boot into the bootloader, hold the reset button on the Elite-C on plug in
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).
+23
View File
@@ -0,0 +1,23 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth support
AUDIO_ENABLE = no # Audio output
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum layer { enum layer {
@@ -10,6 +26,7 @@ enum layer {
#define LY_FN2 MO(LAYER_FUNCTION_2) #define LY_FN2 MO(LAYER_FUNCTION_2)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc */ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc */
[LAYER_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift( [LAYER_DEFAULT] = LAYOUT_60_ansi_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,
@@ -36,4 +53,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______
), ),
// clang-format on
}; };
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum layer { enum layer {
@@ -10,6 +26,7 @@ enum layer {
#define LY_FN2 MO(LAYER_FUNCTION_2) #define LY_FN2 MO(LAYER_FUNCTION_2)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77 */ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77 */
[LAYER_DEFAULT] = LAYOUT_60_tsangan_hhkb( [LAYER_DEFAULT] = LAYOUT_60_tsangan_hhkb(
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,
@@ -18,7 +35,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LY_FN1, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LY_FN1,
KC_LCTL, LY_FN2, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL KC_LCTL, LY_FN2, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
), ),
/* Function 1 layer: http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551 */ /* Function 1 layer: http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551 */
[LAYER_FUNCTION_1] = LAYOUT_60_tsangan_hhkb( [LAYER_FUNCTION_1] = LAYOUT_60_tsangan_hhkb(
_______, 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,
@@ -27,7 +43,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_APP, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, KC_APP, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______
), ),
/* Function 2 layer: http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4 */ /* Function 2 layer: http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4 */
[LAYER_FUNCTION_2] = LAYOUT_60_tsangan_hhkb( [LAYER_FUNCTION_2] = LAYOUT_60_tsangan_hhkb(
_______, 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,
@@ -36,4 +51,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_MUTE, _______, BL_DEC, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
_______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______
), ),
// clang-format on
}; };
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
enum layer { enum layer {
@@ -8,6 +24,7 @@ enum layer {
#define LY_FN MO(LAYER_FUNCTION) #define LY_FN MO(LAYER_FUNCTION)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988 */ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988 */
[LAYER_DEFAULT] = LAYOUT_65_ansi_blocker_split_bs( [LAYER_DEFAULT] = LAYOUT_65_ansi_blocker_split_bs(
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_HOME, 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_HOME,
@@ -25,4 +42,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
// clang-format on
}; };
+3 -6
View File
@@ -34,6 +34,7 @@ enum layer {
#define KY_ZMRST LCTL(KC_0) #define KY_ZMRST LCTL(KC_0)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* Default layer: http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5 */ /* Default layer: http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5 */
[LAYER_DEFAULT] = LAYOUT_split_3x6_3( [LAYER_DEFAULT] = LAYOUT_split_3x6_3(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_BSPC,
@@ -41,7 +42,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT
), ),
/* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */ /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */
[LAYER_LOWER] = LAYOUT_split_3x6_3( [LAYER_LOWER] = LAYOUT_split_3x6_3(
MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
@@ -49,7 +49,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV, _______, KC_APP, KC_PSCR, KC_SLCK, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV,
_______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______
), ),
/* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */ /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */
[LAYER_RAISE] = LAYOUT_split_3x6_3( [LAYER_RAISE] = LAYOUT_split_3x6_3(
KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
@@ -57,7 +56,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS,
_______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______
), ),
/* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */ /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */
[LAYER_ADJUST] = LAYOUT_split_3x6_3( [LAYER_ADJUST] = LAYOUT_split_3x6_3(
_______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, NK_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EEP_RST, RESET, _______, _______, _______, _______,
@@ -65,8 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______, _______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______,
_______, _______, _______, RGB_TOG, _______, _______ _______, _______, _______, RGB_TOG, _______, _______
), ),
// clang-format on
}; };
layer_state_t layer_state_set_keymap(layer_state_t state) { layer_state_t layer_state_set_keymap(layer_state_t state) { return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); }
return update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
}
@@ -1,5 +1,10 @@
# bcat's split 3x6 + 3 thumb keys layout # bcat's split 3x6 + 3 thumb keys layout
(See also the
[BlueMicro](https://github.com/jpconstantineau/BlueMicro_BLE/tree/master/firmware/keyboards/crkbd/keymaps/bcat)
and [ZMK](https://github.com/bcat/zmk-config/blob/master/config/corne.keymap)
versions of this keymap.)
This is my favorite split ergo layout for typing, featuring the traditional This is my favorite split ergo layout for typing, featuring the traditional
four ortho/ergo layers (Default, Lower, Raise, Adjust). It is loosely inspired four ortho/ergo layers (Default, Lower, Raise, Adjust). It is loosely inspired
by the default Planck (numbers on Lower, symbols on Raise) and Crkbd (Space on by the default Planck (numbers on Lower, symbols on Raise) and Crkbd (Space on
+1 -1
View File
@@ -15,7 +15,7 @@
*/ */
#pragma once #pragma once
#include "platform.h" #include "platform_deps.h"
#include "wait.h" #include "wait.h"
#include "matrix.h" #include "matrix.h"
#include "keymap.h" #include "keymap.h"
+8
View File
@@ -17,3 +17,11 @@ Flashing example for this keyboard:
make %KEYBOARD%:default:flash make %KEYBOARD%:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+9 -2
View File
@@ -16,6 +16,13 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e
make %KEYBOARD%:default:flash make %KEYBOARD%:default:flash
**Reset Key**: Hold down the key located at *LOCATION*, commonly programmed as *KEY* while plugging in the keyboard.
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).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **BootloadHID reset**: Hold down the key connected to the `A0` and `B0` pins on the MCU if it is known (often top left or bottom left) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+12 -2
View File
@@ -17,6 +17,8 @@
#include "wpm.h" #include "wpm.h"
#include <math.h>
// WPM Stuff // WPM Stuff
static uint8_t current_wpm = 0; static uint8_t current_wpm = 0;
static uint16_t wpm_timer = 0; static uint16_t wpm_timer = 0;
@@ -69,14 +71,22 @@ __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) {
void update_wpm(uint16_t keycode) { void update_wpm(uint16_t keycode) {
if (wpm_keycode(keycode)) { if (wpm_keycode(keycode)) {
if (wpm_timer > 0) { if (wpm_timer > 0) {
current_wpm += ((60000 / timer_elapsed(wpm_timer) / WPM_ESTIMATED_WORD_SIZE) - current_wpm) * wpm_smoothing; uint16_t latest_wpm = 60000 / timer_elapsed(wpm_timer) / WPM_ESTIMATED_WORD_SIZE;
if (latest_wpm > UINT8_MAX) {
latest_wpm = UINT8_MAX;
}
current_wpm += ceilf((latest_wpm - current_wpm) * wpm_smoothing);
} }
wpm_timer = timer_read(); wpm_timer = timer_read();
} }
#ifdef WPM_ALLOW_COUNT_REGRESSION #ifdef WPM_ALLOW_COUNT_REGRESSION
uint8_t regress = wpm_regress_count(keycode); uint8_t regress = wpm_regress_count(keycode);
if (regress) { if (regress) {
current_wpm -= regress; if (current_wpm < regress) {
current_wpm = 0;
} else {
current_wpm -= regress;
}
wpm_timer = timer_read(); wpm_timer = timer_read();
} }
#endif #endif
File renamed without changes.
File renamed without changes.
+18
View File
@@ -0,0 +1,18 @@
/* Copyright 2021 QMK
*
* 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 3 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
// here just to please the build
+16
View File
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* 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 "bcat.h" #include "bcat.h"
#if defined(RGBLIGHT_ENABLE) #if defined(RGBLIGHT_ENABLE)
+17 -1
View File
@@ -1,8 +1,24 @@
/* Copyright 2021 Jonathan Rascher
*
* 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 #pragma once
#include "quantum.h" #include "quantum.h"
enum user_keycodes { enum user_keycode {
MC_ALTT = SAFE_RANGE, MC_ALTT = SAFE_RANGE,
KEYMAP_SAFE_RANGE, KEYMAP_SAFE_RANGE,
}; };
+1 -1
View File
@@ -15,7 +15,7 @@ Columnar-staggered split ergo layout, preferred for typing. Used on Crkbd.
* [60% Tsangan * [60% Tsangan
HHKB](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsangan_hhkb/bcat): HHKB](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsangan_hhkb/bcat):
Row-staggered layout, preferred for gaming. Used on ai03 Polaris, CannonKeys Row-staggered layout, preferred for gaming. Used on ai03 Polaris, CannonKeys
AN-C, CannonKeys Instant60. AN-C, CannonKeys Instant60, DZ60.
## Other keymaps ## Other keymaps