aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/jj50/README.md10
-rw-r--r--keyboards/jj50/config.h13
-rw-r--r--keyboards/jj50/jj50.h8
-rw-r--r--keyboards/jj50/keymaps/default/README.md117
-rw-r--r--keyboards/jj50/keymaps/default/keymap.c222
-rw-r--r--keyboards/jj50/rules.mk25
-rw-r--r--keyboards/readme.md1
7 files changed, 292 insertions, 104 deletions
diff --git a/keyboards/jj50/README.md b/keyboards/jj50/README.md
index 2d3e711be..9719f01ec 100644
--- a/keyboards/jj50/README.md
+++ b/keyboards/jj50/README.md
@@ -1,10 +1,12 @@
1# JJ50 1# JJ50
2 2
3A preonic-like board 3![JJ50 + SA Vilebloom (w/ Sakurios) by u/rendleshift](https://i.imgur.com/SwYZ4wol.jpg)
4 4
5* Keyboard Maintainer: [Wayne K. Jones](github.com/WarmCatUK) 5A compact 50% (5x12) ortholinear keyboard made and sold by KPrepublic.
6* Hardware Supported: JJ50 with the ATmega32a chip. 6
7* Hardware Availability: [KPrepublic on AliExpress](https://www.aliexpress.com/item/jj50-v1-0-Custom-Mechanical-Keyboard-50-PCB-programmed-50-preonic-layouts-bface-firmware-with-rgb/32848915277.html) 7* Keyboard Maintainer: [QMK Community](https://github.com/qmk)
8* Hardware Supported: Atmega32A
9* Hardware Availability: [AliExpress](https://www.aliexpress.com/item/jj50-v1-0-Custom-Mechanical-Keyboard-50-PCB-programmed-50-preonic-layouts-bface-firmware-with-rgb/32848915277.html); [KPrepublic](https://kprepublic.com/collections/jj50-50/products/jj50-50-custom-keyboard-pcb-similar-with-preonic)
8 10
9Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
10 12
diff --git a/keyboards/jj50/config.h b/keyboards/jj50/config.h
index 8453f5588..a1840919e 100644
--- a/keyboards/jj50/config.h
+++ b/keyboards/jj50/config.h
@@ -2,6 +2,7 @@
2Base Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com> 2Base Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
3Modified 2017 Andrew Novak <ndrw.nvk@gmail.com> 3Modified 2017 Andrew Novak <ndrw.nvk@gmail.com>
4Modified 2018 Wayne Jones (WarmCatUK) <waynekjones@gmail.com> 4Modified 2018 Wayne Jones (WarmCatUK) <waynekjones@gmail.com>
5Modified 2020 Guillaume Gérard
5 6
6This program is free software: you can redistribute it and/or modify 7This program is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by 8it under the terms of the GNU General Public License as published by
@@ -17,17 +18,16 @@ You should have received a copy of the GNU General Public License
17along with this program. If not, see <http://www.gnu.org/licenses/>. 18along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/ 19*/
19 20
20#ifndef CONFIG_H 21#pragma once
21#define CONFIG_H
22 22
23#include "config_common.h" 23#include "config_common.h"
24 24
25#define VENDOR_ID 0x20A0 25#define VENDOR_ID 0x4B50 // "KP"
26#define PRODUCT_ID 0x422D 26#define PRODUCT_ID 0x0050
27#define DEVICE_VER 0x0200 27#define DEVICE_VER 0x0200
28#define MANUFACTURER KPrepublic 28#define MANUFACTURER KPrepublic
29#define PRODUCT JJ50 29#define PRODUCT JJ50
30#define DESCRIPTION Preonic-like clone 30#define DESCRIPTION A compact 50% (5x12) ortholinear keyboard
31 31
32/* matrix size */ 32/* matrix size */
33#define MATRIX_ROWS 5 33#define MATRIX_ROWS 5
@@ -38,6 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
38 38
39#define BACKLIGHT_PIN D4 39#define BACKLIGHT_PIN D4
40#define BACKLIGHT_LEVELS 12 40#define BACKLIGHT_LEVELS 12
41#define BACKLIGHT_BREATHING
41 42
42#define RGB_DI_PIN E2 43#define RGB_DI_PIN E2
43#define RGBLED_NUM 12 44#define RGBLED_NUM 12
@@ -45,5 +46,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
45#define RGBLIGHT_HUE_STEP 12 46#define RGBLIGHT_HUE_STEP 12
46#define RGBLIGHT_SAT_STEP 15 47#define RGBLIGHT_SAT_STEP 15
47#define RGBLIGHT_VAL_STEP 18 48#define RGBLIGHT_VAL_STEP 18
48
49#endif
diff --git a/keyboards/jj50/jj50.h b/keyboards/jj50/jj50.h
index 6b1c7eacf..59d5c6409 100644
--- a/keyboards/jj50/jj50.h
+++ b/keyboards/jj50/jj50.h
@@ -17,13 +17,9 @@ You should have received a copy of the GNU General Public License
17along with this program. If not, see <http://www.gnu.org/licenses/>. 17along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/ 18*/
19 19
20#ifndef KEYMAP_COMMON_H 20#pragma once
21#define KEYMAP_COMMON_H
22 21
23#include "quantum.h" 22#include "quantum.h"
24#include "quantum_keycodes.h"
25#include "keycode.h"
26#include "action.h"
27 23
28#define LAYOUT_ortho_5x12( \ 24#define LAYOUT_ortho_5x12( \
29 K011, K010, K009, K008, K004, K005, K006, K007, K003, K002, K201, K000, \ 25 K011, K010, K009, K008, K004, K005, K006, K007, K003, K002, K201, K000, \
@@ -40,5 +36,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
40} 36}
41 37
42#define LAYOUT LAYOUT_ortho_5x12 38#define LAYOUT LAYOUT_ortho_5x12
43
44#endif
diff --git a/keyboards/jj50/keymaps/default/README.md b/keyboards/jj50/keymaps/default/README.md
new file mode 100644
index 000000000..49622dd29
--- /dev/null
+++ b/keyboards/jj50/keymaps/default/README.md
@@ -0,0 +1,117 @@
1# JJ50 default keymaps
2
3## Base layers
4
5### Qwerty
6
7```
8,-----------------------------------------------------------------------------------.
9| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
10|------+------+------+------+------+------+------+------+------+------+------+------|
11| Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
12|------+------+------+------+------+-------------+------+------+------+------+------|
13| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
14|------+------+------+------+------+------|------+------+------+------+------+------|
15| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
16|------+------+------+------+------+------+------+------+------+------+------+------|
17| FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
18`-----------------------------------------------------------------------------------'
19```
20
21### Colemak
22
23```
24,-----------------------------------------------------------------------------------.
25| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
26|------+------+------+------+------+------+------+------+------+------+------+------|
27| Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
28|------+------+------+------+------+-------------+------+------+------+------+------|
29| Esc | A | R | S | T | D | H | N | E | I | O | ' |
30|------+------+------+------+------+------|------+------+------+------+------+------|
31| Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
32|------+------+------+------+------+------+------+------+------+------+------+------|
33| FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
34`-----------------------------------------------------------------------------------'
35```
36
37### Dvorak
38
39```
40,-----------------------------------------------------------------------------------.
41| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
42|------+------+------+------+------+------+------+------+------+------+------+------|
43| Tab | ' | , | . | P | Y | F | G | C | R | L | Del |
44|------+------+------+------+------+-------------+------+------+------+------+------|
45| Esc | A | O | E | U | I | D | H | T | N | S | / |
46|------+------+------+------+------+------|------+------+------+------+------+------|
47| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
48|------+------+------+------+------+------+------+------+------+------+------+------|
49| FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
50`-----------------------------------------------------------------------------------'
51```
52
53## Momentarily Layers
54
55### Lower
56
57```
58,-----------------------------------------------------------------------------------.
59| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
60|------+------+------+------+------+-------------+------+------+------+------+------|
61| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
62|------+------+------+------+------+-------------+------+------+------+------+------|
63| Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
64|------+------+------+------+------+------|------+------+------+------+------+------|
65| | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
66|------+------+------+------+------+------+------+------+------+------+------+------|
67| | | | | | | | Next | Vol- | Vol+ | Play |
68`-----------------------------------------------------------------------------------'
69```
70
71### Raise
72
73```
74,-----------------------------------------------------------------------------------.
75| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
76|------+------+------+------+------+------+------+------+------+------+------+------|
77| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
78|------+------+------+------+------+-------------+------+------+------+------+------|
79| Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
80|------+------+------+------+------+------|------+------+------+------+------+------|
81| | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| |
82|------+------+------+------+------+------+------+------+------+------+------+------|
83| | | | | | | | Next | Vol- | Vol+ | Play |
84`-----------------------------------------------------------------------------------'
85```
86
87### Adjust (Lower + Raise)
88
89```
90,-----------------------------------------------------------------------------------.
91| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
92|------+------+------+------+------+------+------+------+------+------+------+------|
93| | Reset| | | | | | | | | | Del |
94|------+------+------+------+------+-------------+------+------+------+------+------|
95| | | | | | | |Qwerty|Colemk|Dvorak| | |
96|------+------+------+------+------+------|------+------+------+------+------+------|
97| | | | | | | | | | | | |
98|------+------+------+------+------+------+------+------+------+------+------+------|
99| | | | | | | | | | | |
100`-----------------------------------------------------------------------------------'
101```
102
103### Fn (rgblight and backlight layout)
104
105```
106,-----------------------------------------------------------------------------------.
107| | | | | | | | | | | | |
108|------+------+------+------+------+------+------+------+------+------+------+------|
109| | | | | | | | | |RGBVA-|RGBVA+| |
110|------+------+------+------+------+------+------+------+------+------+------+------|
111| | | | | | | | | |RGBSA-|RGBSA+| |
112|------+------+------+------+------+------+------+------+------+------+------+------|
113| | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD|
114|------+------+------+------+------+------+------+------+------+------+------+------|
115| | | | | | | |BLTOGG| BL- | BL+ |BLBRTG|
116`-----------------------------------------------------------------------------------'
117```
diff --git a/keyboards/jj50/keymaps/default/keymap.c b/keyboards/jj50/keymaps/default/keymap.c
index d5334d495..29db0e265 100644
--- a/keyboards/jj50/keymaps/default/keymap.c
+++ b/keyboards/jj50/keymaps/default/keymap.c
@@ -1,7 +1,5 @@
1/* 1/*
2Base Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com> 2Copyright 2020 Guillaume Gérard
3Modified 2017 Andrew Novak <ndrw.nvk@gmail.com>
4Modified 2018 Wayne Jones (WarmCatUK) <waynekjones@gmail.com>
5 3
6This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by 5it under the terms of the GNU General Public License as published by
@@ -19,117 +17,197 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19 17
20#include QMK_KEYBOARD_H 18#include QMK_KEYBOARD_H
21 19
22#define ______ KC_TRNS 20enum layers {
23#define _DEFLT 0 21 _QWERTY,
24#define _RAISE 1 22 _COLEMAK,
25#define _LOWER 2 23 _DVORAK,
26#define _FN 3 24 _LOWER,
27 25 _RAISE,
28enum custom_keycodes { 26 _ADJUST,
29 P_MACRO = SAFE_RANGE 27 _FN
30}; 28};
31 29
32// GBP £ Macro (sends alt 156 - windows users only) 30enum keycodes {
33bool process_record_user(uint16_t keycode, keyrecord_t *record) { 31 QWERTY = SAFE_RANGE,
34 if (record->event.pressed) { 32 COLEMAK,
35 switch(keycode) { 33 DVORAK
36 case P_MACRO:
37 SEND_STRING(SS_DOWN(X_LALT));
38 SEND_STRING(SS_TAP(X_KP_1));
39 SEND_STRING(SS_TAP(X_KP_5));
40 SEND_STRING(SS_TAP(X_KP_6));
41 SEND_STRING(SS_UP(X_LALT));
42 return false; break;
43 }
44 }
45 return true;
46}; 34};
47 35
36#define FN MO(_FN)
37#define LOWER MO(_LOWER)
38#define RAISE MO(_RAISE)
39
48const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
49 41
50 /* Qwerty 42 /* Qwerty
51 * ,-----------------------------------------------------------------------------------. 43 * ,-----------------------------------------------------------------------------------.
52 * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | 44 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
53 * |------+------+------+------+------+------+------+------+------+------+------+------|
54 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
55 * |------+------+------+------+------+------+------+------+------+------+------+------| 45 * |------+------+------+------+------+------+------+------+------+------+------+------|
56 * | Esc | A | S | D | F | G | H | J | K | L | ; | " | 46 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
47 * |------+------+------+------+------+-------------+------+------+------+------+------|
48 * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
49 * |------+------+------+------+------+------|------+------+------+------+------+------|
50 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
57 * |------+------+------+------+------+------+------+------+------+------+------+------| 51 * |------+------+------+------+------+------+------+------+------+------+------+------|
58 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | (Hold for shift / tap for enter) 52 * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
59 * |------+------+------+------+------+------+------+------+------+------+------+------|
60 * | _FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
61 * `-----------------------------------------------------------------------------------' 53 * `-----------------------------------------------------------------------------------'
62 */ 54 */
63 [_DEFLT] = LAYOUT( \ 55 [_QWERTY] = LAYOUT(
64 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ 56 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
65 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ 57 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
66 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ 58 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
67 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT),\ 59 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
68 MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER),KC_SPC,KC_SPC,MO(_RAISE),KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ 60 FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
69 ), 61 ),
70 62
71 /* Raise 63 /* Colemak
72 * ,-----------------------------------------------------------------------------------. 64 * ,-----------------------------------------------------------------------------------.
73 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | 65 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
74 * |------+------+------+------+------+------+------+------+------+------+------+------| 66 * |------+------+------+------+------+------+------+------+------+------+------+------|
75 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | 67 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
68 * |------+------+------+------+------+-------------+------+------+------+------+------|
69 * | Esc | A | R | S | T | D | H | N | E | I | O | ' |
70 * |------+------+------+------+------+------|------+------+------+------+------+------|
71 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
76 * |------+------+------+------+------+------+------+------+------+------+------+------| 72 * |------+------+------+------+------+------+------+------+------+------+------+------|
77 * | | | | | | | | | | [ | ] | \ | 73 * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
74 * `-----------------------------------------------------------------------------------'
75 */
76 [_COLEMAK] = LAYOUT(
77 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
78 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
79 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
80 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
81 FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
82 ),
83
84 /* Dvorak
85 * ,-----------------------------------------------------------------------------------.
86 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
78 * |------+------+------+------+------+------+------+------+------+------+------+------| 87 * |------+------+------+------+------+------+------+------+------+------+------+------|
79 * | | | | | | | |ISO # |ISO / | PUP | PDN | | 88 * | Tab | ' | , | . | P | Y | F | G | C | R | L | Del |
89 * |------+------+------+------+------+-------------+------+------+------+------+------|
90 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
91 * |------+------+------+------+------+------|------+------+------+------+------+------|
92 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
80 * |------+------+------+------+------+------+------+------+------+------+------+------| 93 * |------+------+------+------+------+------+------+------+------+------+------+------|
81 * | | | | | | | | Next | Vol- | Vol+ | Play | 94 * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
82 * `-----------------------------------------------------------------------------------' 95 * `-----------------------------------------------------------------------------------'
83 */ 96 */
84 97 [_DVORAK] = LAYOUT(
85 [_RAISE] = LAYOUT( \ 98 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
86 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ 99 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL,
87 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ 100 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
88 RESET, BL_INC, RGB_SAI, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, \ 101 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT,
89 _______, BL_DEC, _______, _______, _______, _______, _______, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \ 102 FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
90 RGB_TOG, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
91 ), 103 ),
92 104
93 /* Lower 105 /* Lower
94 * ,-----------------------------------------------------------------------------------. 106 * ,-----------------------------------------------------------------------------------.
95 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | 107 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
96 * |------+------+------+------+------+------+------+------+------+------+------+------| 108 * |------+------+------+------+------+-------------+------+------+------+------+------|
97 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | 109 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
110 * |------+------+------+------+------+-------------+------+------+------+------+------|
111 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
112 * |------+------+------+------+------+------|------+------+------+------+------+------|
113 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
98 * |------+------+------+------+------+------+------+------+------+------+------+------| 114 * |------+------+------+------+------+------+------+------+------+------+------+------|
99 * | | | | | | | | | | { | } | | | 115 * | | | | | | | | Next | Vol- | Vol+ | Play |
116 * `-----------------------------------------------------------------------------------'
117 */
118 [_LOWER] = LAYOUT(
119 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
120 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
121 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
122 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
123 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
124 ),
125
126 /* Raise
127 * ,-----------------------------------------------------------------------------------.
128 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
100 * |------+------+------+------+------+------+------+------+------+------+------+------| 129 * |------+------+------+------+------+------+------+------+------+------+------+------|
101 * | | | | | | | |ISO ~ |ISO | | HOM | END | | 130 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
131 * |------+------+------+------+------+-------------+------+------+------+------+------|
132 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
133 * |------+------+------+------+------+------|------+------+------+------+------+------|
134 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| |
102 * |------+------+------+------+------+------+------+------+------+------+------+------| 135 * |------+------+------+------+------+------+------+------+------+------+------+------|
103 * | | | | | | | | Next | Vol- | Vol+ | Play | 136 * | | | | | | | | Next | Vol- | Vol+ | Play |
104 * `-----------------------------------------------------------------------------------' 137 * `-----------------------------------------------------------------------------------'
105 */ 138 */
106 139 [_RAISE] = LAYOUT(
107 [_LOWER] = LAYOUT( \ 140 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
108 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ 141 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
109 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ 142 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
110 RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_PIPE, \ 143 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
111 _______, _______, _______, _______, _______, _______, _______,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \ 144 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
112 BL_STEP, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
113 ), 145 ),
114 146
115 /* Fn 147 /* Adjust (Lower + Raise)
116 * ,-----------------------------------------------------------------------------------. 148 * ,-----------------------------------------------------------------------------------.
117 * | | | £ | | | | | | | | | | 149 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
118 * |------+------+------+------+------+------+------+------+------+------+------+------| 150 * |------+------+------+------+------+------+------+------+------+------+------+------|
151 * | | Reset| | | | | | | | | | Del |
152 * |------+------+------+------+------+-------------+------+------+------+------+------|
153 * | | | | | | | |Qwerty|Colemk|Dvorak| | |
154 * |------+------+------+------+------+------|------+------+------+------+------+------|
119 * | | | | | | | | | | | | | 155 * | | | | | | | | | | | | |
120 * |------+------+------+------+------+------+------+------+------+------+------+------| 156 * |------+------+------+------+------+------+------+------+------+------+------+------|
157 * | | | | | | | | | | | |
158 * `-----------------------------------------------------------------------------------'
159 */
160 [_ADJUST] = LAYOUT(
161 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
162 _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
163 _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______,
164 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
165 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
166 ),
167
168 /* Fn (rgblight and backlight layout)
169 * ,-----------------------------------------------------------------------------------.
121 * | | | | | | | | | | | | | 170 * | | | | | | | | | | | | |
122 * |------+------+------+------+------+------+------+------+------+------+------+------| 171 * |------+------+------+------+------+------+------+------+------+------+------+------|
123 * | | | | | | | | | | | | | 172 * | | | | | | | | | |RGBVA-|RGBVA+| |
173 * |------+------+------+------+------+------+------+------+------+------+------+------|
174 * | | | | | | | | | |RGBSA-|RGBSA+| |
124 * |------+------+------+------+------+------+------+------+------+------+------+------| 175 * |------+------+------+------+------+------+------+------+------+------+------+------|
125 * | | | | | | | | |BL_OFF|BL_DEC|BL_INC|BL_ON | 176 * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD|
177 * |------+------+------+------+------+------+------+------+------+------+------+------|
178 * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG|
126 * `-----------------------------------------------------------------------------------' 179 * `-----------------------------------------------------------------------------------'
127 */ 180 */
128 [_FN] = LAYOUT( \ 181 [_FN] = LAYOUT(
129 _______, _______, P_MACRO, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 182 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
130 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 183 _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______,
131 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 184 _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______,
132 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 185 _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD,
133 _______, _______, _______, _______, _______, _______, _______, _______, BL_OFF, BL_DEC, BL_INC, BL_ON \ 186 _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG
134 ) 187 )
135}; 188};
189
190layer_state_t layer_state_set_user(layer_state_t state) {
191 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
192}
193
194bool process_record_user(uint16_t keycode, keyrecord_t *record) {
195 switch (keycode) {
196 case QWERTY:
197 if (record->event.pressed) {
198 set_single_persistent_default_layer(_QWERTY);
199 }
200 return false;
201 case COLEMAK:
202 if (record->event.pressed) {
203 set_single_persistent_default_layer(_COLEMAK);
204 }
205 return false;
206 case DVORAK:
207 if (record->event.pressed) {
208 set_single_persistent_default_layer(_DVORAK);
209 }
210 return false;
211 }
212 return true;
213};
diff --git a/keyboards/jj50/rules.mk b/keyboards/jj50/rules.mk
index 73be71d35..8f78a7674 100644
--- a/keyboards/jj50/rules.mk
+++ b/keyboards/jj50/rules.mk
@@ -12,19 +12,16 @@ MCU = atmega32a
12BOOTLOADER = bootloadHID 12BOOTLOADER = bootloadHID
13 13
14# build options 14# build options
15BOOTMAGIC_ENABLE = yes 15BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
16MOUSEKEY_ENABLE = no 16MOUSEKEY_ENABLE = no # Mouse keys
17EXTRAKEY_ENABLE = yes 17EXTRAKEY_ENABLE = yes # Audio control and System control
18CONSOLE_ENABLE = no 18CONSOLE_ENABLE = no # Console for debug
19COMMAND_ENABLE = yes 19COMMAND_ENABLE = no # Commands for debug and configuration
20BACKLIGHT_ENABLE = yes 20NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
21RGBLIGHT_ENABLE = yes 21BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
22WS2812_DRIVER = i2c 22RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
23NKRO_ENABLE = no 23WS2812_DRIVER = i2c # This driver powers the RGB Lighting and RGB Matrix features
24# Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 24SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
25 25LTO_ENABLE = yes # Enable link time optimization
26KEY_LOCK_ENABLE = yes
27# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
28SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
29 26
30LAYOUTS = ortho_5x12 27LAYOUTS = ortho_5x12
diff --git a/keyboards/readme.md b/keyboards/readme.md
index db2a18cc9..30f856847 100644
--- a/keyboards/readme.md
+++ b/keyboards/readme.md
@@ -45,6 +45,7 @@ These keyboards are part of the QMK repository, but their manufacturers are not
45* [Infinity 60%](/keyboards/infinity60) - &mdash; Compact community keyboard by Input Club. 45* [Infinity 60%](/keyboards/infinity60) - &mdash; Compact community keyboard by Input Club.
46* [JD45](/keyboards/jd45) &mdash; Another Geekhack community project, designed by jdcarpe. 46* [JD45](/keyboards/jd45) &mdash; Another Geekhack community project, designed by jdcarpe.
47* [JJ40](/keyboards/jj40) &mdash; ps2avrGB based ortholinear sold by KPrepublic 47* [JJ40](/keyboards/jj40) &mdash; ps2avrGB based ortholinear sold by KPrepublic
48* [JJ50](/keyboards/jj50) &mdash; A compact 50% (5x12) ortholinear keyboard sold by KPrepublic.
48* [KBD75](/keyboards/kbd75) &mdash; A 75% keyboard made by made by KBDFans. 49* [KBD75](/keyboards/kbd75) &mdash; A 75% keyboard made by made by KBDFans.
49* [KC60](/keyboards/kc60) &mdash; A programmable Chinese-made keyboard, lost in the mists of time. 50* [KC60](/keyboards/kc60) &mdash; A programmable Chinese-made keyboard, lost in the mists of time.
50* [Kinesis Advantage](/keyboards/kinesis) &mdash; Contoured ergonomic keyboard by Kinesis Computer Ergonomics. 51* [Kinesis Advantage](/keyboards/kinesis) &mdash; Contoured ergonomic keyboard by Kinesis Computer Ergonomics.