summaryrefslogtreecommitdiffstats
path: root/keyboards/kprepublic/jj40
diff options
context:
space:
mode:
authorpeepeetee <43021794+peepeetee@users.noreply.github.com>2021-08-21 22:53:49 -0500
committerGitHub <noreply@github.com>2021-08-22 13:53:49 +1000
commit78ccd9c201199444bc06161b05ee8d7ba9c31613 (patch)
tree726d9e55d8cde510fe72bc1fb9bb2a7dabdbecc2 /keyboards/kprepublic/jj40
parentc70abc8d047319830e369ae4e14cd43bae3bd3b8 (diff)
Organize KPrepublic, K.T.E.C, xiudi boards into directories (#12159)
* reset; redoing my steps; and recommit * include xd002/.noci
Diffstat (limited to 'keyboards/kprepublic/jj40')
-rw-r--r--keyboards/kprepublic/jj40/config.h54
-rw-r--r--keyboards/kprepublic/jj40/info.json23
-rw-r--r--keyboards/kprepublic/jj40/jj40.c19
-rw-r--r--keyboards/kprepublic/jj40/jj40.h66
-rw-r--r--keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md119
-rw-r--r--keyboards/kprepublic/jj40/keymaps/cockpit/keymap.c144
-rw-r--r--keyboards/kprepublic/jj40/keymaps/cockpit/readme.md55
-rw-r--r--keyboards/kprepublic/jj40/keymaps/default/keymap.c104
-rw-r--r--keyboards/kprepublic/jj40/keymaps/fun40/config.h8
-rw-r--r--keyboards/kprepublic/jj40/keymaps/fun40/keymap.c98
-rw-r--r--keyboards/kprepublic/jj40/keymaps/fun40/readme.md4
-rw-r--r--keyboards/kprepublic/jj40/keymaps/fun40/rules.mk21
-rw-r--r--keyboards/kprepublic/jj40/keymaps/krusli/config.h8
-rw-r--r--keyboards/kprepublic/jj40/keymaps/krusli/keymap.c90
-rw-r--r--keyboards/kprepublic/jj40/keymaps/krusli/numpad.txt17
-rw-r--r--keyboards/kprepublic/jj40/keymaps/krusli/readme.md4
-rw-r--r--keyboards/kprepublic/jj40/keymaps/krusli/rules.mk1
-rw-r--r--keyboards/kprepublic/jj40/keymaps/oscillope/config.h8
-rw-r--r--keyboards/kprepublic/jj40/keymaps/oscillope/keymap.c124
-rw-r--r--keyboards/kprepublic/jj40/keymaps/oscillope/rules.mk11
-rw-r--r--keyboards/kprepublic/jj40/keymaps/skewwhiffy/keymap.c219
-rw-r--r--keyboards/kprepublic/jj40/keymaps/stevexyz/config.h47
-rw-r--r--keyboards/kprepublic/jj40/keymaps/stevexyz/keymap.c303
-rw-r--r--keyboards/kprepublic/jj40/keymaps/stevexyz/readme.md21
-rw-r--r--keyboards/kprepublic/jj40/keymaps/stevexyz/rules.mk19
-rw-r--r--keyboards/kprepublic/jj40/keymaps/suzuken/config.h8
-rw-r--r--keyboards/kprepublic/jj40/keymaps/suzuken/keymap.c99
-rw-r--r--keyboards/kprepublic/jj40/keymaps/via/keymap.c93
-rwxr-xr-xkeyboards/kprepublic/jj40/keymaps/via/rules.mk4
-rw-r--r--keyboards/kprepublic/jj40/keymaps/waples/config.h8
-rw-r--r--keyboards/kprepublic/jj40/keymaps/waples/keymap.c115
-rw-r--r--keyboards/kprepublic/jj40/keymaps/waples/readme.md49
-rw-r--r--keyboards/kprepublic/jj40/keymaps/waples/rules.mk10
-rw-r--r--keyboards/kprepublic/jj40/readme.md21
-rw-r--r--keyboards/kprepublic/jj40/rules.mk36
35 files changed, 2030 insertions, 0 deletions
diff --git a/keyboards/kprepublic/jj40/config.h b/keyboards/kprepublic/jj40/config.h
new file mode 100644
index 0000000000..0d168f2c01
--- /dev/null
+++ b/keyboards/kprepublic/jj40/config.h
@@ -0,0 +1,54 @@
+/*
+Copyright 2017 Luiz Ribeiro <luizribeiro@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 "config_common.h"
+
+#define VENDOR_ID 0x4B50 // "KP"
+#define PRODUCT_ID 0x0040
+#define DEVICE_VER 0x0200
+#define MANUFACTURER KPrepublic
+#define PRODUCT JJ40
+
+/* matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+#define MATRIX_ROW_PINS { B0, B1, B3, B4 }
+#define MATRIX_COL_PINS { C4, C5, C6, C7, A4, A5, A6, A7, A3, A2, A1, A0 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 12
+#define BACKLIGHT_BREATHING
+
+/* RGB underglow */
+// NOTE: for PS2AVRGB boards, underglow commands are sent via I2C to 0xB0.
+#define RGBLED_NUM 5
+#define RGBLIGHT_ANIMATIONS
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+#define USB_MAX_POWER_CONSUMPTION 100
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kprepublic/jj40/info.json b/keyboards/kprepublic/jj40/info.json
new file mode 100644
index 0000000000..c6416ce168
--- /dev/null
+++ b/keyboards/kprepublic/jj40/info.json
@@ -0,0 +1,23 @@
+{
+ "keyboard_name": "jj40",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 12,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_planck_mit": {
+ "key_count": 47,
+ "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3, "w":2}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
+ },
+
+ "LAYOUT_ortho_4x12": {
+ "key_count": 48,
+ "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
+ },
+
+ "LAYOUT_planck_1x2uR": {
+ "key_count": 47,
+ "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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3, "w":2}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}]
+ }
+ }
+}
diff --git a/keyboards/kprepublic/jj40/jj40.c b/keyboards/kprepublic/jj40/jj40.c
new file mode 100644
index 0000000000..894ed49078
--- /dev/null
+++ b/keyboards/kprepublic/jj40/jj40.c
@@ -0,0 +1,19 @@
+/*
+Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
+Modified 2018 Kenneth A. <github.com/krusli>
+
+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 "jj40.h"
diff --git a/keyboards/kprepublic/jj40/jj40.h b/keyboards/kprepublic/jj40/jj40.h
new file mode 100644
index 0000000000..a77f35af23
--- /dev/null
+++ b/keyboards/kprepublic/jj40/jj40.h
@@ -0,0 +1,66 @@
+/*
+Copyright 2017 Luiz Ribeiro <luizribeiro@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"
+
+#define ___ KC_NO
+
+#define LAYOUT_ortho_4x12( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B } \
+}
+
+
+#define LAYOUT_planck_mit( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K32, K33, K34, K3X, K37, K38, K39, K3A, K3B \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K3X, ___, K37, K38, K39, K3A, K3B } \
+}
+
+
+#define LAYOUT_planck_1x2uR( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+ K30, K31, K32, K33, K34, K35, K3X, K38, K39, K3A, K3B \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K35, K3X, ___, K38, K39, K3A, K3B } \
+}
+
+
+#define LAYOUT LAYOUT_planck_mit
diff --git a/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md b/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md
new file mode 100644
index 0000000000..7336b1994b
--- /dev/null
+++ b/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md
@@ -0,0 +1,119 @@
+# AJP10304 Custom JJ40 Layout
+# Also available for the Planck, Shark, Quark and Atreus50
+
+**Note:** In the tables below where there are two characters on a key,
+the second is the output when shift is applied.
+
+**Note:** The below tables assume a UK layout.
+
+#### Flashing
+Use sleep to get a chance to get into boot mode.
+
+`make jj40:ajp10304:flash`
+
+##### Main Qwerty Layer
+
+* Tab: when held, operates as shift.
+* Enter: when held, operates as shift.
+* MENU: perform right-click
+
+| | | | | | | | | | | | |
+| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
+| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
+| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
+| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
+
+##### Function Layer
+Activated when `fn` held in the above `qwerty` layer.
+
+| | | | | | | | | | | | |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
+| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
+| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
+
+##### Lower Layer
+Activated when `Lower` is held in the above `qwerty` layer.
+
+* Numbers are along the top row, their shifted counterparts are on row 2.
+* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
+* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
+
+| | | | | | | | | | | | |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
+| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
+| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
+| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
+
+##### Raise Layer
+Activated when `Raise` is held in the above `qwerty` layer.
+
+* Preferred layer for typing brackets.
+* Allows for cursor navigation to be used solely with the right hand.
+* WRDSEL: Select the word where the cursor is.
+* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
+
+| | | | | | | | | | | | |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
+| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
+| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
+| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
+| Mouse | | | | | Alt | Enter |Raise | | | | |
+
+##### Lower + Raise
+Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
+
+* Audio controls in the same position as cursor keys from the `Raise` layer.
+* ????: Runs a macro for outputting a text string. Do not use this store passwords.
+* Reset: Enter bootloader for flashing firmware to the keyboard.
+* CAPS: Toggle caps lock.
+* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
+To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
+* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
+MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
+
+| | | | | | | | | | | | |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
+| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | |
+| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | |
+| | | | | | | | | DYN | | | |
+
+##### Function 2 Layer
+Activated when `fn` held in the above `qwerty` layer.
+* WRDSEL: Select the word where the cursor is.
+* LNDEL: Delete the line where the cursor is.
+* LNSEL: Select the line where the cursor is.
+* DUP: Duplicate the selected text.
+* LNJOIN: Join the line where the cursor is with the following line.
+* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
+
+| | | | | | | | | | | | |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| | |WRDSEL| | | | LNDEL| | | | | |
+| | | LNSEL| DUP | | | | |LNJOIN| | | |
+| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
+| | | | | | | | | | | | |
+
+##### Mouse Layer
+Activated when `fn` and `raise` held together.
+
+| | | | | | | | | | | | |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ESC | | | | | | | | BTN3 | | | |
+| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
+| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
+| | | | | | | | | | | | |
+
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+| | | | | | | | | | | | |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
+| | | | | | | | 4 | 5 | 6 | * | |
+| | | | | | | | 1 | 2 | 3 | + | |
+| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/kprepublic/jj40/keymaps/cockpit/keymap.c b/keyboards/kprepublic/jj40/keymaps/cockpit/keymap.c
new file mode 100644
index 0000000000..34c6c861e5
--- /dev/null
+++ b/keyboards/kprepublic/jj40/keymaps/cockpit/keymap.c
@@ -0,0 +1,144 @@
+#include QMK_KEYBOARD_H
+
+#define LT_1 RALT(KC_1)
+#define LT_2 RALT(KC_2)
+#define LT_3 RALT(KC_3)
+#define LT_4 RALT(KC_4)
+#define LT_5 RALT(KC_5)
+#define LT_6 RALT(KC_6)
+#define LT_7 RALT(KC_7)
+#define LT_8 RALT(KC_8)
+#define LT_9 RALT(KC_9)
+#define LT_0 RALT(KC_0)
+#define LT_EXLM RALT(KC_EXLM)
+#define LT_AT RALT(KC_AT)
+#define LT_HASH RALT(KC_HASH)
+#define LT_DLR RALT(KC_DLR)
+#define LT_PERC RALT(KC_PERC)
+#define LT_CIRC RALT(KC_CIRC)
+#define LT_AMPR RALT(KC_AMPR)
+#define LT_ASTR RALT(KC_ASTR)
+
+// Naming according to Unicode specifications
+#define LT_A_OG KC_1
+#define LT_C_CA KC_2
+#define LT_E_OG KC_3
+#define LT_E_DO KC_4
+#define LT_I_OG KC_5
+#define LT_S_CA KC_6
+#define LT_U_OG KC_7
+#define LT_U_MA KC_8
+#define LT_Z_CA KC_EQL
+
+// Cockpit bindings
+#define CP_LOCK LGUI(KC_L)
+
+enum jj40_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _FUNC
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ FUNC
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | | Q | W | E | R | T | Y | U | I | O | P | |
+ * | Esc | q | w | e | r | t | y | u | i | o | p | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | A | S | D | F | G | H | J | K | L | : | " |
+ * | Tab | a | s | d | f | g | h | j | k | l | ; | ' |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | Z | X | C | V | B | N | M | < | > | ? | |
+ * |Shift | z | x | c | v | b | n | m | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * | Ctrl | Fn | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_planck_mit( \
+ KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
+ KC_LCTL, MO(_FUNC), KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+ /* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | Ą | Č | Ę | Ė | Į | Š | Ų | Ū | Ž | _ | |
+ * | ` | ą | č | ę | ė | į | š | ų | ū | ž | - | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * | Tab | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | { | } | | | | | |
+ * |Shift | = | + | - | | | [ | ] | < | > | { | } | Ins |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | |||||||| | | | | | |
+ * | Ctrl | | | Alt |Lower|| Space | | Home | PgDn | PgUp | End |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_planck_mit( \
+ KC_GRV, LT_A_OG, LT_C_CA, LT_E_OG, LT_E_DO, LT_I_OG, LT_S_CA, LT_U_OG, LT_U_MA, LT_Z_CA, KC_MINS, KC_BSPC, \
+ KC_TAB, LT_EXLM, LT_AT, LT_HASH, LT_DLR, LT_PERC, LT_CIRC, LT_AMPR, LT_ASTR, KC_LPRN, KC_RPRN, KC_DEL , \
+ KC_LSFT, KC_PEQL, KC_PPLS, KC_PMNS, KC_PIPE, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_LCBR, KC_RCBR, KC_INS , \
+ KC_LCTL, _______, _______, KC_LALT, _______, KC_SPC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \
+),
+
+ /* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | $ | % | ^ | | | | | | | | | |
+ * | Tab | 4 | 5 | 6 | | | | | | | | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | & | * | ( | ) | | | | < | > | ? | |
+ * |Shift | 7 | 8 | 9 | 0 | | | | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | |||||||| | | | |
+ * | Ctrl | | | Alt | | Space |Raise|| Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_planck_mit( \
+ KC_GRV, LT_1, LT_2, LT_3, LT_4, LT_5, LT_6, LT_7, LT_8, LT_9, LT_0, KC_BSPC, \
+ KC_TAB, LT_4, LT_5, LT_6, _______, _______, _______, _______, _______, _______, _______, KC_BSLS, \
+ KC_LSFT, LT_7, LT_8, LT_9, LT_0, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
+ KC_LCTL, _______, _______, KC_LALT, _______, KC_SPC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+ /* Functions
+ * Note: Terminal uses Calculator shortcut, change your OS keyboard shortcut appropriately.
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | |
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | RGB | RGB | RGB | RGB | BL | BL | BL | | Scr | | |
+ * | Caps | Togl | Hue+ | Sat+ | Brt+ | Togl |Breath| Brt+ | | Brt+ | | Vol+ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | RGB | RGB | RGB | WWW | WWW | BL | | Scr | | |
+ * |Shift | Term | Hue- | Sat- | Brt- | < | > | Brt- | | Brt- |PrScr | Vol- |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |||||||| RGB | | | | | | | | |
+ * | Ctrl |||Fn||| Mode | Alt | | Space |MPrev |MStop |MNext |MPlay | Lock |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNC] = LAYOUT_planck_mit( \
+ 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_CAPS, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, BL_TOGG, BL_BRTG, BL_INC, _______, KC_BRIU, _______, KC_VOLU, \
+ KC_LSFT, KC_CALC, RGB_HUD, RGB_SAD, RGB_VAD, KC_WBAK, KC_WFWD, BL_DEC, _______, KC_BRID, KC_PSCR, KC_VOLD, \
+ KC_LCTL, _______, RGB_MOD, KC_LALT, _______, KC_SPC, KC_MPRV, KC_MSTP, KC_MNXT, KC_MPLY, CP_LOCK \
+)
+};
+
+// Loop
+void matrix_scan_user(void) {
+ // Empty
+};
diff --git a/keyboards/kprepublic/jj40/keymaps/cockpit/readme.md b/keyboards/kprepublic/jj40/keymaps/cockpit/readme.md
new file mode 100644
index 0000000000..766a3c93b2
--- /dev/null
+++ b/keyboards/kprepublic/jj40/keymaps/cockpit/readme.md
@@ -0,0 +1,55 @@
+# Cockpit custom layout
+
+> This configuration is built around Lithuanian keyboard layout, but you can easily modify it to fit your needs
+
+## Layers
+
+### Default QWERTY
+
+| | | | | | | | | | | | |
+| :-------: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :-------: |
+| <br>Esc | Q<br>q | W<br>w | E<br>e | R<br>r | T<br>t | Y<br>y | U<br>u | I<br>i | O<br>o | P<br>p | <br>Bksp |
+| <br>Tab | A<br>a | S<br>s | D<br>d | F<br>f | G<br>g | H<br>h | J<br>j | K<br>k | L<br>l | :<br>; | "<br>' |
+| <br>Shift | Z<br>z | X<br>x | C<br>c | V<br>v | B<br>b | N<br>n | M<br>m | <<br>, | ><br>. | ?<br>/ | <br>Enter |
+| Ctrl | Fn | GUI | Alt | Lower | Sp | ace | Raise | Left | Down | Up | Right |
+
+### Lower
+
+| | | | | | | | | | | | |
+| :-------: | :----: | :----: | :----: | :-------: | :----: | :----: | :----: | :----: | :----: | :-----: | :------: |
+| ~<br>\` | Ą<br>ą | Č<br>č | Ę<br>ę | Ė<br>ė | Į<br>į | Š<br>š | Ų<br>ų | Ū<br>ū | Ž<br>ž | \_<br>- | <br>Bksp |
+| <br>Tab | <br>! | <br>@ | <br># | <br>\$ | <br>% | <br>^ | <br>& | <br>\* | <br>( | <br>) | <br>Del |
+| <br>Shift | <br>= | <br>+ | <br>- | <br>\| | {<br>[ | }<br>] | <br>< | <br>> | <br>{ | <br>} | <br>Ins |
+| Ctrl | | | Alt | **Lower** | Sp | ace | | Home | PgDn | PgUp | End |
+
+### Raise
+
+| | | | | | | | | | | | |
+| :-------: | :-----: | :-----: | :----: | :-----: | :----: | :----: | :-------: | :-----: | :----: | :----: | :-------: |
+| ~<br>\` | !<br>1 | @<br>2 | #<br>3 | \$<br>4 | %<br>5 | ^<br>6 | &<br>7 | \*<br>8 | (<br>9 | )<br>0 | <br>Bksp |
+| <br>Tab | \$<br>4 | %<br>5 | ^<br>6 | | | | | | | | \|<br>\ |
+| <br>Shift | &<br>7 | \*<br>8 | (<br>9 | )<br>0 | | | | <<br>, | ><br>. | ?<br>/ | <br>Enter |
+| Ctrl | | | Alt | | Sp | ace | **Raise** | Left | Down | Up | Right |
+
+### Function
+
+- Backlight breathing does not work.
+- **Term** button is bound to `Calculator`. I have set this button as a shortcut to open a terminal.
+- **Lock** is a shortcut for `Alt + L`
+
+| | | | | | | | | | | | |
+| :-------: | :---------: | :---------: | :---------: | :---------: | :--------: | :----------: | :--------: | :----: | :---------: | :-----: | :------: |
+| <br>F1 | <br>F2 | <br>F3 | <br>F4 | <br>F5 | <br>F6 | <br>F7 | <br>F8 | <br>F9 | <br>F10 | <br>F11 | <br>F12 |
+| <br>Caps | RGB<br>Togl | RGB<br>Hue+ | RGB<br>Sat+ | RGB<br>Brt+ | BL<br>Togl | BL<br>Breath | BL<br>Brt+ | | Scr<br>Brt+ | | <br>Vol+ |
+| <br>Shift | <br>Term | RGB<br>Hue- | RGB<br>Sat- | RGB<br>Brt- | WWW<br>< | WWW<br>> | BL<br>Brt- | | Scr<br>Brt- | PrScr | <br>Vol- |
+| Ctrl | **Fn** | RGB<br>Mode | Alt | | Sp | ace | MPrev | MStop | MNext | MPlay | Lock |
+
+## Usage
+
+```bash
+cd qmk_firmware
+make jj40:cockpit
+bootloadHID .build/jj40_cockpit.hex
+```
+
+_if you're getting permission errors use sudo_
diff --git a/keyboards/kprepublic/jj40/keymaps/default/keymap.c b/keyboards/kprepublic/jj40/keymaps/default/keymap.c
new file mode 100644
index 0000000000..f54eac20af
--- /dev/null
+++ b/keyboards/kprepublic/jj40/keymaps/default/keymap.c
@@ -0,0 +1,104 @@
+/* Copyright 2019
+ *
+ * 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 layers {
+ _QWERTY = 0,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|