Compare commits

..

19 Commits

Author SHA1 Message Date
Michael Stapelberg
7d953332e0 ChibiOS USB driver: prevent deadlock with CONSOLE_ENABLE = yes (#12472)
Before this commit, attaching an ARM-based (i.e. ChibiOS-based) keyboard that
uses CONSOLE_ENABLE = yes and produces debug messages would deadlock the
keyboard unless one was running hid_listen.

With this commit, dead-locking writes to the queue are detected and prevented.

fixes #5631
2021-04-10 16:03:38 +01:00
Álvaro A. Volpato
03685309fd Reverse K0E and K0G (#12491)
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
2021-04-10 23:23:08 +10:00
Eithan Shavit
e09ca63317 [Keyboard] Add afternoonlabs/oceanbreeze (#12299)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Eithan Shavit <eithan@fb.com>
2021-04-09 22:57:30 -07:00
Ryo Maeda
3dbb7f261d [Keymap] Remove LAYOUT_kc macros from edvorakjp keymaps (#12217) 2021-04-09 17:37:49 -07:00
littleferris
93e8a401df [Keyboard] ergosaurus - add VIA support, enabled RGB (#12126)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-04-09 14:36:18 -07:00
hadi
7f9409bbb3 [Keyboard] Added senselessclay had60 (#12093)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-09 14:31:57 -07:00
kiwikey
633464acfa Add VIA keymap for Kawii9 (#12521)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-09 21:05:14 +02:00
mechlovin
f744e22b49 Add TH1800 PCB, Hex6C PCB, Rogue87 PCB, Rouge87 PCB, Infinity87 series (#11977)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: vuhopkep <boy9x0@gmail.com>
2021-04-09 20:48:30 +02:00
peepeetee
1a913aa12e Fix Breaking Change date (#12272) 2021-04-09 12:41:29 +10:00
Adrian
75f83210f4 Add new handwired keyboard (Ergocheap) (#11857)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-08 18:47:24 +02:00
Ryan
2170b75b26 qmk chibios-confmigrate: Make -i and -r required (#12515) 2021-04-08 14:16:15 +10:00
Kosuke Adachi
d1270c9d55 Update info.json to correctly. (#12507) 2021-04-07 09:57:36 -04:00
Ryan
546dfce209 Add info.json for CK60i (#12318) 2021-04-07 20:03:45 +10:00
SneakboxKB
e0614e4f52 Disarray ProductID change (#12440)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: mujimanic <64090325+mujimanic@users.noreply.github.com>
Co-authored-by: Zach White <skullydazed@gmail.com>
2021-04-04 11:09:43 +02:00
Takeshi ISHII
49dc332a04 [Keymap] cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows (#12259)
* cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows

* Made the layout data easier to read.
  * helix/rev2/keymaps/five_rows/keymap.c
  * helix/rev3_5rows/keymaps/five_rows/keymap.c

* The following two were made the same.
  * keymaps/five_rows/config.h
  * keymaps/five_rows/oled_display.c

The binary of the compilation result has not changed.

* update keyboards/helix/rev2/keymaps/five_rows/rules.mk

KEYBOARD_LOCAL_FEATURES_MK was moved to the end.

* add '#define DISABLE_SYNC_TIMER' into helix/rev3_5rows/keymaps/five_rows/config.h

The sync timer features worsen the matrix scan rate of the Helix keyboard. I'm not sure if it makes sense to have sync timer features enabled on the Helix keyboard. So in my keymap I disable this.
2021-04-04 04:42:29 +09:00
Joel Challis
60e1910e5b Add WSL specific logic for avrdude device detection (#12392) 2021-04-03 17:29:06 +01:00
Excitable Snowball
4e2ab3a177 Remove wave from requirements-dev.txt (#12387)
This resolves to <https://pypi.org/project/Wave/>, but the places where
the `wave` module is imported make it clear that the standard library
module <https://docs.python.org/3/library/wave.html> was intended.

Was originally added in #11820 and used in the following files:
* `util/sample_parser.py`
* `util/wavetable_parser.py`
2021-04-03 09:15:39 -07:00
Zach White
41f649c9a9 fix line endings 2021-04-03 08:27:46 -07:00
Steve Purcell
d91938c19d [nix] Use niv and poetry2nix to more easily manage dependencies (#11181)
* [nix] Update nixpkgs to avoid issues with Big Sur

The older nixpkgs snapshot did not contain nix changes to the
compiler/linker hooks that are necessary for compatibility with MacOS
Big Sur. The fix is simply to update to a newer snapshot.

* [nix] Add a poetry manifest and use poetry to build the Python env

* [nix] Use niv to manage upstream sources like nixpkgs

* [nix] Update to newer nixpkgs snapshot

* [nix] Bump python package versions
2021-04-03 08:05:46 -07:00
154 changed files with 5605 additions and 1193 deletions

1
.gitattributes vendored
View File

@@ -92,3 +92,4 @@ GRAPHICS
# hex files
*.hex binary
*.eep binary
nix/sources.nix linguist-generated=true

View File

@@ -15,7 +15,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
The next Breaking Change is scheduled for February 27, 2021.
The next Breaking Change is scheduled for May 29, 2021.
### Important Dates

View File

@@ -4,9 +4,9 @@
Split ergonomics meets productivity. Breeze Rev1 is a split keyboard with 6×4 keys, 4 key thumb cluster, arrow keys, and a 6 key macro cluster, with ortholinear column-staggered.
* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit)
* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs)
* Hardware Supported: Breeze Rev1 PCB
* Hardware Availability: Coming soon
* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com)
Make example for this keyboard (after setting up your build environment):

View File

@@ -9,8 +9,8 @@ BOOTLOADER = caterina
#
SPLIT_KEYBOARD = yes
BOOTMAGIC_ENABLE = lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = no # Audio control and System control
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # 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

View File

@@ -0,0 +1,22 @@
/* Copyright 2021 Afternoon Labs
*
* 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"
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -0,0 +1,71 @@
/* Copyright 2021 Afternoon Labs
*
* 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
enum layer_names {
_MAIN,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_LOWER] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, _______, _______
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_RAISE] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
_______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
)
};

View File

@@ -0,0 +1,5 @@
# Default Ocean Breeze Layout
![Ocean Breeze Layout Image](https://i.imgur.com/cXGLDVQ.png)
This is the default suggested layout for Ocean Breeze Split Keyboard.

View File

@@ -0,0 +1,17 @@
/* Copyright 2021 Afternoon Labs
*
* 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 "oceanbreeze.h"

View File

@@ -0,0 +1,21 @@
/* Copyright 2021 Afternoon Labs
*
* 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
#ifdef KEYBOARD_afternoonlabs_oceanbreeze_rev1
# include "rev1.h"
#endif

View File

@@ -0,0 +1,49 @@
/* Copyright 2021 Afternoon Labs
*
* 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
/* USB Device descriptor parameter */
#define VENDOR_ID 0x616C
#define PRODUCT_ID 0x0003
#define DEVICE_VER 0x0001
#define MANUFACTURER AfternoonLabs
#define PRODUCT OceanBreeze
/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 12
#define MATRIX_COLS 9
// wiring of each half
#define MATRIX_ROW_PINS \
{ F4, F5, F6, F7, B1, B6 }
#define MATRIX_COL_PINS \
{ B2, D1, D0, D4, C6, D7, E6, B4, B5 }
#define SPLIT_HAND_PIN B3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define SOFT_SERIAL_PIN D2
#define DIODE_DIRECTION COL2ROW
#define BOOTMAGIC_LITE_ROW_RIGHT 0
#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
#define BOOTMAGIC_LITE_ROW_LEFT 0
#define BOOTMAGIC_LITE_COLUMN_LEFT 5

View File

@@ -0,0 +1,86 @@
{
"keyboard_name": "OceanBreeze",
"url": "afternoonlabs.com",
"productId": "0x0003",
"maintainer": "afternoonlabs",
"width": 19,
"height": 6,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0.375},
{"x":1, "y":0.375},
{"x":2, "y":0.125},
{"x":3, "y":0},
{"x":4, "y":0.125},
{"x":5, "y":0.25},
{"x":9.75, "y":0.25},
{"x":10.75, "y":0.125},
{"x":11.75, "y":0},
{"x":12.75, "y":0.125},
{"x":13.75, "y":0.375},
{"x":14.75, "y":0.375},
{"x":16, "y":0.375},
{"x":17, "y":0.375},
{"x":18, "y":0.375},
{"x":0, "y":1.375},
{"x":1, "y":1.375},
{"x":2, "y":1.125},
{"x":3, "y":1},
{"x":4, "y":1.125},
{"x":5, "y":1.25},
{"x":9.75, "y":1.25},
{"x":10.75, "y":1.125},
{"x":11.75, "y":1},
{"x":12.75, "y":1.125},
{"x":13.75, "y":1.375},
{"x":14.75, "y":1.375},
{"x":16, "y":1.375},
{"x":17, "y":1.375},
{"x":18, "y":1.375},
{"x":0, "y":2.375},
{"x":1, "y":2.375},
{"x":2, "y":2.125},
{"x":3, "y":2},
{"x":4, "y":2.125},
{"x":5, "y":2.25},
{"x":9.75, "y":2.25},
{"x":10.75, "y":2.125},
{"x":11.75, "y":2},
{"x":12.75, "y":2.125},
{"x":13.75, "y":2.375},
{"x":14.75, "y":2.375},
{"x":17, "y":2.375},
{"x":0, "y":3.375},
{"x":1, "y":3.375},
{"x":2, "y":3.125},
{"x":3, "y":3},
{"x":4, "y":3.125},
{"x":5, "y":3.25},
{"x":6.25, "y":3.75},
{"x":8.5, "y":3.75},
{"x":9.75, "y":3.25},
{"x":10.75, "y":3.125},
{"x":11.75, "y":3},
{"x":12.75, "y":3.125},
{"x":13.75, "y":3.375},
{"x":14.75, "y":3.375},
{"x":16, "y":3.375},
{"x":17, "y":3.375},
{"x":18, "y":3.375},
{"x":2.5, "y":4.25},
{"x":3.5, "y":4.25},
{"x":4.5, "y":4.5},
{"x":6.25, "y":4.75},
{"x":8.5, "y":4.75},
{"x":10.25, "y":4.5},
{"x":11.25, "y":4.25},
{"x":12.25, "y":4.25}
]
}
}
}

View File

@@ -0,0 +1,15 @@
# Breeze
![Ocean Breeze Layout Image](https://i.imgur.com/cXGLDVQ.png)
Special Edition of the [Breeze](https://afternoonlabs.com). This one has two 1Us instead of the larger 2U on the thumb cluster.
* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs)
* Hardware Supported: Ocean Breeze Rev1 PCB
* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com)
Make example for this keyboard (after setting up your build environment):
make afternoonlabs/oceanbreeze/rev1: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).

View File

@@ -0,0 +1,17 @@
/* Copyright 2021 Afternoon Labs
*
* 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 "oceanbreeze.h"

View File

@@ -0,0 +1,44 @@
/* Copyright 2021 Afternoon Labs
*
* 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 "oceanbreeze.h"
#include "quantum.h"
#define XXX KC_NO
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \
L30, L31, L32, L33, L34, L35, LT4, RT1, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \
LT0, LT1, LT2, LT3, RT2, RT3, RT4, RT5 \
) { \
{ L05, L04, L03, L02, L01, L00, XXX, XXX, XXX }, \
{ L15, L14, L13, L12, L11, L10, XXX, XXX, XXX }, \
{ L25, L24, L23, L22, L21, L20, XXX, XXX, XXX }, \
{ L35, L34, L33, L32, L31, L30, XXX, XXX, XXX }, \
{ LT3, LT2, LT1, LT0, XXX, XXX, XXX, XXX, XXX }, \
{ LT4, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \
{ R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \
{ R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \
{ R20, R21, R22, R23, R24, R25, XXX, AUP, XXX }, \
{ R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \
{ RT2, RT3, RT4, RT5, XXX, XXX, XXX, XXX, XXX }, \
{ RT1, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
}

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 = 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 = no # 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
SPLIT_KEYBOARD = yes

82
keyboards/ck60i/info.json Normal file
View File

@@ -0,0 +1,82 @@
{
"keyboard_name": "CK60i",
"url": "",
"maintainer": "qmk",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT": {
"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, "w":2},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":6.5, "y":1},
{"x":7.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":6.75, "y":2},
{"x":7.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"x":11.75, "y":2},
{"x":12.75, "y":2},
{"x":13.75, "y":2, "w":1.25},
{"x":0, "y":3, "w":1.25},
{"x":1.25, "y":3},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3},
{"x":5.25, "y":3},
{"x":6.25, "y":3},
{"x":7.25, "y":3},
{"x":8.25, "y":3},
{"x":9.25, "y":3},
{"x":10.25, "y":3},
{"x":11.25, "y":3},
{"x":12.25, "y":3, "w":1.75},
{"x":14, "y":3},
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4, "w":1.25},
{"x":2.5, "y":4, "w":1.25},
{"x":3.75, "y":4, "w":6.25},
{"x":10, "y":4},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13, "y":4},
{"x":14, "y":4}
]
}
}
}

View File

@@ -1,25 +1,25 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#pragma once
/* Select hand configuration */
// #define MASTER_LEFT
#define MASTER_RIGHT
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define SSD1306OLED
#define SWAP_SCLN
// #define TAPPING_FORCE_HOLD
#define TAPPING_TERM 300
#define IGNORE_MOD_TAP_INTERRUPT
#undef RGBLED_NUM
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 100
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
# define RGBLED_NUM 27
# define RGBLIGHT_LIMIT_VAL 100
# define RGBLIGHT_HUE_STEP 10
# define RGBLIGHT_SAT_STEP 17
# define RGBLIGHT_VAL_STEP 17
#endif // RGBLIGHT_ENABLE
#endif // CONFIG_USER_H
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"

View File

@@ -1,9 +1,6 @@
#include QMK_KEYBOARD_H
#ifdef PROTOCOL_LUFA
#include "split_util.h"
#endif
#ifdef SSD1306OLED
#include "oled.h"
# include "split_util.h"
#endif
#include "edvorakjp.h"
@@ -14,85 +11,63 @@
* };
*/
#define KC_ KC_TRNS
#define KC_TMB1 KC_LA(TAB)
#define KC_TMB2 KC_LS(SPC)
#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
#define KC_TMB5 KC_RC(BSPC)
#define KC_TMB6 KC_RG(ENT)
#define KC_TMB7 KC_RC(DEL)
#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_EDVORAK] = LAYOUT_kc(
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
GRV ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
ESC ,SCLN, X , C , V , Z , H , J , K , L , B ,SLSH,
//`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----'
TMB1 ,TMB2,TMB3, TMB4,TMB5,TMB6
// `-----+----+----' `----+----+-----'
[L_EDVORAKJP_BASE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
//`--------------------------' `--------------------------'
),
[_LOWER] = LAYOUT_kc(
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
, , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
PSCR, , HOME , PGDN , PGUP ,END , LEFT, DOWN , UP , RGHT , , ,
//`----+----+------+------+------+----+----| |----+----+------+------+-------+----+----'
, , NO , MAC ,TMB7,
// `-----+----+----' `----+----+-----'
[L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
__EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
//`--------------------------' `--------------------------'
),
[_RAISE] = LAYOUT_kc(
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
PSCR, ,HOME ,PGDN ,PGUP ,END , LEFT,DOWN , UP ,RGHT , , ,
//`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----'
, ,WIN , NO , ,
// `-----+----+----' `----+----+----'
[L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
)
};
#ifdef SSD1306OLED
void matrix_init_keymap(void) {
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef MASTER_RIGHT
iota_gfx_init(has_usb()); // turns on the display
#else
iota_gfx_init(!has_usb());
#endif // MASTER_RIGHT
}
void matrix_scan_user(void) {
iota_gfx_task(); // this is what updates the display continuously
}
#endif
// clang-format on
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
uint32_t layer_state_set_keymap(uint32_t state) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case _LOWER:
rgblight_sethsv_noeeprom_red();
break;
case _RAISE:
rgblight_sethsv_noeeprom_green();
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv_red();
break;
}
return state;
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case L_EDVORAKJP_LOWER:
rgblight_sethsv_noeeprom_red();
break;
case L_EDVORAKJP_RAISE:
rgblight_sethsv_noeeprom_green();
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv_red();
break;
}
return state;
}
#endif

View File

@@ -1,76 +1,55 @@
#include <stdio.h>
#include <string.h>
#include "oled.h"
// NOTE: Redefined to avoid to use snprintf(); It makes size of firmware big.
const char *read_mode_icon(bool windows_mode) {
static const char logo[][2][3] = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}};
static char mode_icon[10];
#ifdef OLED_DRIVER_ENABLE
void render_host_led_state(void) { oled_write(read_host_led_state(), false); }
int mode_number = windows_mode ? 1 : 0;
strcpy(mode_icon, logo[mode_number][0]);
void render_layer_state(void) {
char layer_name[17];
oled_write_P(PSTR("Layer: "), false);
strcat(mode_icon, "\n");
strcat(mode_icon, logo[mode_number][1]);
return mode_icon;
switch (biton32(layer_state)) {
case L_EDVORAKJP_BASE:
oled_write_ln_P(PSTR("Default"), false);
break;
case L_EDVORAKJP_LOWER:
oled_write_ln_P(PSTR("Lower"), false);
break;
case L_EDVORAKJP_RAISE:
oled_write_ln_P(PSTR("Raise"), false);
break;
default:
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
oled_write_ln(layer_name, false);
}
}
const char *read_layer_state(void) {
static char layer_state_str[24];
char layer_name[17];
void render_logo(void) { oled_write(read_logo(), false); }
switch (biton32(layer_state)) {
case L_BASE:
strcpy(layer_name, "Default");
break;
case _RAISE:
strcpy(layer_name, "Raise");
break;
case _LOWER:
strcpy(layer_name, "Lower");
break;
default:
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
}
void render_mode_icon(bool is_windows) {
static const char logo[][2][3] = {
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
};
static char mode_icon[10];
strcpy(layer_state_str, "Layer: ");
strcat(layer_state_str, layer_name);
strcat(layer_state_str, "\n");
return layer_state_str;
snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]);
oled_write(mode_icon, false);
}
const char *read_host_led_state(void) {
static char led_str[24];
strcpy(led_str, (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NMLK" : " ");
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? " CAPS" : " ");
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? " SCLK" : " ");
return led_str;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
// flips the display 180 degrees if offhand
return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
}
void matrix_update(struct CharacterMatrix *dest,
const struct CharacterMatrix *source) {
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
memcpy(dest->display, source->display, sizeof(dest->display));
dest->dirty = true;
}
}
void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;
matrix_clear(&matrix);
#ifdef MASTER_RIGHT
if (!is_master) {
#else
if (is_master) {
#endif // MASTER_RIGHT
matrix_write(&matrix, read_mode_icon(!get_enable_kc_lang()));
matrix_write(&matrix, " ");
matrix_write(&matrix, read_layer_state());
matrix_write(&matrix, read_host_led_state());
} else {
matrix_write(&matrix, read_logo());
}
matrix_update(&display, &matrix);
void oled_task_user(void) {
if (is_keyboard_left()) {
render_mode_icon(!get_enable_kc_lang());
render_layer_state();
render_host_led_state();
} else {
render_logo();
}
}
#endif // OLED_DRIVER_ENABLE

View File

@@ -1,24 +1,17 @@
#ifndef OLED_USER_H
#define OLED_USER_H
#pragma once
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#include "ssd1306.h"
#include "edvorakjp.h"
//assign the right code to your layers for OLED display
#define L_BASE 0
extern uint8_t is_master;
extern bool japanese_mode;
// method prototypes defined in crkbd/lib
extern const char *read_host_led_state(void);
extern const char *read_logo(void);
extern const char *read_mode_icon(bool swap);
const char *read_mode_icon(bool swap);
const char *read_layer_state(void);
const char *read_host_led_state(void);
void matrix_update(struct CharacterMatrix *dest,
const struct CharacterMatrix *source);
void iota_gfx_task_user(void);
#endif // OLED_CONFIG_USER_H
void render_host_led_state(void);
void render_layer_state(void);
void render_logo(void);
void render_mode_icon(bool is_windows);
oled_rotation_t oled_init_user(oled_rotation_t rotation);
void oled_task_user(void);

View File

@@ -16,17 +16,13 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
TAP_DANCE_ENABLE = yes
OLED_DRIVER_ENABLE = yes
# 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 you want to change the display of OLED, you need to change here
SRC += ./lib/glcdfont.c \
SRC += ./lib/host_led_state_reader.c \
./lib/logo_reader.c \
oled.c \
# ./lib/rgb_state_reader.c \
# ./lib/layer_state_reader.c \
# ./lib/keylogger.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \
./lib/mode_icon_reader.c \
oled.c

View File

@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xBEEF
#define PRODUCT_ID 0xFEED
#define VENDOR_ID 0x434B
#define PRODUCT_ID 0xE590
#define DEVICE_VER 0x0001
#define MANUFACTURER reggalicious
#define PRODUCT ergosaurus
@@ -58,24 +58,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
// #ifdef RGBLIGHT_ENABLE
// #define RGB_DI_PIN B6
// #define RGBLED_NUM 16
// #define RGBLIGHT_HUE_STEP 8
// #define RGBLIGHT_SAT_STEP 8
// #define RGBLIGHT_VAL_STEP 8
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#ifdef RGBLIGHT_ENABLE
# define RGB_DI_PIN B6
#define RGBLED_NUM 32
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
// /*== all animations enable ==*/
// #define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// /*== customize breathing effect ==*/
@@ -84,7 +84,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// /*==== use exp() and sin() ====*/
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
// #endif
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
@@ -198,6 +198,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/

View File

@@ -0,0 +1,51 @@
/* Copyright 2021 littleferris
*
* 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_alice_split_bs(
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_DEL,
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_BSPC,
KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LGUI, KC_LALT, KC_ENT, MO(2), KC_SPC, KC_RALT, KC_RCTL
),
[1] = LAYOUT_alice_split_bs(
_______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_alice_split_bs(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, RESET
),
[3] = LAYOUT_alice_split_bs(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, RESET
)
};

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@@ -1,12 +1,61 @@
{
"keyboard_name": "cornelius",
"url": "",
"maintainer": "qmk",
"width": 7.55,
"height": 6.11,
"layouts": {
"LAYOUT": {
"layout": [{"label":"E", "x":2.5, "y":0}, {"label":"R", "x":3.5, "y":0.125}, {"label":"W", "x":1.5, "y":0.25}, {"label":"T", "x":4.5, "y":0.25}, {"label":"Tab", "x":-0.5, "y":0.625}, {"label":"Q", "x":0.5, "y":0.625}, {"label":"D", "x":2.5, "y":1}, {"label":"F", "x":3.5, "y":1.125}, {"label":"S", "x":1.5, "y":1.25}, {"label":"G", "x":4.5, "y":1.25}, {"label":"Esc", "x":-0.5, "y":1.625}, {"label":"A", "x":0.5, "y":1.625}, {"label":"C", "x":2.5, "y":2}, {"label":"V", "x":3.5, "y":2.125}, {"label":"X", "x":1.5, "y":2.25}, {"label":"B", "x":4.5, "y":2.25}, {"label":"Shift", "x":-0.5, "y":2.625}, {"label":"Z", "x":0.5, "y":2.625}, {"label":"Win", "x":1.5, "y":3.25}, {"label":"Alt", "x":3, "y":3.25}, {"label":"Fn", "x":-0.5, "y":3.625}, {"label":"Ctrl", "x":0.5, "y":3.625}, {"label":"Lower", "x":4.97, "y":2.11}, {"x":6.55, "y":0.48}, {"x":-7.55, "y":1.94}, {"label":"Raise", "x":-5.95, "y":3.58}, {"label":"I", "x":-3.5, "y":1.48}, {"label":"U", "x":-4.5, "y":1.605}, {"label":"Y", "x":-5.5, "y":1.73}, {"label":"O", "x":-2.5, "y":1.73}, {"label":"P", "x":-1.5, "y":2.105}, {"label":"Bksp", "x":-0.5, "y":2.105}, {"label":"K", "x":-3.5, "y":2.48}, {"label":"J", "x":-4.5, "y":2.605}, {"label":"H", "x":-5.5, "y":2.73}, {"label":"L", "x":-2.5, "y":2.73}, {"label":":", "x":-1.5, "y":3.105}, {"label":"\"", "x":-0.5, "y":3.105}, {"label":"<", "x":-3.5, "y":3.48}, {"label":"M", "x":-4.5, "y":3.605}, {"label":"N", "x":-5.5, "y":3.73}, {"label":">", "x":-2.5, "y":3.73}, {"label":"?", "x":-1.5, "y":4.105}, {"label":"Shift", "x":-0.5, "y":4.105}, {"label":"Alt", "x":-4, "y":4.73}, {"label":"Win", "x":-2.5, "y":4.73}, {"label":"Ctrl", "x":-1.5, "y":5.105}, {"label":"Fn", "x":-0.5, "y":5.105}]
"keyboard_name":"cornelius",
"url":"",
"maintainer":"foostan",
"width":14,
"height":8.5,
"layouts":{
"LAYOUT":{
"layout":[
{"label":"Tab", "x":0,"y":0.625},
{"label":"Q", "x":1,"y":0.625},
{"label":"W", "x":2,"y":0.25},
{"label":"E", "x":3,"y":0},
{"label":"R", "x":4,"y":0.125},
{"label":"T", "x":5,"y":0.25},
{"label":"Y", "x":8,"y":0.25},
{"label":"U", "x":9,"y":0.125},
{"label":"I", "x":10,"y":0},
{"label":"O", "x":11,"y":0.25},
{"label":"P", "x":12,"y":0.625},
{"label":"Bksp", "x":13,"y":0.625},
{"label":"Esc", "x":0,"y":1.625},
{"label":"A", "x":1,"y":1.625},
{"label":"S", "x":2,"y":1.25},
{"label":"D", "x":3,"y":1},
{"label":"F", "x":4,"y":1.125},
{"label":"G", "x":5,"y":1.25},
{"label":"H", "x":8,"y":1.25},
{"label":"J", "x":9,"y":1.125},
{"label":"K", "x":10,"y":1},
{"label":"L", "x":11,"y":1.25},
{"label":":", "x":12,"y":1.625},
{"label":"\"", "x":13,"y":1.625},
{"label":"Shift", "x":0,"y":2.625},
{"label":"Z", "x":1,"y":2.625},
{"label":"X", "x":2,"y":2.25},
{"label":"C", "x":3,"y":2},
{"label":"V", "x":4,"y":2.125},
{"label":"B", "x":5,"y":2.25},
{"label":"N", "x":8,"y":2.25},
{"label":"M", "x":9,"y":2.125},
{"label":"<", "x":10,"y":2},
{"label":">", "x":11,"y":2.25},
{"label":"?", "x":12,"y":2.625},
{"label":"Shift", "x":13,"y":2.625},
{"label":"Fn", "x":0,"y":3.625},
{"label":"Ctrl", "x":1,"y":3.625},
{"label":"Win", "x":2,"y":3.25},
{"label":"Alt", "x":3.5,"y":3.25},
{"label":"Lower", "x":4.5,"y":3.5},
{"x":5.5,"y":3.75},
{"x":7.5,"y":3.75},
{"label":"Raise", "x":8.5,"y":3.5},
{"label":"Alt", "x":9.5,"y":3.25},
{"label":"Win", "x":11,"y":3.25},
{"label":"Ctrl", "x":12,"y":3.625},
{"label":"Fn", "x":13,"y":3.625}
]
}
}
}
}

View File

@@ -0,0 +1,57 @@
/* 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/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confupdate -i keyboards/handwired/ergocheap/chconf.h -r platforms/chibios/common/configs/chconf.h`
*/
#pragma once
#define CH_CFG_ST_TIMEDELTA 0
#define CH_CFG_USE_TM FALSE
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
#define CH_CFG_USE_MEMPOOLS FALSE
#define CH_CFG_USE_OBJ_FIFOS FALSE
#define CH_CFG_USE_PIPES FALSE
#define CH_CFG_USE_DYNAMIC FALSE
#define CH_CFG_USE_FACTORY FALSE
#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE
#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE
#define CH_CFG_FACTORY_SEMAPHORES FALSE
#define CH_CFG_FACTORY_MAILBOXES FALSE
#define CH_CFG_FACTORY_OBJ_FIFOS FALSE
#define CH_CFG_FACTORY_PIPES FALSE
#define CH_DBG_ENABLE_STACK_CHECK FALSE
#include_next <chconf.h>

View File

@@ -0,0 +1,67 @@
/*
Copyright 2021 xSteins <itsmesteins@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEDE //0xFEED
#define PRODUCT_ID 0x6942 //0x6465
#define DEVICE_VER 0x0001
#define MANUFACTURER xSteins
#define PRODUCT ERGOCHEAP
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 15
#define MATRIX_COL_PINS { A8, A9, B14, B12, B13, B15, B3, B11, A4, A5, A6, A7, B0, B1, B10 }
#define MATRIX_ROW_PINS { B5, B6, B7, B9, B8 }
#define DIODE_DIRECTION COL2ROW
/* key led setting */
//#define BACKLIGHT_PIN A8
//#define BACKLIGHT_PWM_DRIVER PWMD1
//#define BACKLIGHT_PWM_CHANNEL 1
//#define BACKLIGHT_LEVELS 6
//#define BACKLIGHT_BREATHING
//#define BREATHING_PERIOD 6
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define TAPPING_TERM 500
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

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

View File

@@ -0,0 +1,42 @@
/*
Copyright 2021 xSteins <itsmesteins@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/*
* 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( \
K00, K01, K02, K0B, K0D, K0E, K0F, \
K10, K11, K03, K04, K05, K06, K07, K08, K09, K0A, K1B, K1D, K1E, K1F, \
K20, K21,K12, K13, K14, K15, K16, K17, K18, K19, K1A, K2B, K2D, K2E, K2F, \
K30, K31,K22, K23, K24, K25, K26, K27, K28, K29, K3B, K3D, K3E, K3F, \
K40, K32, K33, K34, K35, K36, K37, K38, K39, K4B, K4D, K4E, K4F, \
K42, K44, K45, K46, K47, K48 \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0D, K0E, K0F, }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, K1E, K1F, }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, K2B, K2D, K2E, K2F, }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, KC_NO, K3B, K3D, K3E, K3F, }, \
{ K40, KC_NO, K42, KC_NO, K44, K45, K46, K47, K48, KC_NO, KC_NO, K4B, K4D, K4E, K4F } \
}

View File

@@ -0,0 +1,37 @@
/* 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/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confupdate -i keyboards/handwired/ergocheap/halconf.h -r platforms/chibios/common/configs/halconf.h`
*/
#pragma once
#define HAL_USE_DAC FALSE
#define HAL_USE_GPT FALSE
#define HAL_USE_I2C FALSE
#define HAL_USE_SERIAL_USB FALSE
#define PAL_USE_CALLBACKS FALSE
#define PAL_USE_WAIT FALSE
#include_next <halconf.h>

View File

@@ -0,0 +1,12 @@
{
"keyboard_name": "Ergocheap",
"url": "",
"maintainer": "xSteins",
"width": 17.8,
"height": 11.85,
"layouts": {
"LAYOUT": {
"layout": [{"label":"0,12", "x":13.47, "y":0}, {"label":"0,13", "x":14.5, "y":0, "w":2}, {"label":"0,14", "x":16.5, "y":0}, {"label":"0,0", "x":0.75, "y":0.25}, {"label":"0,1", "x":1.75, "y":0.25}, {"label":"1,11", "x":13.1, "y":1}, {"label":"1,12", "x":14.1, "y":1}, {"label":"1,13", "x":15.1, "y":1, "w":1.5}, {"label":"1,14", "x":16.6, "y":1}, {"label":"1,0", "x":0.5, "y":1.25, "w":1.5}, {"label":"1,1", "x":2, "y":1.25}, {"label":"2,11", "x":13.55, "y":2}, {"label":"2,12", "x":14.55, "y":2, "w":2.25}, {"label":"2,13", "x":16.8, "y":2}, {"label":"2,0", "x":0.25, "y":2.25, "w":1.75}, {"label":"2,1", "x":2, "y":2.25}, {"label":"3,11", "x":13.05, "y":3}, {"label":"3,12", "x":14.05, "y":3, "w":1.75}, {"label":"3,13", "x":15.75, "y":3}, {"label":"3,14", "x":16.75, "y":3}, {"label":"3,0", "x":0.1, "y":3.25, "w":2.25}, {"label":"3,1", "x":2.35, "y":3.25}, {"label":"4,8", "x":13.5, "y":4, "w":1.25}, {"label":"4,12", "x":14.75, "y":4}, {"label":"4,13", "x":15.75, "y":4}, {"label":"4,14", "x":16.75, "y":4}, {"label":"4,0", "x":0.1, "y":4.25, "w":1.25}, {"label":"0,11", "x":2.45, "y":5.25}, {"label":"0,2", "x":-7.25, "y":5.35}, {"label":"0,3", "x":-5.1, "y":4.1}, {"label":"0,4", "x":-4.1, "y":4.1}, {"label":"0,5", "x":-3.0999999999999996, "y":4.1}, {"label":"0,6", "x":-2.0999999999999996, "y":4.1}, {"label":"1,2", "x":-5.7, "y":5.1}, {"label":"1,3", "x":-4.7, "y":5.1}, {"label":"1,4", "x":-3.7, "y":5.1}, {"label":"1,5", "x":-2.7, "y":5.1}, {"label":"2,2", "x":-5.45, "y":6.1}, {"label":"2,3", "x":-4.45, "y":6.1}, {"label":"2,4", "x":-3.45, "y":6.1}, {"label":"2,5", "x":-2.45, "y":6.1}, {"label":"3,2", "x":-4.85, "y":7.1}, {"label":"3,3", "x":-3.8499999999999996, "y":7.1}, {"label":"3,4", "x":-2.8499999999999996, "y":7.1}, {"label":"3,5", "x":-1.8499999999999996, "y":7.1}, {"label":"4,2", "x":-4.9, "y":8.1, "w":1.25}, {"label":"4,4", "x":-3.6500000000000004, "y":8.1, "w":2}, {"label":"4,5", "x":-1.6500000000000004, "y":8.1, "w":1.25}, {"label":"0,7", "x":0.3, "y":6.85}, {"label":"0,8", "x":1.3, "y":6.85}, {"label":"0,9", "x":2.3, "y":6.85}, {"label":"0,10", "x":3.3, "y":6.85}, {"label":"1,6", "x":-0.2, "y":7.85}, {"label":"1,7", "x":0.7999999999999999, "y":7.85}, {"label":"1,8", "x":1.8, "y":7.85}, {"label":"1,9", "x":2.8, "y":7.85}, {"label":"1,10", "x":3.8, "y":7.85}, {"label":"2,6", "x":0.05, "y":8.85}, {"label":"2,7", "x":1.05, "y":8.85}, {"label":"2,8", "x":2.05, "y":8.85}, {"label":"2,9", "x":3.05, "y":8.85}, {"label":"2,10", "x":4, "y":8.85}, {"label":"3,6", "x":0.3, "y":9.85}, {"label":"3,7", "x":1.3, "y":9.85}, {"label":"3,8", "x":2.3, "y":9.85}, {"label":"3,9", "x":3.3, "y":9.85}, {"label":"4,6", "x":-0.2, "y":10.85, "w":2.75}, {"label":"4,7", "x":2.5, "y":10.85, "w":1.25}]
}
}
}

View File

@@ -0,0 +1,42 @@
/* Copyright 2021 xSteins <itsmesteins@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE,
_FN1,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
KC_TAB, KC_Q, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
KC_LSFT, KC_Z, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SLSH, TO(_FN1), KC_UP, KC_END,
KC_LCTL, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT,
KC_LALT, KC_SPC, MO(_FN1),KC_SPC, KC_SPC, MO(_FN1)
),
[_FN1] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F11, KC_F12, _______, _______,
_______, _______, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UP, _______, _______, _______,
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_LEFT, KC_RIGHT, _______, _______,
KC_LSFT, KC_LEFT, KC_S, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DOWN, TO(_BASE), KC_MS_WH_UP, _______,
_______, KC_UP, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT,
KC_LGUI, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,60 @@
/* Copyright 2021 xSteins <itsmesteins@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
_BASE,
_FN1,
_FN2,
_FN3,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
KC_TAB, KC_Q, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
KC_LSFT, KC_Z, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SLSH, TO(_FN1), KC_UP, KC_END,
KC_LCTL, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT,
KC_LALT, KC_SPC, MO(_FN1),KC_SPC, KC_SPC, MO(_FN1)
),
[_FN1] = LAYOUT(
KC_GRV, KC_F1, KC_F2, KC_F11, KC_F12, _______, _______,
_______, _______, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UP, _______, _______, _______,
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_LEFT, KC_RIGHT, _______, _______,
KC_LSFT, KC_LEFT, KC_S, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DOWN, TO(_BASE), KC_MS_WH_UP, _______,
_______, KC_UP, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT,
KC_LGUI, _______, _______, _______, _______, _______
),
[_FN2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
[_FN3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,28 @@
/* 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/>.
*/
/*
* This file was auto-generated by:
* `qmk chibios-confupdate -i keyboards/handwired/ergocheap/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h`
*/
#pragma once
#include_next <mcuconf.h>
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE

View File

@@ -0,0 +1,15 @@
# Ergocheap handwired keyboard
Ergocheap is an ergonomic keyboard with layout forked from adelheid with some minor adjustment in 13-15th row and standard keycaps size
![Ergocheap](https://i.imgur.com/II3aBYgl.jpg)
* Keyboard Maintainer: [xSteins](https://github.com/xSteins)
* Hardware Supported: bluepill
* Hardware Availability: [case files](https://github.com/xSteins/Mechanical-Keyboard/tree/master/ErgoCheap/CASE)
Make example for this keyboard (after setting up your build environment):
make handwired/ergocheap: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).

View File

@@ -0,0 +1,25 @@
# MCU name
MCU = STM32F103
# Bootloader selection
BOOTLOADER = stm32duino
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = full # 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 = yes # 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

View File

@@ -1,5 +1,4 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#pragma once
#define SWAP_SCLN
@@ -12,15 +11,13 @@
// Selection of RGBLIGHT MODE to use.
#if defined(LED_ANIMATIONS)
//#define RGBLIGHT_EFFECT_BREATHING
//#define RGBLIGHT_EFFECT_RAINBOW_MOOD
//#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//#define RGBLIGHT_EFFECT_SNAKE
//#define RGBLIGHT_EFFECT_KNIGHT
//#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
//#define RGBLIGHT_EFFECT_RGB_TEST
//#define RGBLIGHT_EFFECT_ALTERNATING
#endif
#endif /* CONFIG_USER_H */
//# define RGBLIGHT_EFFECT_BREATHING
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//# define RGBLIGHT_EFFECT_SNAKE
//# define RGBLIGHT_EFFECT_KNIGHT
//# define RGBLIGHT_EFFECT_CHRISTMAS
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
//# define RGBLIGHT_EFFECT_RGB_TEST
//# define RGBLIGHT_EFFECT_ALTERNATING
#endif // LED_ANIMATIONS

View File

@@ -1,38 +1,24 @@
#include QMK_KEYBOARD_H
#include "split_util.h"
#include "keymap_xrows.h"
#ifdef SSD1306OLED
#include "oled.h"
#endif
// keymaps definitions are moved to keymap_Xrows.c.
#ifdef SSD1306OLED
void matrix_init_keymap(void) {
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
iota_gfx_init(!has_usb()); // turns on the display
}
void matrix_scan_user(void) {
iota_gfx_task(); // this is what updates the display continuously
}
#endif
#ifdef RGBLIGHT_ENABLE
uint32_t layer_state_set_keymap(uint32_t state) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case _LOWER:
rgblight_sethsv_noeeprom_red();
break;
case _RAISE:
rgblight_sethsv_noeeprom_blue();
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv_red();
break;
}
return state;
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case L_EDVORAKJP_LOWER:
rgblight_sethsv_noeeprom_red();
break;
case L_EDVORAKJP_RAISE:
rgblight_sethsv_noeeprom_green();
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv_red();
break;
}
return state;
}
#endif

View File

@@ -1,41 +1,42 @@
#include "helix.h"
#include "keymap_xrows.h"
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_EDVORAK] = LAYOUT_kc(
//,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
GRV ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
ESC ,SCLN, X , C , V , Z , H , J , K , L , B ,SLSH,
//|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
HOME,PGDN,PGUP , END ,TMB1 ,TMB2,TMB3, TMB4,TMB5,TMB6 ,LEFT ,DOWN , UP ,RGHT
//`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
[L_EDVORAKJP_BASE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
__EDVORAKJP_PAGE__ , LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT, __EDVORAKJP_CURSOR__
//`--------------------------------------------------------------' `--------------------------------------------------------------'
),
[_LOWER] = LAYOUT_kc(
//,----+----+------+------+------+----. ,----+------+------+-------+----+----.
, , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
PSCR, , HOME , PGDN , PGUP ,END , LEFT, DOWN , UP , RGHT , , ,
//|----+----+------+------+------+----+----. ,----+----+------+------+-------+----+----|
, , , , , , NO , MAC ,TMB7, , , , ,
//`----+----+------+------+------+----+----/ \----+----+------+------+-------+----+----'
[L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
__EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
__KC_TRNS_x4__ , KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS, __KC_TRNS_x4__
//`--------------------------------------------------------------' `--------------------------------------------------------------'
),
[_RAISE] = LAYOUT_kc(
//,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
, ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
PSCR, ,HOME ,PGDN ,PGUP ,END , LEFT,DOWN , UP ,RGHT , , ,
//|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
, , , , , ,WIN , NO , , , , , ,
//`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
[L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
__KC_TRNS_x4__ , KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS, __KC_TRNS_x4__
//`--------------------------------------------------------------' `--------------------------------------------------------------'
)
};
// clang-format on

View File

@@ -1,47 +1,48 @@
#include "helix.h"
#include "keymap_xrows.h"
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_EDVORAK] = LAYOUT_kc(
//,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
ESC ,EXLM, AT ,HASH , DLR ,PERC, CIRC,AMPR ,ASTR ,LPRN ,RPRN,BSPC,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
GRV ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS,
//|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
TAB ,SCLN, X , C , V , Z , NO , NO , H , J , K , L , B ,SLSH,
//|----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----|
HOME,PGDN,PGUP , END ,TMB1 ,TMB2,TMB3, TMB4,TMB5,TMB6 ,LEFT ,DOWN , UP ,RGHT
//`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
[L_EDVORAKJP_BASE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
//|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------|
KC_ESC, __EDVORAKJP_BASE_L3__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BASE_R3__ , KC_SLSH,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
__EDVORAKJP_PAGE__ , LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT, __EDVORAKJP_CURSOR__
//`--------------------------------------------------------------' `--------------------------------------------------------------'
),
[_LOWER] = LAYOUT_kc(
//,----+----+------+------+------+----. ,----+------+------+-------+----+----.
PSCR, , , , , , , , , , , ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
, , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 ,
//|----+----+------+------+------+----+----. ,----+----+------+------+-------+----+----|
, , HOME , PGDN , PGUP ,END , , ,LEFT, DOWN , UP , RGHT , , ,
//|----+----+------+------+------+----+----| |----+----+------+------+-------+----+----|
, , , , , , NO , MAC ,TMB7, , , , ,
//`----+----+------+------+------+----+----/ \----+----+------+------+-------+----+----'
[L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
__KC_TRNS_x6__ , __KC_TRNS_x6__ ,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
__EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
//|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , KC_TRNS, KC_TRNS, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
__KC_TRNS_x4__ , KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS, __KC_TRNS_x4__
//`--------------------------------------------------------------' `--------------------------------------------------------------'
),
[_RAISE] = LAYOUT_kc(
//,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
PSCR, , , , , , , , , , , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , ,
//|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
, ,HOME ,PGDN ,PGUP ,END , , ,LEFT,DOWN , UP ,RGHT , , ,
//|----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----|
, , , , , ,WIN , NO , , , , , ,
//`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
[L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
__KC_TRNS_x6__ , __KC_TRNS_x6__ ,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , KC_TRNS, KC_TRNS, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
__KC_TRNS_x4__ , KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS, __KC_TRNS_x4__
//`--------------------------------------------------------------' `--------------------------------------------------------------'
)
};
// clang-format on

View File

@@ -1,5 +1,4 @@
#ifndef KEYMAP_XROWS_H
#define KEYMAP_XROWS_H
#pragma once
#include "edvorakjp.h"
/*
@@ -8,14 +7,7 @@
* };
*/
#define KC_ KC_TRNS
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
#define KC_TMB1 KC_LA(TAB)
#define KC_TMB2 KC_LS(SPC)
#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
#define KC_TMB5 KC_RC(BSPC)
#define KC_TMB6 KC_RG(ENT)
#define KC_TMB7 KC_RC(DEL)
#endif
#define __KC_TRNS_x4__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
#define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS

View File

@@ -1,72 +1,68 @@
#include <stdio.h>
#include <string.h>
#include "oled.h"
static void render_logo(struct CharacterMatrix *matrix) {
#ifdef OLED_DRIVER_ENABLE
void render_host_led_state(void) {
char led_state_str[24];
uint8_t leds = host_keyboard_leds();
static char logo[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
0};
matrix_write(matrix, logo);
bool is_num_lock_enabled = leds & (1 << USB_LED_NUM_LOCK);
bool is_caps_lock_enabled = leds & (1 << USB_LED_CAPS_LOCK);
bool is_scroll_lock_enabled = leds & (1 << USB_LED_SCROLL_LOCK);
snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", is_num_lock_enabled ? "on" : "- ", is_caps_lock_enabled ? "on" : "- ", is_scroll_lock_enabled ? "on" : "- ");
oled_write(led_state_str, false);
}
void matrix_update(struct CharacterMatrix *dest,
const struct CharacterMatrix *source) {
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
memcpy(dest->display, source->display, sizeof(dest->display));
dest->dirty = true;
}
void render_layer_state(void) {
char layer_name[17];
oled_write_P(PSTR("Layer: "), false);
switch (biton32(layer_state)) {
case L_EDVORAKJP_BASE:
oled_write_ln_P(PSTR("Default"), false);
break;
case L_EDVORAKJP_LOWER:
oled_write_ln_P(PSTR("Lower"), false);
break;
case L_EDVORAKJP_RAISE:
oled_write_ln_P(PSTR("Raise"), false);
break;
default:
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
oled_write_ln(layer_name, false);
}
}
void render_status(struct CharacterMatrix *matrix) {
// Render to mode icon
static char logo[][2][3] = {{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
int mode_number = get_enable_kc_lang() ? 0 : 1;
matrix_write(matrix, logo[mode_number][0]);
matrix_write(matrix, "\n");
matrix_write(matrix, logo[mode_number][1]);
// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
char buf[40];
snprintf(buf,sizeof(buf), "Undef-%ld", layer_state);
matrix_write_P(matrix, PSTR("\nLayer: "));
switch (biton32(layer_state)) {
case L_BASE:
matrix_write_P(matrix, PSTR("Default"));
break;
case _RAISE:
matrix_write_P(matrix, PSTR("Raise"));
break;
case _LOWER:
matrix_write_P(matrix, PSTR("Lower"));
break;
default:
matrix_write(matrix, buf);
}
// Host Keyboard LED Status
char led[40];
snprintf(led, sizeof(led), "\n%s %s %s",
(host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NMLK" : " ",
(host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ",
(host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " ");
matrix_write(matrix, led);
void render_logo(void) {
static const char helix_logo[] PROGMEM = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
oled_write_P(helix_logo, false);
}
void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;
void render_mode_icon(bool is_windows) {
static const char logo[][2][3] = {
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
};
static char mode_icon[10];
#if DEBUG_TO_SCREEN
if (debug_enable) { return; }
#endif
matrix_clear(&matrix);
if (is_master) {
render_status(&matrix);
} else {
render_logo(&matrix);
}
matrix_update(&display, &matrix);
snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]);
oled_write(mode_icon, false);
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
// flips the display 180 degrees if offhand
return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
}
void oled_task_user(void) {
if (is_keyboard_left()) {
render_mode_icon(!get_enable_kc_lang());
render_layer_state();
render_host_led_state();
} else {
render_logo();
}
}
#endif // OLED_DRIVER_ENABLE

View File

@@ -1,19 +1,12 @@
#ifndef OLED_USER_H
#define OLED_USER_H
#pragma once
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#include "ssd1306.h"
#include "edvorakjp.h"
//assign the right code to your layers for OLED display
#define L_BASE 0
extern uint8_t is_master;
extern bool japanese_mode;
void matrix_update(struct CharacterMatrix *dest,
const struct CharacterMatrix *source);
void render_status(struct CharacterMatrix *matrix);
void iota_gfx_task_user(void);
#endif // OLED_CONFIG_USER_H
void render_host_led_state(void);
void render_layer_state(void);
void render_logo(void);
void render_mode_icon(bool is_windows);
oled_rotation_t oled_init_user(oled_rotation_t rotation);
void oled_task_user(void);

View File

@@ -18,6 +18,7 @@ TAP_DANCE_ENABLE = yes
# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
# LED_ANIMATIONS = yes # LED animations
# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
OLED_SELECT = core
# convert Helix-specific options (that represent combinations of standard options)
# into QMK standard options.

View File

@@ -35,6 +35,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// If you need more program area, try select and reduce rgblight modes to use.
#define DISABLE_SYNC_TIMER
// Selection of RGBLIGHT MODE to use.
#undef RGBLIGHT_ANIMATIONS
#undef RGBLIGHT_EFFECT_BREATHING

View File

@@ -42,6 +42,8 @@ enum custom_keycodes {
RGBRST
};
// clang-format off
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
//Macros
@@ -49,24 +51,26 @@ enum custom_keycodes {
#define XXXX XXXXXXX
#define ____ _______
#define KC_ADJ MO(_ADJUST)
#define KC_LSMI LSFT(KC_MINS)
#define KC_LSEQ LSFT(KC_EQL)
#define KC_LSRB LSFT(KC_RBRC)
#define KC_LSLB LSFT(KC_LBRC)
#define _1_2_3_4_5 KC_1, KC_2, KC_3, KC_4, KC_5
#define _6_7_8_9_0 KC_6, KC_7, KC_8, KC_9, KC_0
#define L_LOWER2_CAPS_LALT_LGUI_SPC_RABS \
#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5
#define _6_____7_____8_____9_____0 KC_6, KC_7, KC_8, KC_9, KC_0
#define LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS \
KC_LOWER, KC_LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC)
#define R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
#define RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_LOWER, KC_LOWER
#define GRV__QUOT KC_GRV, KC_QUOT
#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------. ,-----------------------------------.
/* Qwerty */
#define Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T
#define Y_____U_____I_____O_____P KC_Y, KC_U, KC_I, KC_O, KC_P
#define A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G
#define H_____J_____K_____L____SCLN KC_H, KC_J, KC_K, KC_L, KC_SCLN
#define Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
#define N_____M____COMM__DOT___SLSH KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
@@ -78,23 +82,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _Q_W_E_R_T KC_Q, KC_W, KC_E, KC_R, KC_T
#define _Y_U_I_O_P KC_Y, KC_U, KC_I, KC_O, KC_P
#define _A_S_D_F_G KC_A, KC_S, KC_D, KC_F, KC_G
#define _H_J_K_L_SCLN KC_H, KC_J, KC_K, KC_L, KC_SCLN
#define _Z_X_C_V_B KC_Z, KC_X, KC_C, KC_V, KC_B
#define _N_M_COMM_DOT_SLSH KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
[_QWERTY] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _Q_W_E_R_T, _Y_U_I_O_P, KC_BSLS, \
KC_LCTL, _A_S_D_F_G, _H_J_K_L_SCLN, KC_RCTL, \
KC_LSFT, _Z_X_C_V_B, KC_GRV, KC_QUOT, _N_M_COMM_DOT_SLSH, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
[_QWERTY] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS,
KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL,
KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, N_____M____COMM__DOT___SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
/* Colemak
* ,-----------------------------------. ,-----------------------------------.
/* Colemak */
#define Q_____W_____F_____P_____G KC_Q, KC_W, KC_F, KC_P, KC_G
#define J_____L_____U_____Y____SCLN KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#define A_____R_____S_____T_____D KC_A, KC_R, KC_S, KC_T, KC_D
#define H_____N_____E_____I_____O KC_H, KC_N, KC_E, KC_I, KC_O
#define Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
#define K_____M____COMM__DOT___SLSH KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
@@ -106,23 +109,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _Q_W_F_P_G KC_Q, KC_W, KC_F, KC_P, KC_G
#define _J_L_U_Y_SCLN KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#define _A_R_S_T_D KC_A, KC_R, KC_S, KC_T, KC_D
#define _H_N_E_I_O KC_H, KC_N, KC_E, KC_I, KC_O
#define _Z_X_C_V_B KC_Z, KC_X, KC_C, KC_V, KC_B
#define _K_M_COMM_DOT_SLSH KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
[_COLEMAK] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS,
KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL,
KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, K_____M____COMM__DOT___SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
[_COLEMAK] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _Q_W_F_P_G, _J_L_U_Y_SCLN, KC_BSLS, \
KC_LCTL, _A_R_S_T_D, _H_N_E_I_O, KC_RCTL, \
KC_LSFT, _Z_X_C_V_B, KC_GRV, KC_QUOT, _K_M_COMM_DOT_SLSH, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
),
/* Dvorak
* ,-----------------------------------. ,-----------------------------------.
/* Dvorak */
#define QUOT_COMM___DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define F_____G_____C_____R_____L KC_F, KC_G, KC_C, KC_R, KC_L
#define A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I
#define D_____H_____T_____N_____S KC_D, KC_H, KC_T, KC_N, KC_S
#define SCLN___Q_____J_____K_____X KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define B_____M_____W_____V_____Z KC_B, KC_M, KC_W, KC_V, KC_Z
#define GRV__SLSH KC_GRV, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
@@ -134,23 +137,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _QUOT_COMM_DOT_P_Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _F_G_C_R_L KC_F, KC_G, KC_C, KC_R, KC_L
#define _A_O_E_U_I KC_A, KC_O, KC_E, KC_U, KC_I
#define _D_H_T_N_S KC_D, KC_H, KC_T, KC_N, KC_S
#define _SCLN_Q_J_K_X KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define _B_M_W_V_Z KC_B, KC_M, KC_W, KC_V, KC_Z
[_DVORAK] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _QUOT_COMM_DOT_P_Y, _F_G_C_R_L, KC_BSLS, \
KC_LCTL, _A_O_E_U_I, _D_H_T_N_S, KC_RCTL, \
KC_LSFT, _SCLN_Q_J_K_X, KC_GRV, KC_SLSH, _B_M_W_V_Z, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
[_DVORAK] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS,
KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL,
KC_LSFT, SCLN___Q_____J_____K_____X, GRV__SLSH, B_____M_____W_____V_____Z, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
/* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout)
* ,-----------------------------------. ,-----------------------------------.
/* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */
#define Q_____W___COMM___DOT__SCLN KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
#define M_____R_____D_____Y_____P KC_M, KC_R, KC_D, KC_Y, KC_P
#define A_____O_____E_____I_____U KC_A, KC_O, KC_E, KC_I, KC_U
#define G_____T_____K_____S_____N KC_G, KC_T, KC_K, KC_S, KC_N
#define Z_____X_____C_____V_____F KC_Z, KC_X, KC_C, KC_V, KC_F
#define B_____H_____J_____L____SLSH KC_B, KC_H, KC_J, KC_L, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | Q | W | , | . | ; | | M | R | D | Y | P | \ |
@@ -162,23 +164,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _Q_W_COMM_DOT_SCLN KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
#define _M_R_D_Y_P KC_M, KC_R, KC_D, KC_Y, KC_P
#define _A_O_E_I_U KC_A, KC_O, KC_E, KC_I, KC_U
#define _G_T_K_S_N KC_G, KC_T, KC_K, KC_S, KC_N
#define _Z_X_C_V_F KC_Z, KC_X, KC_C, KC_V, KC_F
#define _B_H_J_L_SLSH KC_B, KC_H, KC_J, KC_L, KC_SLSH
[_EUCALYN] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS,
KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL,
KC_LSFT, Z_____X_____C_____V_____F, GRV__QUOT, B_____H_____J_____L____SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
[_EUCALYN] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _Q_W_COMM_DOT_SCLN, _M_R_D_Y_P, KC_BSLS, \
KC_LCTL, _A_O_E_I_U, _G_T_K_S_N, KC_RCTL, \
KC_LSFT, _Z_X_C_V_F, KC_GRV, KC_QUOT, _B_H_J_L_SLSH, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
),
/* Keypad
* ,-----------------------------------. ,-----------------------------------.
/* Keypad */
#define KP_TAB__PSLS_PAST KC_TAB, KC_PSLS, KC_PAST
#define KP__7_____8_____9 KC_KP_7, KC_KP_8, KC_KP_9
#define KP__4_____5_____6 KC_KP_4, KC_KP_5, KC_KP_6
#define KP__1_____2_____3 KC_KP_1, KC_KP_2, KC_KP_3
#define KP__0___COMM_PDOT KC_KP_0, KC_COMM, KC_PDOT
#define F1___F6 KC_F1, KC_F6
#define F2___F7 KC_F2, KC_F7
#define F3___F8 KC_F3, KC_F8
#define F4___F9 KC_F4, KC_F9
#define F5__F10 KC_F5, KC_F10
#define FF12 LT(_PADFUNC,KC_F12)
/* ,-----------------------------------. ,-----------------------------------.
* | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 |
@@ -190,25 +196,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | 0 | , | . |Enter| F5 | F10| F12 | F12 | F5 | F10|Enter| 0 | , | . |
* `-----------------------------------------------------------------------------------'
*/
#define KP_TOP KC_TAB, KC_PSLS, KC_PAST
#define KP_789 KC_KP_7, KC_KP_8, KC_KP_9
#define KP_456 KC_KP_4, KC_KP_5, KC_KP_6
#define KP_123 KC_KP_1, KC_KP_2, KC_KP_3
#define KP_BTM KC_KP_0, KC_COMM, KC_PDOT
#define F_1_6 KC_F1, KC_F6
#define F_2_7 KC_F2, KC_F7
#define F_3_8 KC_F3, KC_F8
#define F_4_9 KC_F4, KC_F9
#define F_510 KC_F5, KC_F10
#define FF12 LT(_PADFUNC,KC_F12)
[_KEYPAD] = LAYOUT_wrapper( \
KP_TOP, KC_DEL, F_1_6, F_1_6, KC_DEL, KP_TOP, \
KP_789, KC_BSPC, F_2_7, F_2_7, KC_BSPC, KP_789, \
KP_456, KC_PMNS, F_3_8, F_3_8, KC_PMNS, KP_456, \
KP_123, KC_PPLS, F_4_9, KC_F11, KC_F11, F_4_9, KC_PPLS, KP_123, \
KP_BTM, KC_PENT, F_510, FF12, FF12, F_510, KC_PENT, KP_BTM \
),
[_KEYPAD] = LAYOUT_wrapper(
KP_TAB__PSLS_PAST, KC_DEL, F1___F6, F1___F6, KC_DEL, KP_TAB__PSLS_PAST,
KP__7_____8_____9, KC_BSPC, F2___F7, F2___F7, KC_BSPC, KP__7_____8_____9,
KP__4_____5_____6, KC_PMNS, F3___F8, F3___F8, KC_PMNS, KP__4_____5_____6,
KP__1_____2_____3, KC_PPLS, F4___F9, KC_F11,KC_F11, F4___F9, KC_PPLS, KP__1_____2_____3,
KP__0___COMM_PDOT, KC_PENT, F5__F10, FF12, FF12, F5__F10, KC_PENT, KP__0___COMM_PDOT
),
/* AUX modifier key layer
* ,-----------------------------------. ,-----------------------------------.
@@ -223,16 +217,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | 00 | | | | | | | | | | | 00 | |
* `-----------------------------------------------------------------------------------'
*/
[_KAUX] = LAYOUT( \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____ \
[_KAUX] = LAYOUT(
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____
),
/* Keypad function layer
* ,-----------------------------------------. ,-----------------------------------------.
/* Keypad function layer */
#define PAUS__SLCK__PSCR KC_PAUS, KC_SLCK, KC_PSCR
#define PSCR__SLCK__PAUS KC_PSCR, KC_SLCK, KC_PAUS
#define HOME___UP___PGUP KC_HOME, KC_UP, KC_PGUP
#define PGUP___UP___HOME KC_PGUP, KC_UP, KC_HOME
#define DEL____INS__LEFT__DOWN__RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT
#define LEFT__DOWN__RGHT___INS___DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL
#define PGDN___ADJ___ADJ__PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN
/* ,-----------------------------------------. ,-----------------------------------------.
* | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | Home | Up | PgUp | | PgUp | Up | Home | | | |
@@ -244,55 +245,53 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _PAUS_SLCK_PSCR KC_PAUS, KC_SLCK, KC_PSCR
#define _PSCR_SLCK_PAUS KC_PSCR, KC_SLCK, KC_PAUS
#define _HOME_UP_PGUP KC_HOME, KC_UP, KC_PGUP
#define _PGUP_UP_HOME KC_PGUP, KC_UP, KC_HOME
#define _DEL_INS_LEFT_DOWN_RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT
#define _LEFT_DOWN_RGHT_INS_DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL
#define _PGDN_ADJ_ADJ_PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN
[_PADFUNC] = LAYOUT_wrapper( \
XXXX, XXXX, XXXX, _PAUS_SLCK_PSCR, _PSCR_SLCK_PAUS, XXXX, XXXX, XXXX, \
XXXX, XXXX, XXXX, _HOME_UP_PGUP, _PGUP_UP_HOME, XXXX, XXXX, XXXX, \
XXXX, _DEL_INS_LEFT_DOWN_RGHT, _LEFT_DOWN_RGHT_INS_DEL, XXXX, \
XXXX, XXXX, XXXX, KC_END, XXXX, _PGDN_ADJ_ADJ_PGDN, XXXX, KC_END, XXXX, XXXX, XXXX, \
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX \
[_PADFUNC] = LAYOUT_wrapper(
XXXX, XXXX, XXXX, PAUS__SLCK__PSCR, PSCR__SLCK__PAUS, XXXX, XXXX, XXXX,
XXXX, XXXX, XXXX, HOME___UP___PGUP, PGUP___UP___HOME, XXXX, XXXX, XXXX,
XXXX, DEL____INS__LEFT__DOWN__RGHT, LEFT__DOWN__RGHT___INS___DEL, XXXX,
XXXX, XXXX, XXXX,KC_END,XXXX, PGDN___ADJ___ADJ__PGDN, XXXX,KC_END,XXXX, XXXX, XXXX,
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX
),
/* Lower
* ,-----------------------------------------. ,-----------------------------------------.
/* Lower */
#define F1____F2____F3____F4____F5 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
#define F6____F7____F8____F9____F10 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define XXXX__PAUS__SLCK___INS XXXX, KC_PAUS, KC_SLCK, KC_INS
#define XXXX___INS__SLCK__PAUS__XXXX XXXX, KC_INS, KC_SLCK, KC_PAUS, XXXX
#define ADJ___ADJ KC_ADJ, KC_ADJ
#define HOME__XXXX___UP____DEL__PGUP KC_HOME, XXXX, KC_UP, KC_DEL, KC_PGUP
#define PGUP___DEL___UP___XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXX, KC_HOME
#define END__LEFT__DOWN__RGHT__PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
#define PGDN__LEFT__DOWN__RGHT___END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
/* ,-----------------------------------------. ,-----------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | PgUp | | Up |Delete| Home | | Home |Delete| Up | | PgUp | |
* | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | PgDn | Left | Down | Right| End |Adjust|Adjust| End | Left | Down | Right| PgDn | |
* | | End | Left | Down | Right| PgDn |Adjust|Adjust| PgDn | Left | Down | Right| End | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | PrtSc| | | | | | | | | PrtSc| | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _F1_F2_F3_F4_F5 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
#define _F6_F7_F8_F9_F10_F11 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11
#define _PAUS_SLCK_INS KC_PAUS, KC_SLCK, KC_INS
#define _INS_SLCK_PAUS KC_INS, KC_SLCK, KC_PAUS
#define _ADJ_ADJ KC_ADJ, KC_ADJ
#define _UP_DEL_PGUP KC_UP, KC_DEL, KC_PGUP
#define _PGUP_DEL_UP KC_PGUP, KC_DEL, KC_UP
#define _END_LEFT_DOWN_RGHT_PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
#define _PGDN_LEFT_DOWN_RGHT_END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
[_LOWER] = LAYOUT_wrapper(
XXXX, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11,
XXXX, XXXX__PAUS__SLCK___INS, XXXX, XXXX___INS__SLCK__PAUS__XXXX, KC_F12,
____, HOME__XXXX___UP____DEL__PGUP, PGUP___DEL___UP___XXXX__HOME, ____,
____, END__LEFT__DOWN__RGHT__PGDN, XXXX, XXXX, PGDN__LEFT__DOWN__RGHT___END, ____,
____, ____,KC_PSCR,____, ____, ____, ADJ___ADJ, ____, ____, ____,KC_PSCR,____, ____
),
[_LOWER] = LAYOUT_wrapper( \
XXXX, _F1_F2_F3_F4_F5, _F6_F7_F8_F9_F10_F11, \
XXXX, XXXX, _PAUS_SLCK_INS, XXXX, XXXX, _INS_SLCK_PAUS, XXXX, KC_F12, \
____, KC_HOME, XXXX, _UP_DEL_PGUP, _PGUP_DEL_UP, XXXX, KC_HOME, ____, \
____, _END_LEFT_DOWN_RGHT_PGDN, XXXX, XXXX, _PGDN_LEFT_DOWN_RGHT_END, ____, \
____, ____, KC_PSCR, ____, ____, ____, _ADJ_ADJ, ____, ____, ____, KC_PSCR, ____, ____ \
),
/* Raise
* ,-----------------------------------------. ,-----------------------------------------.
/* Raise */
#define UNDS__MINS KC_UNDS, KC_MINS
#define EQL___PLUS KC_EQL, KC_PLUS
#define LCBR__LBRC KC_LCBR, KC_LBRC
#define RBRC__RCBR KC_RBRC, KC_RCBR
#define MNXT__VOLD__VOLU__MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
#define EISU__EISU xEISU, xEISU
#define KANA__KANA xKANA, xKANA
/* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | _ | - | | = | + | | | | |
@@ -304,19 +303,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _LSMI_MINS KC_LSMI, KC_MINS
#define _EQL_LSEQ KC_EQL, KC_LSEQ
#define _LSLB_LBRC KC_LSLB, KC_LBRC
#define _RBRC_LSRB KC_RBRC, KC_LSRB
#define _MNXT_VOLD_VOLU_MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
[_RAISE] = LAYOUT_wrapper( \
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, \
XXXX, XXXX, XXXX, XXXX, _LSMI_MINS, _EQL_LSEQ, XXXX, XXXX, XXXX, XXXX, \
____, XXXX, XXXX, XXXX, _LSLB_LBRC, _RBRC_LSRB, XXXX, XXXX, XXXX, ____, \
____, XXXX, XXXX, XXXX, XXXX,xEISU,xEISU, xKANA,xKANA, _MNXT_VOLD_VOLU_MPLY, ____, \
_ADJ_ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, _ADJ_ADJ \
),
[_RAISE] = LAYOUT_wrapper(
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,
XXXX, XXXX, XXXX, XXXX, UNDS__MINS, EQL___PLUS, XXXX, XXXX, XXXX, XXXX,
____, XXXX, XXXX, XXXX, LCBR__LBRC, RBRC__RCBR, XXXX, XXXX, XXXX, ____,
____, XXXX, XXXX, XXXX, XXXX, EISU__EISU, KANA__KANA, MNXT__VOLD__VOLU__MPLY, ____,
ADJ___ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, ADJ___ADJ
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------. ,-----------------------------------------.
@@ -331,16 +324,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT( \
XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX, \
XXXXXXX, RESET, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX, \
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, \
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, \
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ \
[_ADJUST] = LAYOUT(
XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX,
XXXXXXX, RESET, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX,
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI,
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD,
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______
),
/* AUX modifier key layer
* ,-----------------------------------------. ,-----------------------------------------.
/* AUX modifier key layer */
#define BSPC__RAEN KC_BSPC, LT(_RAISE,KC_ENT)
/* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
@@ -352,14 +346,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | BS | Enter| | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _BSPC_RAEN KC_BSPC, LT(_RAISE,KC_ENT)
[_AUX] = LAYOUT_wrapper( \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, _BSPC_RAEN, ____, ____, ____, ____, ____, ____, ____ \
)
[_AUX] = LAYOUT_wrapper(
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, BSPC__RAEN, ____, ____, ____, ____, ____, ____, ____
)
};
#else

View File

@@ -35,6 +35,20 @@ ifneq ($(strip $(HELIX)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
endif
ifneq ($(filter nooled no-oled,$(strip $1)),)
OLED_ENABLE = no
endif
ifeq ($(strip $1),oled)
OLED_ENABLE = yes
endif
ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = core
endif
ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = local
endif
ifeq ($(strip $1),console)
CONSOLE_ENABLE = yes
endif
@@ -79,10 +93,10 @@ ifeq ($(strip $(DEBUG_CONFIG)), yes)
OPT_DEFS += -DDEBUG_CONFIG
endif
# convert Helix-specific options (that represent combinations of standard options)
# into QMK standard options.
include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
ifeq ($(strip $(OLED_ENABLE)), yes)
SRC += oled_display.c
endif
# convert Helix-specific options (that represent combinations of standard options)
# into QMK standard options.
include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))

View File

@@ -22,19 +22,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#undef OLED_UPDATE_INTERVAL
#define OLED_UPDATE_INTERVAL 50
#undef TAPPING_TERM
#define TAPPING_TERM 300
#define PERMISSIVE_HOLD
/* when TAPPING_TERM >= 500 same effect PERMISSIVE_HOLD.
see tmk_core/common/action_tapping.c */
#undef OLED_UPDATE_INTERVAL
#define OLED_UPDATE_INTERVAL 50
// place overrides here
// If you need more program area, try select and reduce rgblight modes to use.
#define DISABLE_SYNC_TIMER
// Selection of RGBLIGHT MODE to use.
#undef RGBLIGHT_ANIMATIONS
#undef RGBLIGHT_EFFECT_BREATHING

View File

@@ -42,6 +42,8 @@ enum custom_keycodes {
RGBRST
};
// clang-format off
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
//Macros
@@ -49,24 +51,26 @@ enum custom_keycodes {
#define XXXX XXXXXXX
#define ____ _______
#define KC_ADJ MO(_ADJUST)
#define KC_LSMI LSFT(KC_MINS)
#define KC_LSEQ LSFT(KC_EQL)
#define KC_LSRB LSFT(KC_RBRC)
#define KC_LSLB LSFT(KC_LBRC)
#define _1_2_3_4_5 KC_1, KC_2, KC_3, KC_4, KC_5
#define _6_7_8_9_0 KC_6, KC_7, KC_8, KC_9, KC_0
#define L_LOWER2_CAPS_LALT_LGUI_SPC_RABS \
#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5
#define _6_____7_____8_____9_____0 KC_6, KC_7, KC_8, KC_9, KC_0
#define LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS \
KC_LOWER, KC_LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC)
#define R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
#define RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER \
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_LOWER, KC_LOWER
#define GRV__QUOT KC_GRV, KC_QUOT
#if MATRIX_ROWS == 10 // HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------. ,-----------------------------------.
/* Qwerty */
#define Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T
#define Y_____U_____I_____O_____P KC_Y, KC_U, KC_I, KC_O, KC_P
#define A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G
#define H_____J_____K_____L____SCLN KC_H, KC_J, KC_K, KC_L, KC_SCLN
#define Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
#define N_____M____COMM__DOT___SLSH KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
@@ -78,23 +82,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _Q_W_E_R_T KC_Q, KC_W, KC_E, KC_R, KC_T
#define _Y_U_I_O_P KC_Y, KC_U, KC_I, KC_O, KC_P
#define _A_S_D_F_G KC_A, KC_S, KC_D, KC_F, KC_G
#define _H_J_K_L_SCLN KC_H, KC_J, KC_K, KC_L, KC_SCLN
#define _Z_X_C_V_B KC_Z, KC_X, KC_C, KC_V, KC_B
#define _N_M_COMM_DOT_SLSH KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
[_QWERTY] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _Q_W_E_R_T, _Y_U_I_O_P, KC_BSLS, \
KC_LCTL, _A_S_D_F_G, _H_J_K_L_SCLN, KC_RCTL, \
KC_LSFT, _Z_X_C_V_B, KC_GRV, KC_QUOT, _N_M_COMM_DOT_SLSH, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
[_QWERTY] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS,
KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL,
KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, N_____M____COMM__DOT___SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
/* Colemak
* ,-----------------------------------. ,-----------------------------------.
/* Colemak */
#define Q_____W_____F_____P_____G KC_Q, KC_W, KC_F, KC_P, KC_G
#define J_____L_____U_____Y____SCLN KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#define A_____R_____S_____T_____D KC_A, KC_R, KC_S, KC_T, KC_D
#define H_____N_____E_____I_____O KC_H, KC_N, KC_E, KC_I, KC_O
#define Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
#define K_____M____COMM__DOT___SLSH KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
@@ -106,23 +109,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _Q_W_F_P_G KC_Q, KC_W, KC_F, KC_P, KC_G
#define _J_L_U_Y_SCLN KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#define _A_R_S_T_D KC_A, KC_R, KC_S, KC_T, KC_D
#define _H_N_E_I_O KC_H, KC_N, KC_E, KC_I, KC_O
#define _Z_X_C_V_B KC_Z, KC_X, KC_C, KC_V, KC_B
#define _K_M_COMM_DOT_SLSH KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
[_COLEMAK] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS,
KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL,
KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, K_____M____COMM__DOT___SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
[_COLEMAK] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _Q_W_F_P_G, _J_L_U_Y_SCLN, KC_BSLS, \
KC_LCTL, _A_R_S_T_D, _H_N_E_I_O, KC_RCTL, \
KC_LSFT, _Z_X_C_V_B, KC_GRV, KC_QUOT, _K_M_COMM_DOT_SLSH, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
),
/* Dvorak
* ,-----------------------------------. ,-----------------------------------.
/* Dvorak */
#define QUOT_COMM___DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define F_____G_____C_____R_____L KC_F, KC_G, KC_C, KC_R, KC_L
#define A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I
#define D_____H_____T_____N_____S KC_D, KC_H, KC_T, KC_N, KC_S
#define SCLN___Q_____J_____K_____X KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define B_____M_____W_____V_____Z KC_B, KC_M, KC_W, KC_V, KC_Z
#define GRV__SLSH KC_GRV, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
@@ -134,23 +137,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _QUOT_COMM_DOT_P_Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _F_G_C_R_L KC_F, KC_G, KC_C, KC_R, KC_L
#define _A_O_E_U_I KC_A, KC_O, KC_E, KC_U, KC_I
#define _D_H_T_N_S KC_D, KC_H, KC_T, KC_N, KC_S
#define _SCLN_Q_J_K_X KC_SCLN, KC_Q, KC_J, KC_K, KC_X
#define _B_M_W_V_Z KC_B, KC_M, KC_W, KC_V, KC_Z
[_DVORAK] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _QUOT_COMM_DOT_P_Y, _F_G_C_R_L, KC_BSLS, \
KC_LCTL, _A_O_E_U_I, _D_H_T_N_S, KC_RCTL, \
KC_LSFT, _SCLN_Q_J_K_X, KC_GRV, KC_SLSH, _B_M_W_V_Z, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
[_DVORAK] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS,
KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL,
KC_LSFT, SCLN___Q_____J_____K_____X, GRV__SLSH, B_____M_____W_____V_____Z, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
/* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout)
* ,-----------------------------------. ,-----------------------------------.
/* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */
#define Q_____W___COMM___DOT__SCLN KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
#define M_____R_____D_____Y_____P KC_M, KC_R, KC_D, KC_Y, KC_P
#define A_____O_____E_____I_____U KC_A, KC_O, KC_E, KC_I, KC_U
#define G_____T_____K_____S_____N KC_G, KC_T, KC_K, KC_S, KC_N
#define Z_____X_____C_____V_____F KC_Z, KC_X, KC_C, KC_V, KC_F
#define B_____H_____J_____L____SLSH KC_B, KC_H, KC_J, KC_L, KC_SLSH
/* ,-----------------------------------. ,-----------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | Tab | Q | W | , | . | ; | | M | R | D | Y | P | \ |
@@ -162,23 +164,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
* `-----------------------------------------------------------------------------------'
*/
#define _Q_W_COMM_DOT_SCLN KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
#define _M_R_D_Y_P KC_M, KC_R, KC_D, KC_Y, KC_P
#define _A_O_E_I_U KC_A, KC_O, KC_E, KC_I, KC_U
#define _G_T_K_S_N KC_G, KC_T, KC_K, KC_S, KC_N
#define _Z_X_C_V_F KC_Z, KC_X, KC_C, KC_V, KC_F
#define _B_H_J_L_SLSH KC_B, KC_H, KC_J, KC_L, KC_SLSH
[_EUCALYN] = LAYOUT_wrapper(
KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
KC_TAB, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS,
KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL,
KC_LSFT, Z_____X_____C_____V_____F, GRV__QUOT, B_____H_____J_____L____SLSH, KC_RSFT,
LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
),
[_EUCALYN] = LAYOUT_wrapper( \
KC_ESC, _1_2_3_4_5, _6_7_8_9_0, KC_BSPC, \
KC_TAB, _Q_W_COMM_DOT_SCLN, _M_R_D_Y_P, KC_BSLS, \
KC_LCTL, _A_O_E_I_U, _G_T_K_S_N, KC_RCTL, \
KC_LSFT, _Z_X_C_V_F, KC_GRV, KC_QUOT, _B_H_J_L_SLSH, KC_RSFT, \
L_LOWER2_CAPS_LALT_LGUI_SPC_RABS, R_RAEN_SPC_RGUI_RALT_APP_LOWER2 \
),
/* Keypad
* ,-----------------------------------. ,-----------------------------------.
/* Keypad */
#define KP_TAB__PSLS_PAST KC_TAB, KC_PSLS, KC_PAST
#define KP__7_____8_____9 KC_KP_7, KC_KP_8, KC_KP_9
#define KP__4_____5_____6 KC_KP_4, KC_KP_5, KC_KP_6
#define KP__1_____2_____3 KC_KP_1, KC_KP_2, KC_KP_3
#define KP__0___COMM_PDOT KC_KP_0, KC_COMM, KC_PDOT
#define F1___F6 KC_F1, KC_F6
#define F2___F7 KC_F2, KC_F7
#define F3___F8 KC_F3, KC_F8
#define F4___F9 KC_F4, KC_F9
#define F5__F10 KC_F5, KC_F10
#define FF12 LT(_PADFUNC,KC_F12)
/* ,-----------------------------------. ,-----------------------------------.
* | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * |
* |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
* | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 |
@@ -190,25 +196,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | 0 | , | . |Enter| F5 | F10| F12 | F12 | F5 | F10|Enter| 0 | , | . |
* `-----------------------------------------------------------------------------------'
*/
#define KP_TOP KC_TAB, KC_PSLS, KC_PAST
#define KP_789 KC_KP_7, KC_KP_8, KC_KP_9
#define KP_456 KC_KP_4, KC_KP_5, KC_KP_6
#define KP_123 KC_KP_1, KC_KP_2, KC_KP_3
#define KP_BTM KC_KP_0, KC_COMM, KC_PDOT
#define F_1_6 KC_F1, KC_F6
#define F_2_7 KC_F2, KC_F7
#define F_3_8 KC_F3, KC_F8
#define F_4_9 KC_F4, KC_F9
#define F_510 KC_F5, KC_F10
#define FF12 LT(_PADFUNC,KC_F12)
[_KEYPAD] = LAYOUT_wrapper( \
KP_TOP, KC_DEL, F_1_6, F_1_6, KC_DEL, KP_TOP, \
KP_789, KC_BSPC, F_2_7, F_2_7, KC_BSPC, KP_789, \
KP_456, KC_PMNS, F_3_8, F_3_8, KC_PMNS, KP_456, \
KP_123, KC_PPLS, F_4_9, KC_F11, KC_F11, F_4_9, KC_PPLS, KP_123, \
KP_BTM, KC_PENT, F_510, FF12, FF12, F_510, KC_PENT, KP_BTM \
),
[_KEYPAD] = LAYOUT_wrapper(
KP_TAB__PSLS_PAST, KC_DEL, F1___F6, F1___F6, KC_DEL, KP_TAB__PSLS_PAST,
KP__7_____8_____9, KC_BSPC, F2___F7, F2___F7, KC_BSPC, KP__7_____8_____9,
KP__4_____5_____6, KC_PMNS, F3___F8, F3___F8, KC_PMNS, KP__4_____5_____6,
KP__1_____2_____3, KC_PPLS, F4___F9, KC_F11,KC_F11, F4___F9, KC_PPLS, KP__1_____2_____3,
KP__0___COMM_PDOT, KC_PENT, F5__F10, FF12, FF12, F5__F10, KC_PENT, KP__0___COMM_PDOT
),
/* AUX modifier key layer
* ,-----------------------------------. ,-----------------------------------.
@@ -223,16 +217,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | 00 | | | | | | | | | | | 00 | |
* `-----------------------------------------------------------------------------------'
*/
[_KAUX] = LAYOUT( \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____ \
[_KAUX] = LAYOUT(
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____
),
/* Keypad function layer
* ,-----------------------------------------. ,-----------------------------------------.
/* Keypad function layer */
#define PAUS__SLCK__PSCR KC_PAUS, KC_SLCK, KC_PSCR
#define PSCR__SLCK__PAUS KC_PSCR, KC_SLCK, KC_PAUS
#define HOME___UP___PGUP KC_HOME, KC_UP, KC_PGUP
#define PGUP___UP___HOME KC_PGUP, KC_UP, KC_HOME
#define DEL____INS__LEFT__DOWN__RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT
#define LEFT__DOWN__RGHT___INS___DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL
#define PGDN___ADJ___ADJ__PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN
/* ,-----------------------------------------. ,-----------------------------------------.
* | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | Home | Up | PgUp | | PgUp | Up | Home | | | |
@@ -244,55 +245,53 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _PAUS_SLCK_PSCR KC_PAUS, KC_SLCK, KC_PSCR
#define _PSCR_SLCK_PAUS KC_PSCR, KC_SLCK, KC_PAUS
#define _HOME_UP_PGUP KC_HOME, KC_UP, KC_PGUP
#define _PGUP_UP_HOME KC_PGUP, KC_UP, KC_HOME
#define _DEL_INS_LEFT_DOWN_RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT
#define _LEFT_DOWN_RGHT_INS_DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL
#define _PGDN_ADJ_ADJ_PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN
[_PADFUNC] = LAYOUT_wrapper( \
XXXX, XXXX, XXXX, _PAUS_SLCK_PSCR, _PSCR_SLCK_PAUS, XXXX, XXXX, XXXX, \
XXXX, XXXX, XXXX, _HOME_UP_PGUP, _PGUP_UP_HOME, XXXX, XXXX, XXXX, \
XXXX, _DEL_INS_LEFT_DOWN_RGHT, _LEFT_DOWN_RGHT_INS_DEL, XXXX, \
XXXX, XXXX, XXXX, KC_END, XXXX, _PGDN_ADJ_ADJ_PGDN, XXXX, KC_END, XXXX, XXXX, XXXX, \
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX \
[_PADFUNC] = LAYOUT_wrapper(
XXXX, XXXX, XXXX, PAUS__SLCK__PSCR, PSCR__SLCK__PAUS, XXXX, XXXX, XXXX,
XXXX, XXXX, XXXX, HOME___UP___PGUP, PGUP___UP___HOME, XXXX, XXXX, XXXX,
XXXX, DEL____INS__LEFT__DOWN__RGHT, LEFT__DOWN__RGHT___INS___DEL, XXXX,
XXXX, XXXX, XXXX,KC_END,XXXX, PGDN___ADJ___ADJ__PGDN, XXXX,KC_END,XXXX, XXXX, XXXX,
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX
),
/* Lower
* ,-----------------------------------------. ,-----------------------------------------.
/* Lower */
#define F1____F2____F3____F4____F5 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
#define F6____F7____F8____F9____F10 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define XXXX__PAUS__SLCK___INS XXXX, KC_PAUS, KC_SLCK, KC_INS
#define XXXX___INS__SLCK__PAUS__XXXX XXXX, KC_INS, KC_SLCK, KC_PAUS, XXXX
#define ADJ___ADJ KC_ADJ, KC_ADJ
#define HOME__XXXX___UP____DEL__PGUP KC_HOME, XXXX, KC_UP, KC_DEL, KC_PGUP
#define PGUP___DEL___UP___XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXX, KC_HOME
#define END__LEFT__DOWN__RGHT__PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
#define PGDN__LEFT__DOWN__RGHT___END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
/* ,-----------------------------------------. ,-----------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | PgUp | | Up |Delete| Home | | Home |Delete| Up | | PgUp | |
* | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | PgDn | Left | Down | Right| End |Adjust|Adjust| End | Left | Down | Right| PgDn | |
* | | End | Left | Down | Right| PgDn |Adjust|Adjust| PgDn | Left | Down | Right| End | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | PrtSc| | | | | | | | | PrtSc| | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _F1_F2_F3_F4_F5 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
#define _F6_F7_F8_F9_F10_F11 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11
#define _PAUS_SLCK_INS KC_PAUS, KC_SLCK, KC_INS
#define _INS_SLCK_PAUS KC_INS, KC_SLCK, KC_PAUS
#define _ADJ_ADJ KC_ADJ, KC_ADJ
#define _UP_DEL_PGUP KC_UP, KC_DEL, KC_PGUP
#define _PGUP_DEL_UP KC_PGUP, KC_DEL, KC_UP
#define _END_LEFT_DOWN_RGHT_PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
#define _PGDN_LEFT_DOWN_RGHT_END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
[_LOWER] = LAYOUT_wrapper(
XXXX, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11,
XXXX, XXXX__PAUS__SLCK___INS, XXXX, XXXX___INS__SLCK__PAUS__XXXX, KC_F12,
____, HOME__XXXX___UP____DEL__PGUP, PGUP___DEL___UP___XXXX__HOME, ____,
____, END__LEFT__DOWN__RGHT__PGDN, XXXX, XXXX, PGDN__LEFT__DOWN__RGHT___END, ____,
____, ____,KC_PSCR,____, ____, ____, ADJ___ADJ, ____, ____, ____,KC_PSCR,____, ____
),
[_LOWER] = LAYOUT_wrapper( \
XXXX, _F1_F2_F3_F4_F5, _F6_F7_F8_F9_F10_F11, \
XXXX, XXXX, _PAUS_SLCK_INS, XXXX, XXXX, _INS_SLCK_PAUS, XXXX, KC_F12, \
____, KC_HOME, XXXX, _UP_DEL_PGUP, _PGUP_DEL_UP, XXXX, KC_HOME, ____, \
____, _END_LEFT_DOWN_RGHT_PGDN, XXXX, XXXX, _PGDN_LEFT_DOWN_RGHT_END, ____, \
____, ____, KC_PSCR, ____, ____, ____, _ADJ_ADJ, ____, ____, ____, KC_PSCR, ____, ____ \
),
/* Raise
* ,-----------------------------------------. ,-----------------------------------------.
/* Raise */
#define UNDS__MINS KC_UNDS, KC_MINS
#define EQL___PLUS KC_EQL, KC_PLUS
#define LCBR__LBRC KC_LCBR, KC_LBRC
#define RBRC__RCBR KC_RBRC, KC_RCBR
#define MNXT__VOLD__VOLU__MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
#define EISU__EISU xEISU, xEISU
#define KANA__KANA xKANA, xKANA
/* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | _ | - | | = | + | | | | |
@@ -304,19 +303,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _LSMI_MINS KC_LSMI, KC_MINS
#define _EQL_LSEQ KC_EQL, KC_LSEQ
#define _LSLB_LBRC KC_LSLB, KC_LBRC
#define _RBRC_LSRB KC_RBRC, KC_LSRB
#define _MNXT_VOLD_VOLU_MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
[_RAISE] = LAYOUT_wrapper( \
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, \
XXXX, XXXX, XXXX, XXXX, _LSMI_MINS, _EQL_LSEQ, XXXX, XXXX, XXXX, XXXX, \
____, XXXX, XXXX, XXXX, _LSLB_LBRC, _RBRC_LSRB, XXXX, XXXX, XXXX, ____, \
____, XXXX, XXXX, XXXX, XXXX,xEISU,xEISU, xKANA,xKANA, _MNXT_VOLD_VOLU_MPLY, ____, \
_ADJ_ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, _ADJ_ADJ \
),
[_RAISE] = LAYOUT_wrapper(
XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,
XXXX, XXXX, XXXX, XXXX, UNDS__MINS, EQL___PLUS, XXXX, XXXX, XXXX, XXXX,
____, XXXX, XXXX, XXXX, LCBR__LBRC, RBRC__RCBR, XXXX, XXXX, XXXX, ____,
____, XXXX, XXXX, XXXX, XXXX, EISU__EISU, KANA__KANA, MNXT__VOLD__VOLU__MPLY, ____,
ADJ___ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, ADJ___ADJ
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------. ,-----------------------------------------.
@@ -331,16 +324,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT( \
XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX, \
XXXXXXX, RESET, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX, \
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, \
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, \
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ \
[_ADJUST] = LAYOUT(
XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX,
XXXXXXX, RESET, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX,
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI,
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD,
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______
),
/* AUX modifier key layer
* ,-----------------------------------------. ,-----------------------------------------.
/* AUX modifier key layer */
#define BSPC__RAEN KC_BSPC, LT(_RAISE,KC_ENT)
/* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
@@ -352,14 +346,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | BS | Enter| | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
#define _BSPC_RAEN KC_BSPC, LT(_RAISE,KC_ENT)
[_AUX] = LAYOUT_wrapper( \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
____, ____, ____, ____, ____, _BSPC_RAEN, ____, ____, ____, ____, ____, ____, ____ \
)
[_AUX] = LAYOUT_wrapper(
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
____, ____, ____, ____, ____, BSPC__RAEN, ____, ____, ____, ____, ____, ____, ____
)
};
#else

View File

@@ -163,6 +163,10 @@ void render_status(void) {
}
# ifdef SSD1306OLED
# if OLED_UPDATE_INTERVAL > 0
uint16_t oled_update_timeout;
# endif
void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;
@@ -172,6 +176,12 @@ void iota_gfx_task_user(void) {
}
# endif
#if OLED_UPDATE_INTERVAL > 0
if (timer_elapsed(oled_update_timeout) < OLED_UPDATE_INTERVAL) {
return;
}
oled_update_timeout = timer_read();
#endif
matrix_clear(&matrix);
if (is_keyboard_master()) {
render_status(&matrix);

View File

@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0G, K0F, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K3G, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \

View File

@@ -28,4 +28,3 @@
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 YES

View File

@@ -1,5 +1,4 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#pragma once
/* Use I2C or Serial, not both */
#define USE_SERIAL
@@ -22,5 +21,3 @@
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif // CONFIG_USER_H

View File

@@ -7,79 +7,72 @@
* };
*/
#define KC_ KC_TRNS
#define KC_TMB1 KC_LA(TAB)
#define KC_TMB2 KC_LS(SPC)
#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
#define KC_TMB5 KC_RC(BSPC)
#define KC_TMB6 KC_RG(ENT)
#define KC_TMB7 KC_RC(DEL)
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
#define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_EDVORAK] = LAYOUT_kc(
//,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
GRV ,EXLM, AT ,HASH , DLR ,PERC, CIRC,AMPR ,ASTR ,LPRN ,RPRN,BSPC,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
TAB ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS,
//|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
ESC ,SCLN, X , C , V , Z , NO , NO , H , J , K , L , B ,SLSH,
//`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
TMB1,TMB2,TMB3, TMB4,TMB5,TMB6
// `----+----+----' `----+----+----'
[L_EDVORAKJP_BASE] = LAYOUT_wrapper(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_ESC, __EDVORAKJP_BASE_L3__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BASE_R3__ , KC_SLSH,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
),
[_LOWER] = LAYOUT_kc(
//,----+----+------+------+------+----. ,----+------+------+-------+----+----.
, , , , , , , , , , , ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
, , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , ,
//|----+----+------+------+------+----| |----+------+------+-------+----+----|
F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 ,
//|----+----+------+------+------+----+----. ,----+----+------+------+-------+----+----|
PSCR, , HOME , PGDN , PGUP ,END , , ,LEFT, DOWN , UP , RGHT , , ,
//`----+----+------+------+------+----+----/ \----+----+------+------+-------+----+----'
, , NO , MAC ,TMB7,
// `----+----+----' `----+----+----'
[L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
__KC_TRNS_x6__ , __KC_TRNS_x6__ ,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
__EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , XXXXXXX, XXXXXXX, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
),
[_RAISE] = LAYOUT_kc(
//,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
, , , , , , , , , , , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , ,
//|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
, 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , ,
//|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
PSCR, ,HOME ,PGDN ,PGUP ,END , , ,LEFT,DOWN , UP ,RGHT , , ,
//`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
, ,WIN , NO , ,
// `----+----+----' `----+----+----'
[L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
__KC_TRNS_x6__ , __KC_TRNS_x6__ ,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , XXXXXXX, XXXXXXX, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
)
};
// clang-format on
void matrix_init_keymap() {
}
void matrix_init_keymap() {}
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
uint32_t layer_state_set_keymap(uint32_t state) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case _LOWER:
rgblight_sethsv_noeeprom_red();
break;
case _RAISE:
rgblight_sethsv_noeeprom_blue();
break;
default: // for any other layers, or the default layer
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
get_japanese_mode() ? rgblight_sethsv_noeeprom_red() : rgblight_sethsv_noeeprom_green();
break;
}
return state;
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (biton32(state)) {
case L_EDVORAKJP_LOWER:
rgblight_sethsv_noeeprom_red();
break;
case L_EDVORAKJP_RAISE:
rgblight_sethsv_noeeprom_green();
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv_red();
break;
}
return state;
}
#endif

View File

@@ -0,0 +1,39 @@
/* Copyright 2021 KiwiKey
*
* 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_ortho_3x3(
KC_MUTE, KC_VOLD, KC_VOLU, // Media volume: Mute - Volume Up - Volume Down
KC_MPLY, KC_MPRV, KC_MNXT, // Media track control: Play/Pause - Previous Track - Next Track
MO(1), LCTL(KC_C), LCTL(KC_V) // FN(1) - Copy - Paste
),
[1] = LAYOUT_ortho_3x3(
RGB_TOG, RGB_MODE_REVERSE, RGB_MODE_FORWARD,
_______, RGB_MODE_BREATHE, RGB_MODE_RAINBOW,
_______, _______, RESET
),
[2] = LAYOUT_ortho_3x3(
_______, _______, _______,
_______, _______, _______,
_______, _______, _______
),
[3] = LAYOUT_ortho_3x3(
_______, _______, _______,
_______, _______, _______,
_______, _______, _______
)
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -18,5 +18,6 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = yes # Enable Bluetooth
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
NO_USB_STARTUP_CHECK = yes

View File

@@ -0,0 +1,65 @@
/*
Copyright 2021 Mechlovin' Studio
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 0x4D4C
#define PRODUCT_ID 0x6C01
#define DEVICE_VER 0x0001
#define MANUFACTURER Mechlovin Studio and Hex Keyboard
#define PRODUCT Hex6C
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 21
/*
* 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 { A10, B13, B12, B11, C14, C15 }
#define MATRIX_COL_PINS { A13, A14, A1, A0, C13, B9, B4, B7, B8, B5, B6, A9, A5, A6, A7, B1, B2, B10, B3, B14, B15 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define LED_NUM_LOCK_PIN A3
#define LED_CAPS_LOCK_PIN A4
#define LED_SCROLL_LOCK_PIN A8
#define LED_PIN_ON_STATE 0
#define BACKLIGHT_PIN B0
#define BACKLIGHT_BREATHING
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 3
#define ENCODERS_PAD_A { A15 }
#define ENCODERS_PAD_B { A2 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 10
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047

View File

@@ -0,0 +1,17 @@
/* Copyright 2021 Mechlovin' Studio
*
* 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 "hex6c.h"

View File

@@ -0,0 +1,35 @@
/* Copyright 2021 Mechlovin' Studio
*
* 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 LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, K0K, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K2H, K1I, K1J, K1K, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K3G, K2I, K2J, K2K, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3H, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4J, \
K50, K51, K52, K53, K54, K55, K56, K5A, K5E, K5F, K5G, K5H, K5I, K5J, K5K \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, K0K }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, KC_NO, KC_NO, KC_NO }, \
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, KC_NO, K4J, KC_NO }, \
{ K50, K51, K52, K53, K54, K55, K56, KC_NO, KC_NO, KC_NO, K5A, KC_NO, KC_NO, KC_NO, K5E, K5F, K5G, K5H, K5I, K5J, K5K }, \
}

View File

@@ -0,0 +1,128 @@
{
"keyboard_name": "hex-6C",
"url": "",
"maintainer": "Mechlovin' Studio",
"width": 22.5,
"height": 6.25,
"layouts": {
"LAYOUT_all": {
"layout": [
{"label":"K00 (B0,B6)", "x":0, "y":0},
{"label":"K01 (B0,B7)", "x":1, "y":0},
{"label":"K02 (B0,C0)", "x":2, "y":0},
{"label":"K03 (B0,C1)", "x":3, "y":0},
{"label":"K04 (B0,C2)", "x":4.25, "y":0},
{"label":"K05 (B0,C3)", "x":5.5, "y":0},
{"label":"K06 (B0,C4)", "x":6.5, "y":0},
{"label":"K07 (B0,C5)", "x":7.5, "y":0},
{"label":"K08 (B0,C6)", "x":8.5, "y":0},
{"label":"K09 (B0,C7)", "x":9.75, "y":0},
{"label":"K0A (B0,D0)", "x":10.75, "y":0},
{"label":"K0B (B0,D1)", "x":11.75, "y":0},
{"label":"K0C (B0,D2)", "x":12.75, "y":0},
{"label":"K0D (B0,D3)", "x":14, "y":0},
{"label":"K0E (B0,D4)", "x":15, "y":0},
{"label":"K0F (B0,D5)", "x":16, "y":0},
{"label":"K0G (B0,D6)", "x":17, "y":0},
{"label":"K0H (B0,D7)", "x":18.25, "y":0},
{"label":"K0I (B0,E0)", "x":19.5, "y":0},
{"label":"K0J (B0,E1)", "x":20.5, "y":0},
{"label":"K0K (B0,E2)", "x":21.5, "y":0},
{"label":"K10 (B1,B6)", "x":0, "y":1.25},
{"label":"K11 (B1,B7)", "x":1, "y":1.25},
{"label":"K12 (B1,C0)", "x":2, "y":1.25},
{"label":"K13 (B1,C1)", "x":3, "y":1.25},
{"label":"K14 (B1,C2)", "x":4.25, "y":1.25},
{"label":"K15 (B1,C3)", "x":5.25, "y":1.25},
{"label":"K16 (B1,C4)", "x":6.25, "y":1.25},
{"label":"K17 (B1,C5)", "x":7.25, "y":1.25},
{"label":"K18 (B1,C6)", "x":8.25, "y":1.25},
{"label":"K19 (B1,C7)", "x":9.25, "y":1.25},
{"label":"K1A (B1,D0)", "x":10.25, "y":1.25},
{"label":"K1B (B1,D1)", "x":11.25, "y":1.25},
{"label":"K1C (B1,D2)", "x":12.25, "y":1.25},
{"label":"K1D (B1,D3)", "x":13.25, "y":1.25},
{"label":"K1E (B1,D4)", "x":14.25, "y":1.25},
{"label":"K1F (B1,D5)", "x":15.25, "y":1.25},
{"label":"K1G (B1,D6)", "x":16.25, "y":1.25},
{"label":"K1H (B1,D7)", "x":17.25, "y":1.25},
{"label":"K2H (B2,D7)", "x":18.25, "y":1.25},
{"label":"K1I (B1,E0)", "x":19.5, "y":1.25},
{"label":"K1J (B1,E1)", "x":20.5, "y":1.25},
{"label":"K1K (B1,E2)", "x":21.5, "y":1.25},
{"label":"K20 (B2,B6)", "x":0, "y":2.25},
{"label":"K21 (B2,B7)", "x":1, "y":2.25},
{"label":"K22 (B2,C0)", "x":2, "y":2.25},
{"label":"K23 (B2,C1)", "x":3, "y":2.25},
{"label":"K24 (B2,C2)", "x":4.25, "y":2.25, "w":1.5},
{"label":"K25 (B2,C3)", "x":5.75, "y":2.25},
{"label":"K26 (B2,C4)", "x":6.75, "y":2.25},
{"label":"K27 (B2,C5)", "x":7.75, "y":2.25},
{"label":"K28 (B2,C6)", "x":8.75, "y":2.25},
{"label":"K29 (B2,C7)", "x":9.75, "y":2.25},
{"label":"K2A (B2,D0)", "x":10.75, "y":2.25},
{"label":"K2B (B2,D1)", "x":11.75, "y":2.25},
{"label":"K2C (B2,D2)", "x":12.75, "y":2.25},
{"label":"K2D (B2,D3)", "x":13.75, "y":2.25},
{"label":"K2E (B2,D4)", "x":14.75, "y":2.25},
{"label":"K2F (B2,D5)", "x":15.75, "y":2.25},
{"label":"K2G (B2,D6)", "x":16.75, "y":2.25},
{"label":"K3G (B3,D6)", "x":17.75, "y":2.25, "w":1.5},
{"label":"K2I (B2,E0)", "x":19.5, "y":2.25},
{"label":"K2J (B2,E1)", "x":20.5, "y":2.25},
{"label":"K2K (B2,E2)", "x":21.5, "y":2.25},
{"label":"K30 (B3,B6)", "x":0, "y":3.25},
{"label":"K31 (B3,B7)", "x":1, "y":3.25},
{"label":"K32 (B3,C0)", "x":2, "y":3.25},
{"label":"K33 (B3,C1)", "x":3, "y":3.25},
{"label":"K34 (B3,C2)", "x":4.25, "y":3.25, "w":1.75},
{"label":"K35 (B3,C3)", "x":6, "y":3.25},
{"label":"K36 (B3,C4)", "x":7, "y":3.25},
{"label":"K37 (B3,C5)", "x":8, "y":3.25},
{"label":"K38 (B3,C6)", "x":9, "y":3.25},
{"label":"K39 (B3,C7)", "x":10, "y":3.25},
{"label":"K3A (B3,D0)", "x":11, "y":3.25},
{"label":"K3B (B3,D1)", "x":12, "y":3.25},
{"label":"K3C (B3,D2)", "x":13, "y":3.25},
{"label":"K3D (B3,D3)", "x":14, "y":3.25},
{"label":"K3E (B3,D4)", "x":15, "y":3.25},
{"label":"K3F (B3,D5)", "x":16, "y":3.25},
{"label":"K3H (B3,D7)", "x":17, "y":3.25, "w":2.25},
{"label":"K40 (B4,B6)", "x":0, "y":4.25},
{"label":"K41 (B4,B7)", "x":1, "y":4.25},
{"label":"K42 (B4,C0)", "x":2, "y":4.25},
{"label":"K43 (B4,C1)", "x":3, "y":4.25},
{"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "w":1.25},
{"label":"K45 (B4,C3)", "x":5.5, "y":4.25},
{"label":"K46 (B4,C4)", "x":6.5, "y":4.25},
{"label":"K47 (B4,C5)", "x":7.5, "y":4.25},
{"label":"K48 (B4,C6)", "x":8.5, "y":4.25},
{"label":"K49 (B4,C7)", "x":9.5, "y":4.25},
{"label":"K4A (B4,D0)", "x":10.5, "y":4.25},
{"label":"K4B (B4,D1)", "x":11.5, "y":4.25},
{"label":"K4C (B4,D2)", "x":12.5, "y":4.25},
{"label":"K4D (B4,D3)", "x":13.5, "y":4.25},
{"label":"K4E (B4,D4)", "x":14.5, "y":4.25},
{"label":"K4F (B4,D5)", "x":15.5, "y":4.25},
{"label":"K4G (B4,D6)", "x":16.5, "y":4.25, "w":1.75},
{"label":"K4H (B4,D7)", "x":18.25, "y":4.25},
{"label":"K4J (B4,E1)", "x":20.5, "y":4.25},
{"label":"K50 (B5,B6)", "x":0, "y":5.25},
{"label":"K51 (B5,B7)", "x":1, "y":5.25},
{"label":"K52 (B5,C0)", "x":2, "y":5.25},
{"label":"K53 (B5,C1)", "x":3, "y":5.25},
{"label":"K54 (B5,C2)", "x":4.25, "y":5.25, "w":1.25},
{"label":"K55 (B5,C3)", "x":5.5, "y":5.25, "w":1.25},
{"label":"K56 (B5,C4)", "x":6.75, "y":5.25, "w":1.25},
{"label":"K5A (B5,D0)", "x":8, "y":5.25, "w":6.25},
{"label":"K5E (B5,D4)", "x":14.25, "y":5.25, "w":1.25},
{"label":"K5F (B5,D5)", "x":15.5, "y":5.25, "w":1.25},
{"label":"K5G (B5,D6)", "x":16.75, "y":5.25, "w":1.25},
{"label":"K5H (B5,D7)", "x":18, "y":5.25, "w":1.25},
{"label":"K5I (B5,E0)", "x":19.5, "y":5.25},
{"label":"K5J (B5,E1)", "x":20.5, "y":5.25},
{"label":"K5K (B5,E2)", "x":21.5, "y":5.25}
]
}
}
}

View File

@@ -0,0 +1,40 @@
/* Copyright 2021 Mechlovin' Studio
*
* 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_all(
KC_CALC, KC_MAIL, KC_MYCM, KC_MUTE, 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_F13, KC_PSCR, KC_SLCK, KC_PAUS,
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
KC_P7, KC_P8, KC_P9, KC_PPLS, 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_END, KC_PGDN,
KC_P4, KC_P5, KC_P6, KC_PPLS, 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_P1, KC_P2, KC_P3, KC_PENT, 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_SPC, KC_UP,
KC_0, KC_PCMM, KC_PDOT, KC_PEQL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
};
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}
#endif

View File

@@ -0,0 +1 @@
# The default keymap for hex6c

View File

@@ -0,0 +1,68 @@
/* Copyright 2021 Mechlovin' Studio
*
* 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_all(
KC_CALC, KC_MAIL, KC_MYCM, KC_MUTE, 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_F13, KC_PSCR, KC_SLCK, KC_PAUS,
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL, KC_INS, KC_HOME, KC_PGUP,
KC_P7, KC_P8, KC_P9, KC_PPLS, 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_END, KC_PGDN,
KC_P4, KC_P5, KC_P6, KC_PPLS, 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_P1, KC_P2, KC_P3, KC_PENT, 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_SPC, KC_UP,
KC_0, KC_PCMM, KC_PDOT, KC_PEQL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
),
[2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
),
[3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
),
};
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}
#endif

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,21 @@
# hex6c
![hex6c](https://i.imgur.com/uYxCTiTl.jpeg)
A Southpaw Fullsize Keyboard with encoder.
* Keyboard Maintainer: [Mechlovin' Studio](https://github.com/mechlovin)
* Hardware Supported: Hex6C Keyboard, STM32F303
* Hardware Availability: [Hex Keyboard](https://hexkeyboards.com/)
Make example for this keyboard (after setting up your build environment):
make mechlovin/hex6c:default
Flashing example for this keyboard:
make mechlovin/hex6c: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).
**Reset Key:** To put the Hex6C into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB.

View File

@@ -0,0 +1,20 @@
# MCU name
MCU = STM32F303
BOARD = QMK_PROTON_C
# 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 = yes # USB Nkey Rollover
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes

View File

@@ -1,19 +1,18 @@
/*
Copyright 2020 Team Mechlovin'
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/>.
*/
/* Copyright 2020 Team Mechlovin'
*
* 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
@@ -21,54 +20,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4D4C // ML
#define PRODUCT_ID 0x8701
#define DEVICE_VER 0x0001
#define MANUFACTURER Team.Mechlovin
#define PRODUCT Infinity 87
#define MANUFACTURER Mechlovin.Studio
/* 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 { A10, B13, B12, B11, C14, C15 }
#define MATRIX_COL_PINS { C13, B9, B4, B7, B8, B5, B6, A9, A5, A6, A7,B1, B2, B10, B3, B14, B15 }
#define DIODE_DIRECTION COL2ROW
#define LED_NUM_LOCK_PIN A3
#define LED_CAPS_LOCK_PIN A4
#define BACKLIGHT_PIN B0
#define BACKLIGHT_BREATHING
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 3
#define RGB_DI_PIN A15
#define RGBLED_NUM 26
#define RGBLIGHT_LIMIT_VAL 255
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
#define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/

View File

@@ -18,12 +18,12 @@
#include "quantum.h"
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K0D, K1E, K1F, K1G, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
@@ -32,6 +32,3 @@
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
{ K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
}
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/

View File

@@ -1 +1,2 @@
VIA_ENABLE = yes
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@@ -0,0 +1,31 @@
/* Copyright 2020 Team Mechlovin'
*
* 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 MATRIX_ROW_PINS { A10, B13, B12, B11, C14, C15 }
#define MATRIX_COL_PINS { C13, B9, B4, B7, B8, B5, B6, A9, A5, A6, A7, B1, B2, B10, B3, B14, B15 }
#define BACKLIGHT_PIN B0
#define BACKLIGHT_BREATHING
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 3
#define LED_CAPS_LOCK_PIN A4
#define LED_SCROLL_LOCK_PIN A8
#define DIODE_DIRECTION COL2ROW

View File

@@ -0,0 +1,16 @@
# infinity87
![infinity87](https://i.imgur.com/QuK1EnNl.png)
A replacement PCB for TKL keyboard
* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin)
* Hardware Supported: Infinity87 rev.1 (1.6mm & 1.2mm). Rouge87 for OTD, Rogue87 for UTD
Make example for this keyboard (after setting up your build environment):
make mechlovin/infinity87: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).
**Reset Key:** To put the IF87_rev1, rouge87, rogue87 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB.

View File

@@ -0,0 +1,17 @@
/* Copyright 2020 Team Mechlovin'
*
* 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 "rev1.h"

View File

@@ -0,0 +1,19 @@
/* Copyright 2020 Team Mechlovin
*
* 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"

View File

@@ -0,0 +1,21 @@
/* Copyright 2020 Team Mechlovin'
*
* 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 PRODUCT_ID 0x8704
#define DEVICE_VER 0x0001
#define PRODUCT Rogue87 Rev.1

View File

@@ -0,0 +1,99 @@
{
"keyboard_name": "Rogue87",
"url": "",
"maintainer": "Mechlovin' Studio",
"width": 18.25,
"height": 6.25,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":2, "y":0},
{"label":"K02", "x":3, "y":0},
{"label":"K03", "x":4, "y":0},
{"label":"K04", "x":5, "y":0},
{"label":"K05", "x":6.5, "y":0},
{"label":"K06", "x":7.5, "y":0},
{"label":"K07", "x":8.5, "y":0},
{"label":"K08", "x":9.5, "y":0},
{"label":"K09", "x":11, "y":0},
{"label":"K0A", "x":12, "y":0},
{"label":"K0B", "x":13, "y":0},
{"label":"K0C", "x":14, "y":0},
{"label":"K0E", "x":15.25, "y":0},
{"label":"K0F", "x":16.25, "y":0},
{"label":"K0G", "x":17.25, "y":0},
{"label":"K10", "x":0, "y":1.25},
{"label":"K11", "x":1, "y":1.25},
{"label":"K12", "x":2, "y":1.25},
{"label":"K13", "x":3, "y":1.25},
{"label":"K14", "x":4, "y":1.25},
{"label":"K15", "x":5, "y":1.25},
{"label":"K16", "x":6, "y":1.25},
{"label":"K17", "x":7, "y":1.25},
{"label":"K18", "x":8, "y":1.25},
{"label":"K19", "x":9, "y":1.25},
{"label":"K1A", "x":10, "y":1.25},
{"label":"K1B", "x":11, "y":1.25},
{"label":"K1C", "x":12, "y":1.25},
{"label":"K1D", "x":13, "y":1.25, "w":2},
{"label":"K1E", "x":15.25, "y":1.25},
{"label":"K1F", "x":16.25, "y":1.25},
{"label":"K1G", "x":17.25, "y":1.25},
{"label":"K20", "x":0, "y":2.25, "w":1.5},
{"label":"K21", "x":1.5, "y":2.25},
{"label":"K22", "x":2.5, "y":2.25},
{"label":"K23", "x":3.5, "y":2.25},
{"label":"K24", "x":4.5, "y":2.25},
{"label":"K25", "x":5.5, "y":2.25},
{"label":"K26", "x":6.5, "y":2.25},
{"label":"K27", "x":7.5, "y":2.25},
{"label":"K28", "x":8.5, "y":2.25},
{"label":"K29", "x":9.5, "y":2.25},
{"label":"K2A", "x":10.5, "y":2.25},
{"label":"K2B", "x":11.5, "y":2.25},
{"label":"K2C", "x":12.5, "y":2.25},
{"label":"K2D", "x":13.5, "y":2.25, "w":1.5},
{"label":"K2E", "x":15.25, "y":2.25},
{"label":"K2F", "x":16.25, "y":2.25},
{"label":"K2G", "x":17.25, "y":2.25},
{"label":"K30", "x":0, "y":3.25, "w":1.75},
{"label":"K31", "x":1.75, "y":3.25},
{"label":"K32", "x":2.75, "y":3.25},
{"label":"K33", "x":3.75, "y":3.25},
{"label":"K34", "x":4.75, "y":3.25},
{"label":"K35", "x":5.75, "y":3.25},
{"label":"K36", "x":6.75, "y":3.25},
{"label":"K37", "x":7.75, "y":3.25},
{"label":"K38", "x":8.75, "y":3.25},
{"label":"K39", "x":9.75, "y":3.25},
{"label":"K3A", "x":10.75, "y":3.25},
{"label":"K3B", "x":11.75, "y":3.25},
{"label":"K3C", "x":12.75, "y":3.25},
{"label":"K3D", "x":13.75, "y":3.25, "w":1.25},
{"label":"K40", "x":0, "y":4.25, "w":1.25},
{"label":"K41", "x":1.25, "y":4.25},
{"label":"K42", "x":2.25, "y":4.25},
{"label":"K43", "x":3.25, "y":4.25},
{"label":"K44", "x":4.25, "y":4.25},
{"label":"K45", "x":5.25, "y":4.25},
{"label":"K46", "x":6.25, "y":4.25},
{"label":"K47", "x":7.25, "y":4.25},
{"label":"K48", "x":8.25, "y":4.25},
{"label":"K49", "x":9.25, "y":4.25},
{"label":"K4A", "x":10.25, "y":4.25},
{"label":"K4B", "x":11.25, "y":4.25},
{"label":"K4D", "x":12.25, "y":4.25, "w":2.75},
{"label":"K4F", "x":16.25, "y":4.25},
{"label":"K50", "x":0, "y":5.25, "w":1.5},
{"label":"K52", "x":2.5, "y":5.25, "w":1.5},
{"label":"K56", "x":4, "y":5.25, "w":7},
{"label":"K5B", "x":11, "y":5.25, "w":1.5},
{"label":"K5D", "x":13.5, "y":5.25, "w":1.5},
{"label":"K5E", "x":15.25, "y":5.25},
{"label":"K5F", "x":16.25, "y":5.25},
{"label":"K5G", "x":17.25, "y":5.25}
]
}
}
}

View File

@@ -0,0 +1,27 @@
/* Copyright 2020 Team Mechlovin'
*
* 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_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, 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_HOME, 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_END, 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_HASH, KC_ENT,
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_LSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
};

View File

@@ -0,0 +1 @@
# The default keymap for infinity87

View File

@@ -0,0 +1,53 @@
/* Copyright 2020 Team Mechlovin'
*
* 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_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, 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_HOME, 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_END, 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_HASH, KC_ENT,
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_LSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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
),
[2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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
),
[3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};

View File

@@ -0,0 +1 @@
# The via keymap for infinity87

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@@ -0,0 +1,19 @@
# Rogue87 PCB
![infinity87](https://i.imgur.com/DBquKMBl.jpeg)
A replacement PCB for UTD keyboard.
* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin)
* Hardware Supported: UTD Keyboard, Rogue87, STM32F303
* Hardware Availability: [Reddit GB](https://www.reddit.com/r/mechmarket/comments/ll6e5x/gb_mechlovin_rouge_otd_compatible_pcb_plates/)
Make example for this keyboard (after setting up your build environment):
make mechlovin/infinity87/rev1/rogue87:default
Flashing example for this keyboard:
make mechlovin/infinity87/rev1/rogue87: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).

View File

@@ -0,0 +1,34 @@
/* Copyright 2020 Team Mechlovin'
*
* 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 LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
K50, K52, K56, K5B, K5D, K5E, K5F, K5G \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F, K0G }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO}, \
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \
{ K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \
}

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,21 @@
/* Copyright 2020 Team Mechlovin'
*
* 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 PRODUCT_ID 0x8703
#define DEVICE_VER 0x0001
#define PRODUCT Rouge87 Rev.1

View File

@@ -0,0 +1,101 @@
{
"keyboard_name": "Rouge87",
"url": "",
"maintainer": "Mechlovin' Studio",
"width": 18.25,
"height": 6.25,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":2, "y":0},
{"label":"K02", "x":3, "y":0},
{"label":"K03", "x":4, "y":0},
{"label":"K04", "x":5, "y":0},
{"label":"K05", "x":6.5, "y":0},
{"label":"K06", "x":7.5, "y":0},
{"label":"K07", "x":8.5, "y":0},
{"label":"K08", "x":9.5, "y":0},
{"label":"K09", "x":11, "y":0},
{"label":"K0A", "x":12, "y":0},
{"label":"K0B", "x":13, "y":0},
{"label":"K0C", "x":14, "y":0},
{"label":"K0E", "x":15.25, "y":0},
{"label":"K0F", "x":16.25, "y":0},
{"label":"K0G", "x":17.25, "y":0},
{"label":"K10", "x":0, "y":1.25},
{"label":"K11", "x":1, "y":1.25},
{"label":"K12", "x":2, "y":1.25},
{"label":"K13", "x":3, "y":1.25},
{"label":"K14", "x":4, "y":1.25},
{"label":"K15", "x":5, "y":1.25},
{"label":"K16", "x":6, "y":1.25},
{"label":"K17", "x":7, "y":1.25},
{"label":"K18", "x":8, "y":1.25},
{"label":"K19", "x":9, "y":1.25},
{"label":"K1A", "x":10, "y":1.25},
{"label":"K1B", "x":11, "y":1.25},
{"label":"K1C", "x":12, "y":1.25},
{"label":"K1D", "x":13, "y":1.25, "w":2},
{"label":"K1E", "x":15.25, "y":1.25},
{"label":"K1F", "x":16.25, "y":1.25},
{"label":"K1G", "x":17.25, "y":1.25},
{"label":"K20", "x":0, "y":2.25, "w":1.5},
{"label":"K21", "x":1.5, "y":2.25},
{"label":"K22", "x":2.5, "y":2.25},
{"label":"K23", "x":3.5, "y":2.25},
{"label":"K24", "x":4.5, "y":2.25},
{"label":"K25", "x":5.5, "y":2.25},
{"label":"K26", "x":6.5, "y":2.25},
{"label":"K27", "x":7.5, "y":2.25},
{"label":"K28", "x":8.5, "y":2.25},
{"label":"K29", "x":9.5, "y":2.25},
{"label":"K2A", "x":10.5, "y":2.25},
{"label":"K2B", "x":11.5, "y":2.25},
{"label":"K2C", "x":12.5, "y":2.25},
{"label":"K2D", "x":13.5, "y":2.25, "w":1.5},
{"label":"K2E", "x":15.25, "y":2.25},
{"label":"K2F", "x":16.25, "y":2.25},
{"label":"K2G", "x":17.25, "y":2.25},
{"label":"K30", "x":0, "y":3.25, "w":1.75},
{"label":"K31", "x":1.75, "y":3.25},
{"label":"K32", "x":2.75, "y":3.25},
{"label":"K33", "x":3.75, "y":3.25},
{"label":"K34", "x":4.75, "y":3.25},
{"label":"K35", "x":5.75, "y":3.25},
{"label":"K36", "x":6.75, "y":3.25},
{"label":"K37", "x":7.75, "y":3.25},
{"label":"K38", "x":8.75, "y":3.25},
{"label":"K39", "x":9.75, "y":3.25},
{"label":"K3A", "x":10.75, "y":3.25},
{"label":"K3B", "x":11.75, "y":3.25},
{"label":"K3C", "x":12.75, "y":3.25},
{"label":"K3D", "x":13.75, "y":3.25, "w":1.25},
{"label":"K40", "x":0, "y":4.25, "w":1.25},
{"label":"K41", "x":1.25, "y":4.25},
{"label":"K42", "x":2.25, "y":4.25},
{"label":"K43", "x":3.25, "y":4.25},
{"label":"K44", "x":4.25, "y":4.25},
{"label":"K45", "x":5.25, "y":4.25},
{"label":"K46", "x":6.25, "y":4.25},
{"label":"K47", "x":7.25, "y":4.25},
{"label":"K48", "x":8.25, "y":4.25},
{"label":"K49", "x":9.25, "y":4.25},
{"label":"K4A", "x":10.25, "y":4.25},
{"label":"K4B", "x":11.25, "y":4.25},
{"label":"K4D", "x":12.25, "y":4.25, "w":2.75},
{"label":"K4F", "x":16.25, "y":4.25},
{"label":"K50", "x":0, "y":5.25, "w":1.5},
{"label":"K51", "x":1.5, "y":5.25},
{"label":"K52", "x":2.5, "y":5.25, "w":1.5},
{"label":"K56", "x":4, "y":5.25, "w":7},
{"label":"K5B", "x":11, "y":5.25, "w":1.5},
{"label":"K5C", "x":12.5, "y":5.25},
{"label":"K5D", "x":13.5, "y":5.25, "w":1.5},
{"label":"K5E", "x":15.25, "y":5.25},
{"label":"K5F", "x":16.25, "y":5.25},
{"label":"K5G", "x":17.25, "y":5.25}
]
}
}
}

View File

@@ -0,0 +1,27 @@
/* Copyright 2020 Team Mechlovin'
*
* 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_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, 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_HOME, 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_END, 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_HASH, KC_ENT,
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_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
};

View File

@@ -0,0 +1 @@
# The default keymap for infinity87

View File

@@ -0,0 +1,53 @@
/* Copyright 2020 Team Mechlovin'
*
* 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_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, 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_HOME, 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_END, 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_HASH, KC_ENT,
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_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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
),
[2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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
),
[3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};

View File

@@ -0,0 +1 @@
# The via keymap for infinity87

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@@ -0,0 +1,19 @@
# rouge87 PCB
![infinity87](https://i.imgur.com/y2RVpzSl.jpeg)
A replacement PCB OTD 356.2, 360c, 456gt, The Cheat
* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin)
* Hardware Supported: OTD 360C, The Cheat,...
* Hardware Availability: [Reddit GB](https://www.reddit.com/r/mechmarket/comments/ll6e5x/gb_mechlovin_rouge_otd_compatible_pcb_plates/)
Make example for this keyboard (after setting up your build environment):
make mechlovin/infinity87/rev1/rouge87:default
Flashing example for this keyboard:
make mechlovin/infinity87/rev1/rouge87: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).

View File

@@ -0,0 +1,35 @@
/* Copyright 2020 Team Mechlovin'
*
* 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 LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \
K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F, K0G }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO}, \
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \
{ K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, K5C, K5D, K5E, K5F, K5G }, \
}

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,6 @@
MCU = STM32F303
BOARD = QMK_PROTON_C
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
DEFAULT_FOLDER = mechlovin/infinity87/rev1/standard

View File

@@ -0,0 +1,40 @@
/* Copyright 2020 Team Mechlovin'
*
* 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 PRODUCT_ID 0x8701
#define DEVICE_VER 0x0001
#define PRODUCT Infinity 87 rev1
#define RGB_DI_PIN A15
#define RGBLED_NUM 26
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
#define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/

View File

@@ -0,0 +1,15 @@
# infinity87
![infinity87](https://i.imgur.com/QuK1EnNl.png)
A replacement PCB for TKL keyboard. A87 form factor,south-facing stabilisers.
* Keyboard Maintainer: [Team Mechlovin'](https://github.com/mechlovin)
* Hardware Supported: Infinity87 rev.1 (1.6mm & 1.2mm).
* Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=105853.0), [Reddit GB](https://www.reddit.com/r/mechmarket/comments/g4vf2w/gb_team_mechlovin_infinity_87_a87_form_factor/)
Make example for this keyboard (after setting up your build environment):
make mechlovin/infinity87/rev1/standard: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).

View File

@@ -0,0 +1 @@
RGBLIGHT_ENABLE = yes

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