aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2Moons-JP <57225836+2Moons-JP@users.noreply.github.com>2020-03-25 18:25:10 +0900
committerGitHub <noreply@github.com>2020-03-25 10:25:10 +0100
commitde58b0765954ed8fc9bb800f389808fb7eee6eda (patch)
treeb8f3c7d0e7c0a90f10f9476cf8ac1b99eb625f30
parent6ceaae30f519b63b4b56e0277dd459cccf2d0729 (diff)
downloadqmk_firmware-de58b0765954ed8fc9bb800f389808fb7eee6eda.tar.gz
qmk_firmware-de58b0765954ed8fc9bb800f389808fb7eee6eda.zip
Slice Keyboard (#8464)
* Adding Slice Keyboard * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * Update config.h * Update keyboards/basekeys/slice/slice.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/slice.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update and rename rev1.c to rev1_rgb.c * Rename rev1.h to rev1_rgb.h * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/slice_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/slice_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * slice_font location * Update config.h * Delete slice_font.c * Update config.h * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1_rgb/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keymap.c * oled rotation, config handedness * OLED and LED functionality removed * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update keymap.c * Update keymap.c * oled rotation, config handedness * rev1 added EE_HANDS * oled function name * oled function name * oled function name * Update keyboards/basekeys/slice/rev1_rgb/rules.mk Co-Authored-By: Joel Challis <git@zvecr.com> * keymap changes * Delete _font.c * keymap changes, VID/PID * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * split_util.h used Co-authored-by: Erovia <Erovia@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
-rw-r--r--keyboards/basekeys/slice/config.h21
-rw-r--r--keyboards/basekeys/slice/keymaps/default/config.h22
-rw-r--r--keyboards/basekeys/slice/keymaps/default/keymap.c131
-rw-r--r--keyboards/basekeys/slice/keymaps/default_split_left_space/config.h22
-rw-r--r--keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c131
-rw-r--r--keyboards/basekeys/slice/readme.md17
-rw-r--r--keyboards/basekeys/slice/rev1/config.h52
-rw-r--r--keyboards/basekeys/slice/rev1/info.json21
-rw-r--r--keyboards/basekeys/slice/rev1/keymaps/2moons/config.h23
-rw-r--r--keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c180
-rw-r--r--keyboards/basekeys/slice/rev1/keymaps/2moons/rules.mk1
-rw-r--r--keyboards/basekeys/slice/rev1/keymaps/default_all/config.h22
-rw-r--r--keyboards/basekeys/slice/rev1/keymaps/default_all/keymap.c62
-rw-r--r--keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/config.h22
-rw-r--r--keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/keymap.c61
-rw-r--r--keyboards/basekeys/slice/rev1/rev1.c1
-rw-r--r--keyboards/basekeys/slice/rev1/rev1.h105
-rw-r--r--keyboards/basekeys/slice/rev1/rules.mk29
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/config.h67
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/info.json15
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/config.h23
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c221
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/rules.mk2
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/rev1_rgb.c1
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/rev1_rgb.h65
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/rules.mk31
-rw-r--r--keyboards/basekeys/slice/slice.c1
-rw-r--r--keyboards/basekeys/slice/slice.h10
-rw-r--r--keyboards/basekeys/slice/slice_font.c232
29 files changed, 1591 insertions, 0 deletions
diff --git a/keyboards/basekeys/slice/config.h b/keyboards/basekeys/slice/config.h
new file mode 100644
index 000000000..cfb6bf4ff
--- /dev/null
+++ b/keyboards/basekeys/slice/config.h
@@ -0,0 +1,21 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21#include "config_common.h"
diff --git a/keyboards/basekeys/slice/keymaps/default/config.h b/keyboards/basekeys/slice/keymaps/default/config.h
new file mode 100644
index 000000000..d3acebb7e
--- /dev/null
+++ b/keyboards/basekeys/slice/keymaps/default/config.h
@@ -0,0 +1,22 @@
1/* Copyright 2020 2Moons
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Select hand configuration */
20
21#define TAPPING_FORCE_HOLD
22#define TAPPING_TERM 180
diff --git a/keyboards/basekeys/slice/keymaps/default/keymap.c b/keyboards/basekeys/slice/keymaps/default/keymap.c
new file mode 100644
index 000000000..d6e5cefae
--- /dev/null
+++ b/keyboards/basekeys/slice/keymaps/default/keymap.c
@@ -0,0 +1,131 @@
1#include QMK_KEYBOARD_H
2#include "split_util.h"
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7enum layer_number {
8 _QWERTY = 0,
9 _FN,
10 _ADJUST,
11};
12
13enum custom_keycodes {
14 RGB_RST = SAFE_RANGE
15};
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [_QWERTY] = LAYOUT(
19 //,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
20 KC_ESC, KC_GRAVE, 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_BSPACE,
21 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
22 RGB_MODE_FORWARD, 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,
23 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
24 RGB_MODE_GRADIENT, 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,
25 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
26 RGB_MODE_XMAS, 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, KC_RSFT,
27 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
28 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
29 //`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
30 ),
31
32 [_FN] = LAYOUT(
33 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
34 KC_ESC, TG(_ADJUST), 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_BSPACE,
35 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
36 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, _______, _______, _______,
37 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
38 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______, _______,
39 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
40 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______,
41 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
43 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
44 ),
45
46 [_ADJUST] = LAYOUT( /* Base */
47 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
48 XXXXXXX,TG(_ADJUST),XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
49 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
50 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
51 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
52 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
53 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
54 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
55 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
57 //`-----------------------------------------------------------------| |---------------------------------------------------------------------------'
58 )
59
60};
61
62
63int RGB_current_mode;
64bool process_record_user(uint16_t keycode, keyrecord_t *record) {
65 bool result = false;
66 switch (keycode) {
67 #ifdef RGBLIGHT_ENABLE
68 case RGB_MOD:
69 if (record->event.pressed) {
70 rgblight_mode(RGB_current_mode);
71 rgblight_step();
72 RGB_current_mode = rgblight_get_mode();
73 }
74 break;
75 case RGB_RST:
76 if (record->event.pressed) {
77 eeconfig_update_rgblight_default();
78 rgblight_enable();
79 RGB_current_mode = rgblight_get_mode();
80 }
81 break;
82 #endif
83 default:
84 result = true;
85 break;
86 }
87
88 return result;
89}
90
91#ifdef OLED_DRIVER_ENABLE
92
93const char *read_logo(void) {
94 static char logo[] = {
95 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
96 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
97 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
98 0};
99 return logo;
100}
101
102oled_rotation_t oled_init_user(oled_rotation_t rotation) {
103 return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
104}
105
106void oled_task_user(void) {
107 if (is_keyboard_master()) {
108 // Host Keyboard Layer Status
109 oled_write_P(PSTR("Layer: "), false);
110 switch (get_highest_layer(layer_state)) {
111 case _QWERTY:
112 oled_write_P(PSTR("Default\n"), false);
113 break;
114 case _FN:
115 oled_write_P(PSTR("Function\n"), false);
116 break;
117 default:
118 // Or use the write_ln shortcut over adding '\n' to the end of your string
119 oled_write_ln_P(PSTR("Undefined"), false);
120 }
121
122 // Host Keyboard LED Status
123 led_t led_usb_state = host_keyboard_led_state();
124 oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
125 oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
126 oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
127 } else {
128 oled_write(read_logo(), false);
129 }
130}
131#endif
diff --git a/keyboards/basekeys/slice/keymaps/default_split_left_space/config.h b/keyboards/basekeys/slice/keymaps/default_split_left_space/config.h
new file mode 100644
index 000000000..d3acebb7e
--- /dev/null
+++ b/keyboards/basekeys/slice/keymaps/default_split_left_space/config.h
@@ -0,0 +1,22 @@
1/* Copyright 2020 2Moons
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Select hand configuration */
20
21#define TAPPING_FORCE_HOLD
22#define TAPPING_TERM 180
diff --git a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c
new file mode 100644
index 000000000..40d55bdc6
--- /dev/null
+++ b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c
@@ -0,0 +1,131 @@
1#include QMK_KEYBOARD_H
2#include "split_util.h"
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7enum layer_number {
8 _QWERTY = 0,
9 _FN,
10 _ADJUST,
11};
12
13enum custom_keycodes {
14 RGB_RST = SAFE_RANGE
15};
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 [_QWERTY] = LAYOUT_split_left_space(
19 //,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
20 KC_ESC, KC_GRAVE, 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_BSPACE,
21 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
22 RGB_MODE_FORWARD, 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,
23 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
24 RGB_MODE_GRADIENT, 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,
25 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
26 RGB_MODE_XMAS, 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, KC_RSFT,
27 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
28 RGB_TOG, KC_LCTL,KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
29 //`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
30 ),
31
32 [_FN] = LAYOUT_split_left_space(
33 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
34 KC_ESC, TG(_ADJUST), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
35 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
36 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, _______, _______, _______,
37 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
38 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, _______,
39 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
40 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______,
41 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
43 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
44 ),
45
46 [_ADJUST] = LAYOUT_split_left_space( /* Base */
47 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
48 XXXXXXX, TG(_ADJUST), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
49 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
50 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
51 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
52 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
53 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
54 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
55 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
57 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
58 )
59
60};
61
62
63int RGB_current_mode;
64bool process_record_user(uint16_t keycode, keyrecord_t *record) {
65 bool result = false;
66 switch (keycode) {
67 #ifdef RGBLIGHT_ENABLE
68 case RGB_MOD:
69 if (record->event.pressed) {
70 rgblight_mode(RGB_current_mode);
71 rgblight_step();
72 RGB_current_mode = rgblight_get_mode();
73 }
74 break;
75 case RGB_RST:
76 if (record->event.pressed) {
77 eeconfig_update_rgblight_default();
78 rgblight_enable();
79 RGB_current_mode = rgblight_get_mode();
80 }
81 break;
82 #endif
83 default:
84 result = true;
85 break;
86 }
87
88 return result;
89}
90
91#ifdef OLED_DRIVER_ENABLE
92
93const char *read_logo(void) {
94 static char logo[] = {
95 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
96 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
97 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
98 0};
99 return logo;
100}
101
102oled_rotation_t oled_init_user(oled_rotation_t rotation) {
103 return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
104}
105
106void oled_task_user(void) {
107 if (is_keyboard_master()) {
108 // Host Keyboard Layer Status
109 oled_write_P(PSTR("Layer: "), false);
110 switch (get_highest_layer(layer_state)) {
111 case _QWERTY:
112 oled_write_P(PSTR("Default\n"), false);
113 break;
114 case _FN:
115 oled_write_P(PSTR("Function\n"), false);
116 break;
117 default:
118 // Or use the write_ln shortcut over adding '\n' to the end of your string
119 oled_write_ln_P(PSTR("Undefined"), false);
120 }
121
122 // Host Keyboard LED Status
123 led_t led_usb_state = host_keyboard_led_state();
124 oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
125 oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
126 oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
127 } else {
128 oled_write(read_logo(), false);
129 }
130}
131#endif
diff --git a/keyboards/basekeys/slice/readme.md b/keyboards/basekeys/slice/readme.md
new file mode 100644
index 000000000..65939d64d
--- /dev/null
+++ b/keyboards/basekeys/slice/readme.md
@@ -0,0 +1,17 @@
1# Slice
2
3![slice](https://i.imgur.com/l2aVaGx.jpg)
4
5This is 71 keys Custom keyboard.
6
7* Keyboard Maintainer: [2Moons](https://github.com/2Moons-JP)
8* Hardware Supported: Slice PCB, Pro Micro
9* Hardware Availability: [Website](https://www.basekeys.com/shop/)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make basekeys/slice/rev1:default
14
15See 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).
16
17[Build guide](https://www.basekeys.com/category/build-guides/)
diff --git a/keyboards/basekeys/slice/rev1/config.h b/keyboards/basekeys/slice/rev1/config.h
new file mode 100644
index 000000000..a02154d82
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/config.h
@@ -0,0 +1,52 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x04D8
23#define PRODUCT_ID 0xEC17
24#define DEVICE_VER 0x0002
25#define MANUFACTURER 2Moons
26#define PRODUCT Slice
27#define DESCRIPTION A custom keyboard
28
29/* key matrix size */
30#define MATRIX_ROWS 10
31#define MATRIX_COLS 18
32
33// wiring of each half
34#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
35#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5 }
36
37#define DIODE_DIRECTION COL2ROW
38
39/* Set 0 if debouncing isn't needed */
40#define DEBOUNCE 5
41/* serial.c configuration for split keyboard */
42#define SOFT_SERIAL_PIN D2
43
44/* Select hand configuration */
45//#define EE_HANDS
46#define MASTER_LEFT
47//#define MASTER_RIGHT
48
49/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
50#define LOCKING_SUPPORT_ENABLE
51/* Locking resynchronize hack */
52#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/basekeys/slice/rev1/info.json b/keyboards/basekeys/slice/rev1/info.json
new file mode 100644
index 000000000..705b8c386
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/info.json
@@ -0,0 +1,21 @@
1{
2 "keyboard_name": "slice",
3 "url": "https://www.basekeys.com",
4 "maintainer": "2Moons",
5 "width": 17.72,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":2.75}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
10 },
11 "LAYOUT_split_backspace": {
12 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"BS", "x":15.32, "y":0}, {"label":"BS", "x":16.32, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":2.75}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
13 },
14 "LAYOUT_split_left_space": {
15 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
16 },
17 "LAYOUT_all": {
18 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"BS", "x":15.32, "y":0}, {"label":"BS", "x":16.32, "y":0}, {"label":"BS", "x":17.32, "y":0}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3}, {"label":"Shift", "x":15.97, "y":3}, {"label":"Shift", "x":16.97, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
19 }
20 }
21}
diff --git a/keyboards/basekeys/slice/rev1/keymaps/2moons/config.h b/keyboards/basekeys/slice/rev1/keymaps/2moons/config.h
new file mode 100644
index 000000000..62ee1d1a9
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/keymaps/2moons/config.h
@@ -0,0 +1,23 @@
1/* Copyright 2020 2Moons
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Select hand configuration */
20
21#define TAPPING_FORCE_HOLD
22#define TAPPING_TERM 180
23//#define MASTER_RIGHT
diff --git a/keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c b/keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c
new file mode 100644
index 000000000..5a9b14606
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c
@@ -0,0 +1,180 @@
1#include QMK_KEYBOARD_H
2#include "keymap_jp.h"
3
4#ifdef RGBLIGHT_ENABLE
5//Following line allows macro to read current RGB settings
6extern rgblight_config_t rgblight_config;
7#endif
8
9extern uint8_t is_master;
10
11// Each layer gets a name for readability, which is then used in the keymap matrix below.
12// The underscores don't mean anything - you can have a layer called STUFF or any other name.
13// Layer names don't all need to be of the same length, obviously, and you can also skip them
14// entirely and just use numbers.
15enum layer_number {
16 _QWERTY = 0,
17 _FLOCK,
18 _FN,
19 _LOWER,
20 _RAISE,
21 _ADJUST,
22};
23
24enum custom_keycodes {
25 RGB_RST = SAFE_RANGE
26};
27
28enum tapdances{
29 TD_ESFL = 0,
30 TD_ESQW,
31};
32
33qk_tap_dance_action_t tap_dance_actions[] = {
34 [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK),
35 [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY),
36};
37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 [_QWERTY] = LAYOUT_all(
40 //,------------------------------------------------------------------------| |----------------------------------------------------------------.
41 KC_ESC, KC_GRAVE, 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_BSPACE, KC_BSPACE, KC_BSPACE,
42 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
43 RGB_MODE_FORWARD, 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,
44 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
45 RGB_MODE_GRADIENT, 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,
46 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
47 RGB_MODE_XMAS, 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, KC_RSFT, KC_RSFT,
48 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
49 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
50 //`----------------------------------------------------------------| |--------------------------------------------'
51 ),
52
53 [_FLOCK] = LAYOUT_all(
54 //,------------------------------------------------------------------------| |----------------------------------------------------------------.
55 KC_ESC, KC_GRAVE, 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_BSPACE, KC_BSPACE, KC_BSPACE,
56 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
57 RGB_MODE_FORWARD, 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,
58 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
59 RGB_MODE_GRADIENT, 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,
60 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
61 RGB_MODE_XMAS, 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, KC_RSFT, KC_RSFT,
62 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
63 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
64 //`----------------------------------------------------------------| |--------------------------------------------'
65 ),
66
67 [_FN] = LAYOUT_all(
68 //,------------------------------------------------------------------------| |----------------------------------------------------------------.
69 KC_ESC, TG(_ADJUST), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_BSPACE, KC_DEL,
70 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
71 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, _______, _______, _______,
72 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
73 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, _______,
74 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
75 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, _______,
76 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
78 //`----------------------------------------------------------------| |--------------------------------------------'
79 ),
80
81 [_LOWER] = LAYOUT_all(
82 //,------------------------------------------------------------------------| |----------------------------------------------------------------.
83 KC_ESC, KC_GRAVE, 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_BSPACE, KC_BSPACE, KC_BSPACE,
84 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
85 RGB_MODE_FORWARD, 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,
86 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
87 RGB_MODE_GRADIENT, 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,
88 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
89 RGB_MODE_XMAS, 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, KC_RSFT, KC_RSFT,
90 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
91 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
92 //`----------------------------------------------------------------| |--------------------------------------------'
93 ),
94
95 [_RAISE] = LAYOUT_all(
96 //,------------------------------------------------------------------------| |----------------------------------------------------------------.
97 KC_ESC, KC_GRAVE, 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_BSPACE, KC_BSPACE, KC_BSPACE,
98 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
99 RGB_MODE_FORWARD, 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,
100 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
101 RGB_MODE_GRADIENT, 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,
102 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
103 RGB_MODE_XMAS, 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, KC_RSFT, KC_RSFT,
104 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
105 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
106 //`----------------------------------------------------------------| |--------------------------------------------'
107 ),
108
109 [_ADJUST] = LAYOUT_all( /* Base */
110 //,------------------------------------------------------------------------| |----------------------------------------------------------------.
111 XXXXXXX, TG(_ADJUST), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX,
112 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
113 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
114 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
115 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
116 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
117 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX,
118 //|--------+---------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------|
119 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
120 //`----------------------------------------------------------------| |--------------------------------------------'
121 )
122};
123
124
125//A description for expressing the layer position in LED mode.
126layer_state_t layer_state_set_user(layer_state_t state) {
127 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
128#ifdef RGBLIGHT_ENABLE
129 switch (get_highest_layer(state)) {
130 case _FLOCK:
131 rgblight_sethsv_at(HSV_YELLOW, 0);
132 break;
133 case _FN:
134 rgblight_sethsv_at(HSV_GREEN, 0);
135 break;
136 case _LOWER:
137 rgblight_sethsv_at(HSV_BLUE, 0);
138 break;
139 case _RAISE:
140 rgblight_sethsv_at(HSV_RED, 0);
141 break;
142 case _ADJUST:
143 rgblight_sethsv_at(HSV_PURPLE, 0);
144 break;
145 default: // for any other layers, or the default layer
146 rgblight_sethsv_at( 0, 0, 0, 0);
147 break;
148 }
149 rgblight_set_effect_range( 1, 4);
150#endif
151return state;
152}
153
154int RGB_current_mode;
155bool process_record_user(uint16_t keycode, keyrecord_t *record) {
156 bool result = false;
157 switch (keycode) {
158 #ifdef RGBLIGHT_ENABLE
159 case RGB_MOD:
160 if (record->event.pressed) {
161 rgblight_mode(RGB_current_mode);
162 rgblight_step();
163 RGB_current_mode = rgblight_config.mode;
164 }
165 break;
166 case RGB_RST:
167 if (record->event.pressed) {
168 eeconfig_update_rgblight_default();
169 rgblight_enable();
170 RGB_current_mode = rgblight_config.mode;
171 }
172 break;
173 #endif
174 default:
175 result = true;
176 break;
177 }
178
179 return result;
180}
diff --git a/keyboards/basekeys/slice/rev1/keymaps/2moons/rules.mk b/keyboards/basekeys/slice/rev1/keymaps/2moons/rules.mk
new file mode 100644
index 000000000..e5ddcae8d
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/keymaps/2moons/rules.mk
@@ -0,0 +1 @@
TAP_DANCE_ENABLE = yes
diff --git a/keyboards/basekeys/slice/rev1/keymaps/default_all/config.h b/keyboards/basekeys/slice/rev1/keymaps/default_all/config.h
new file mode 100644
index 000000000..d3acebb7e
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/keymaps/default_all/config.h
@@ -0,0 +1,22 @@
1/* Copyright 2020 2Moons
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Select hand configuration */
20
21#define TAPPING_FORCE_HOLD
22#define TAPPING_TERM 180
diff --git a/keyboards/basekeys/slice/rev1/keymaps/default_all/keymap.c b/keyboards/basekeys/slice/rev1/keymaps/default_all/keymap.c
new file mode 100644
index 000000000..198c449b7
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/keymaps/default_all/keymap.c
@@ -0,0 +1,62 @@
1#include QMK_KEYBOARD_H
2
3extern uint8_t is_master;
4
5// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9enum layer_number {
10 _QWERTY = 0,
11 _FN,
12 _ADJUST,
13};
14
15enum custom_keycodes {
16 RGB_RST = SAFE_RANGE
17};
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [_QWERTY] = LAYOUT_all(
21 //,------------------------------------------------------------------------| |--------------------------------------------------------------------------------------.
22 KC_ESC, KC_GRAVE, 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_BSPACE, KC_BSPACE, KC_BSPACE,
23 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
24 RGB_MODE_FORWARD, 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,
25 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
26 RGB_MODE_GRADIENT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
27 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
28 RGB_MODE_XMAS, 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, KC_RSFT, KC_RSFT,
29 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
30 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
31 //`------------------------------------------------------------------------| |--------------------------------------------------------------------------------------'
32 ),
33
34 [_FN] = LAYOUT_all(
35 //,------------------------------------------------------------------------| |--------------------------------------------------------------------------------------.
36 KC_ESC,TG(_ADJUST), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_BSPACE, KC_DEL,
37 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
38 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, _______, _______, _______,
39 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
40 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______, _______,
41 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
42 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, _______,
43 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
45 //`------------------------------------------------------------------------| |--------------------------------------------------------------------------------------'
46 ),
47
48 [_ADJUST] = LAYOUT_all( /* Base */
49 //,------------------------------------------------------------------------| |--------------------------------------------------------------------------------------.
50 XXXXXXX,TG(_ADJUST), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX,
51 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
52 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
53 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
54 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
55 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX,
57 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
58 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
59 //`------------------------------------------------------------------------| |--------------------------------------------------------------------------------------'
60 )
61};
62
diff --git a/keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/config.h b/keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/config.h
new file mode 100644
index 000000000..d3acebb7e
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/config.h
@@ -0,0 +1,22 @@
1/* Copyright 2020 2Moons
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Select hand configuration */
20
21#define TAPPING_FORCE_HOLD
22#define TAPPING_TERM 180
diff --git a/keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/keymap.c b/keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/keymap.c
new file mode 100644
index 000000000..b1423378e
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/keymap.c
@@ -0,0 +1,61 @@
1#include QMK_KEYBOARD_H
2
3extern uint8_t is_master;
4
5// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9enum layer_number {
10 _QWERTY = 0,
11 _FN,
12 _ADJUST,
13};
14
15enum custom_keycodes {
16 RGB_RST = SAFE_RANGE
17};
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [_QWERTY] = LAYOUT_split_backspace(
21 //,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
22 KC_ESC, KC_GRAVE, 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_BSPACE, KC_BSPACE,
23 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
24 RGB_MODE_FORWARD, 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,
25 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
26 RGB_MODE_GRADIENT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
27 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
28 RGB_MODE_XMAS, 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, KC_RSFT,
29 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
30 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
31 //`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
32 ),
33
34 [_FN] = LAYOUT_split_backspace(
35 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
36 KC_ESC,TG(_ADJUST), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
37 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
38 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, _______, _______, _______,
39 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
40 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______, _______,
41 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
42 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______,
43 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
45 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
46 ),
47
48 [_ADJUST] = LAYOUT_split_backspace( /* Base */
49 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
50 XXXXXXX, TG(_ADJUST), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
51 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
52 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
53 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
54 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
55 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
56 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
57 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
58 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
59 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
60 )
61};
diff --git a/keyboards/basekeys/slice/rev1/rev1.c b/keyboards/basekeys/slice/rev1/rev1.c
new file mode 100644
index 000000000..520a869e5
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/rev1.c
@@ -0,0 +1 @@
#include "rev1.h"
diff --git a/keyboards/basekeys/slice/rev1/rev1.h b/keyboards/basekeys/slice/rev1/rev1.h
new file mode 100644
index 000000000..ae417d99c
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/rev1.h
@@ -0,0 +1,105 @@
1#pragma once
2
3#include "slice.h"
4
5#include "quantum.h"
6
7//////////////////////////////////////////////////////////////////////////////
8// When only use Slice Rev1.
9//////////////////////////////////////////////////////////////////////////////
10/*
11 * ,------------------------------------------------ --------------------------------------------------.
12 * | L00 | L01 | L02 | L03 | L04 | L05 | L06 | L07 | | R00 | R01 | R02 | R03 | R04 | R05 | R06R07R08 |
13 * |------------------------------------------------ ------------------------------------------------------+
14 * | L10 | L11 | L12 | L13 | L14 | L15 | L16 | | R10 | R11 | R12 | R13 | R14 | R15 | R16 | R37 |
15 * |---------------------------------------------- ------------------------------------------------------+
16 * | L20 | L21 | L22 | L23 | L24 | L25 | L26 | | R20 | R21 | R22 | R23 | R24 | R25 | R26 |
17 * |------------------------------------------------- --------------------------------------------------------+
18 * | L30 | L31 | L32 | L33 | L34 | L35 | L36 | | R30 | R31 | R32 | R33 | R34 | R34 | R35 | R36R37R38 |
19 * |------------------------------------------------- --------------------------------------------------------'
20 * | L40 | L41 | L42 | L43 | L44L45L46 | | R40 | R41 | | R42 | R43 | R44 |
21 * |------------------------------------------------- -------------------------------------------------------'
22 */
23
24#define LAYOUT( \
25 L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R07, \
26 L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, \
27 L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
28 L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, R38,\
29 L40, L41, L42, L43, L45, R40, R41, R42, R43, R44 \
30 ) \
31 { \
32 { L00, L01, L02, L03, L04, L05, L06, L07, KC_NO }, \
33 { L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO }, \
34 { L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO }, \
35 { L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO }, \
36 { L40, L41, L42, L43, KC_NO, L45, KC_NO, KC_NO, KC_NO }, \
37 { R00, R01, R02, R03, R04, R05, KC_NO, R07, KC_NO }, \
38 { R10, R11, R12, R13, R14, R15, R16, R17, KC_NO }, \
39 { R20, R21, R22, R23, R24, R25, R26, KC_NO, KC_NO }, \
40 { R30, R31, R32, R33, R34, R35, R36, KC_NO, R38 }, \
41 { R40, R41, R42, R43, R44, KC_NO, KC_NO, KC_NO, KC_NO } \
42 }
43
44#define LAYOUT_all( \
45 L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, R07, R08, \
46 L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, \
47 L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
48 L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, R37, R38,\
49 L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44 \
50 ) \
51 { \
52 { L00, L01, L02, L03, L04, L05, L06, L07, KC_NO }, \
53 { L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO }, \
54 { L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO }, \
55 { L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO }, \
56 { L40, L41, L42, L43, L44, L45, L46, KC_NO, KC_NO }, \
57 { R00, R01, R02, R03, R04, R05, R06, R07, R08 }, \
58 { R10, R11, R12, R13, R14, R15, R16, R17, KC_NO }, \
59 { R20, R21, R22, R23, R24, R25, R26, KC_NO, KC_NO }, \
60 { R30, R31, R32, R33, R34, R35, R36, R37, R38 }, \
61 { R40, R41, R42, R43, R44, KC_NO, KC_NO, KC_NO, KC_NO } \
62 }
63
64#define LAYOUT_split_backspace( \
65 L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, R08, \
66 L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, \
67 L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
68 L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, R38,\
69 L40, L41, L42, L43, L45, R40, R41, R42, R43, R44 \
70 ) \
71 { \
72 { L00, L01, L02, L03, L04, L05, L06, L07, KC_NO }, \
73 { L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO }, \
74 { L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO }, \
75 { L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO }, \
76 { L40, L41, L42, L43, KC_NO, L45, KC_NO, KC_NO, KC_NO }, \
77 { R00, R01, R02, R03, R04, R05, R06, KC_NO, R08 }, \
78 { R10, R11, R12, R13, R14, R15, R16, R17, KC_NO }, \
79 { R20, R21, R22, R23, R24, R25, R26, KC_NO, KC_NO }, \
80 { R30, R31, R32, R33, R34, R35, R36, KC_NO, R38 }, \
81 { R40, R41, R42, R43, R44, KC_NO, KC_NO, KC_NO, KC_NO } \
82 }
83
84
85#define LAYOUT_split_left_space( \
86 L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R07, \
87 L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, \
88 L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
89 L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, R38,\
90 L40, L41, L42, L43, L44, L46, R40, R41, R42, R43, R44 \
91 ) \
92 { \
93 { L00, L01, L02, L03, L04, L05, L06, L07, KC_NO }, \
94 { L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO }, \
95 { L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO }, \
96 { L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO }, \
97 { L40, L41, L42, L43, L44, KC_NO, L46, KC_NO, KC_NO }, \
98 { R00, R01, R02, R03, R04, R05, KC_NO, R07, KC_NO }, \
99 { R10, R11, R12, R13, R14, R15, R16, R17, KC_NO }, \
100 { R20, R21, R22, R23, R24, R25, R26, KC_NO, KC_NO }, \
101 { R30, R31, R32, R33, R34, R35, R36, KC_NO, R38 }, \
102 { R40, R41, R42, R43, R44, KC_NO, KC_NO, KC_NO, KC_NO } \
103 }
104
105
diff --git a/keyboards/basekeys/slice/rev1/rules.mk b/keyboards/basekeys/slice/rev1/rules.mk
new file mode 100644
index 000000000..16d1ed71e
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1/rules.mk
@@ -0,0 +1,29 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina
13
14# this is split keyboard.
15SPLIT_KEYBOARD = yes
16
17# Build Options
18# change yes to no to disable
19#
20BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
21MOUSEKEY_ENABLE = no # Mouse keys
22EXTRAKEY_ENABLE = no # Audio control and System control
23CONSOLE_ENABLE = no # Console for debug
24COMMAND_ENABLE = no # Commands for debug and configuration
25# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
26SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
27# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
28NKRO_ENABLE = no # USB Nkey Rollover
29UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h
new file mode 100644
index 000000000..6d423d9b5
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/config.h
@@ -0,0 +1,67 @@
1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Jack Humbert
4
5This program is free software: you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation, either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x04D8
23#define PRODUCT_ID 0xEC15
24#define DEVICE_VER 0x0002
25#define MANUFACTURER 2Moons
26#define PRODUCT Slice RGB
27#define DESCRIPTION A custom keyboard
28
29/* key matrix size */
30#define MATRIX_ROWS 10
31#define MATRIX_COLS 18
32
33// wiring of each half
34#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
35#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5 }
36
37#define DIODE_DIRECTION COL2ROW
38
39/* Set 0 if debouncing isn't needed */
40#define DEBOUNCE 5
41
42/* serial.c configuration for split keyboard */
43#define SOFT_SERIAL_PIN D2
44
45/* Select hand configuration */
46//#define EE_HANDS
47#define MASTER_LEFT
48//#define MASTER_RIGHT
49
50/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
51#define LOCKING_SUPPORT_ENABLE
52/* Locking resynchronize hack */
53#define LOCKING_RESYNC_ENABLE
54
55/* RGB LED */
56#ifdef RGBLIGHT_ENABLE
57#define RGB_DI_PIN D3
58#define RGBLED_NUM 69 // Number of LEDs. backlight x69
59#define RGBLED_SPLIT { 34, 35 }
60#define RGBLIGHT_LIMIT_VAL 120 /* The maximum brightness level */
61#define RGBLIGHT_HUE_STEP 10
62#define RGBLIGHT_SAT_STEP 17
63#define RGBLIGHT_VAL_STEP 17
64#define RGBLIGHT_ANIMATIONS
65#endif
66
67#define OLED_FONT_H "keyboards/basekeys/slice/slice_font.c"
diff --git a/keyboards/basekeys/slice/rev1_rgb/info.json b/keyboards/basekeys/slice/rev1_rgb/info.json
new file mode 100644
index 000000000..47128eb76
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/info.json
@@ -0,0 +1,15 @@
1{
2 "keyboard_name": "slice",
3 "url": "https://www.basekeys.com",
4 "maintainer": "2Moons",
5 "width": 17.72,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4, "w":2.75}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
10 },
11 "LAYOUT_split_left_space": {
12 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"~", "x":1.6600000000000001, "y":0}, {"label":"!", "x":2.66, "y":0}, {"label":"@", "x":3.66, "y":0}, {"label":"#", "x":4.66, "y":0}, {"label":"$", "x":5.66, "y":0}, {"label":"%", "x":6.66, "y":0}, {"label":"^", "x":7.66, "y":0}, {"label":"&", "x":9.32, "y":0}, {"label":"*", "x":10.32, "y":0}, {"label":"(", "x":11.32, "y":0}, {"label":")", "x":12.32, "y":0}, {"label":"_", "x":13.32, "y":0}, {"label":"+", "x":14.32, "y":0}, {"label":"Backspace", "x":15.32, "y":0, "w":2}, {"x":0, "y":1}, {"label":"Tab", "x":1.53, "y":1, "w":1.5}, {"label":"Q", "x":3.03, "y":1}, {"label":"W", "x":4.03, "y":1}, {"label":"E", "x":5.03, "y":1}, {"label":"R", "x":6.03, "y":1}, {"label":"T", "x":7.03, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15.05, "y":1}, {"label":"|", "x":16.1, "y":1, "w":1.5}, {"x":0, "y":2}, {"label":"Caps Lock", "x":1.3900000000000001, "y":2, "w":1.75}, {"label":"A", "x":3.14, "y":2}, {"label":"S", "x":4.14, "y":2}, {"label":"D", "x":5.14, "y":2}, {"label":"F", "x":6.14, "y":2}, {"label":"G", "x":7.14, "y":2}, {"label":"H", "x":9.34, "y":2}, {"label":"J", "x":10.34, "y":2}, {"label":"K", "x":11.34, "y":2}, {"label":"L", "x":12.34, "y":2}, {"label":":", "x":13.34, "y":2}, {"label":"\"", "x":14.34, "y":2}, {"label":"Enter", "x":15.34, "y":2, "w":2.25}, {"x":0, "y":3}, {"label":"Shift", "x":1.25, "y":3, "w":2.25}, {"label":"Z", "x":3.5, "y":3}, {"label":"X", "x":4.5, "y":3}, {"label":"C", "x":5.5, "y":3}, {"label":"V", "x":6.5, "y":3}, {"label":"B", "x":7.5, "y":3}, {"label":"B", "x":8.97, "y":3}, {"label":"N", "x":9.97, "y":3}, {"label":"M", "x":10.97, "y":3}, {"label":"<", "x":11.97, "y":3}, {"label":">", "x":12.97, "y":3}, {"label":"?", "x":13.97, "y":3}, {"label":"Shift", "x":14.97, "y":3, "w":1.75}, {"label":"Shift", "x":16.72, "y":3}, {"x":0, "y":4}, {"label":"Ctrl", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.25}, {"label":"\u21d3", "x":4.75, "y":4}, {"x":5.75, "y":4}, {"x":6.75, "y":4}, {"x":7.75, "y":4}, {"x":8.97, "y":4, "w":2.25}, {"label":"\u21d1", "x":11.22, "y":4}, {"label":"Alt", "x":13.98, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.23, "y":4, "w":1.25}, {"label":"Fn", "x":16.48, "y":4}]
13 }
14 }
15} \ No newline at end of file
diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/config.h
new file mode 100644
index 000000000..62ee1d1a9
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/config.h
@@ -0,0 +1,23 @@
1/* Copyright 2020 2Moons
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19/* Select hand configuration */
20
21#define TAPPING_FORCE_HOLD
22#define TAPPING_TERM 180
23//#define MASTER_RIGHT
diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c
new file mode 100644
index 000000000..d9e5808a6
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c
@@ -0,0 +1,221 @@
1#include QMK_KEYBOARD_H
2#include "keymap_jp.h"
3#include "split_util.h"
4// Each layer gets a name for readability, which is then used in the keymap matrix below.
5// The underscores don't mean anything - you can have a layer called STUFF or any other name.
6// Layer names don't all need to be of the same length, obviously, and you can also skip them
7// entirely and just use numbers.
8enum layer_number {
9 _QWERTY = 0,
10 _FLOCK,
11 _FN,
12 _LOWER,
13 _RAISE,
14 _ADJUST,
15};
16
17enum custom_keycodes {
18 RGB_RST = SAFE_RANGE
19};
20
21enum tapdances{
22 TD_ESFL = 0,
23 TD_ESQW,
24};
25
26qk_tap_dance_action_t tap_dance_actions[] = {
27 [TD_ESFL] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _FLOCK),
28 [TD_ESQW] = ACTION_TAP_DANCE_DUAL_ROLE(KC_ESC, _QWERTY),
29};
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 [_QWERTY] = LAYOUT(
33 //,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
34 KC_ESC, KC_GRAVE, 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_BSPACE,
35 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
36 RGB_MODE_FORWARD, 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,
37 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
38 RGB_MODE_GRADIENT, 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,
39 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
40 RGB_MODE_XMAS, 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, KC_RSFT,
41 //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
42 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
43 //`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
44 ),
45
46 [_FLOCK] = LAYOUT(
47 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
48 KC_ESC, TG(_ADJUST), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
49 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
50 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, _______, _______, _______,
51 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
52 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______, _______,
53 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
54 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______,
55 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
57 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
58 ),
59
60 [_FN] = LAYOUT(
61 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
62 KC_ESC, TG(_ADJUST), 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_BSPACE,
63 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
64 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, _______, _______, _______,
65 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
66 _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______, _______,
67 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
68 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______,
69 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
71 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
72 ),
73
74 [_LOWER] = LAYOUT(
75 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
76 KC_ESC, KC_GRAVE, 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_BSPACE,
77 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
78 RGB_MODE_FORWARD, 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,
79 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
80 RGB_MODE_GRADIENT, 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,
81 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
82 RGB_MODE_XMAS, 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, KC_RSFT,
83 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
84 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
85 //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
86 ),
87
88 [_RAISE] = LAYOUT(
89 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
90 KC_ESC, KC_GRAVE, 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_BSPACE,
91 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
92 RGB_MODE_FORWARD, 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,
93 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
94 RGB_MODE_GRADIENT, 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,
95 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
96 RGB_MODE_XMAS, 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, KC_RSFT,
97 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
98 RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
99 //`-----------------------------------------------------------------| |---------------------------------------------------------------------------'
100 ),
101
102 [_ADJUST] = LAYOUT( /* Base */
103 //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
104 XXXXXXX,TG(_ADJUST),XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
105 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
106 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
107 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
108 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
109 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
110 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
111 //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
112 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
113 //`-----------------------------------------------------------------| |---------------------------------------------------------------------------'
114 )
115};
116
117
118//A description for expressing the layer position in LED mode.
119layer_state_t layer_state_set_user(layer_state_t state) {
120 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
121#ifdef RGBLIGHT_ENABLE
122 switch (get_highest_layer(state)) {
123 case _FLOCK:
124 rgblight_sethsv_at(HSV_YELLOW, 0);
125 break;
126 case _FN:
127 rgblight_sethsv_at(HSV_GREEN, 0);
128 break;
129 case _LOWER:
130 rgblight_sethsv_at(HSV_BLUE, 0);
131 break;
132 case _RAISE:
133 rgblight_sethsv_at(HSV_RED, 0);
134 break;
135 case _ADJUST:
136 rgblight_sethsv_at(HSV_PURPLE, 0);
137 break;
138 default: // for any other layers, or the default layer
139 rgblight_sethsv_at( 0, 0, 0, 0);
140 break;
141 }
142 rgblight_set_effect_range( 1, 4);
143#endif
144return state;
145}
146
147int RGB_current_mode;
148bool process_record_user(uint16_t keycode, keyrecord_t *record) {
149 bool result = false;
150 switch (keycode) {
151 #ifdef RGBLIGHT_ENABLE
152 case RGB_MOD:
153 if (record->event.pressed) {
154 rgblight_mode(RGB_current_mode);
155 rgblight_step();
156 RGB_current_mode = rgblight_get_mode();
157 }
158 break;
159 case RGB_RST:
160 if (record->event.pressed) {
161 eeconfig_update_rgblight_default();
162 rgblight_enable();
163 RGB_current_mode = rgblight_get_mode();
164 }
165 break;
166 #endif
167 default:
168 result = true;
169 break;
170 }
171
172 return result;
173}
174
175#ifdef OLED_DRIVER_ENABLE
176
177const char *read_logo(void) {
178 static char logo[] = {
179 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
180 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
181 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
182 0};
183 return logo;
184}
185
186oled_rotation_t oled_init_user(oled_rotation_t rotation) {
187 return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
188}
189
190void oled_task_user(void) {
191 if (is_keyboard_master()) {
192 // Host Keyboard Layer Status
193 oled_write_P(PSTR("Layer: "), false);
194 switch (get_highest_layer(layer_state)) {
195 case _QWERTY:
196 oled_write_P(PSTR("Default\n"), false);
197 break;
198 case _FN:
199 oled_write_P(PSTR("Function\n"), false);
200 break;
201 case _LOWER:
202 oled_write_P(PSTR("Lower\n"), false);
203 break;
204 case _RAISE:
205 oled_write_P(PSTR("Raise\n"), false);
206 break;
207 default:
208 // Or use the write_ln shortcut over adding '\n' to the end of your string
209 oled_write_ln_P(PSTR("Undefined"), false);
210 }
211
212 // Host Keyboard LED Status
213 led_t led_usb_state = host_keyboard_led_state();
214 oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
215 oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
216 oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
217 } else {
218 oled_write(read_logo(), false);
219 }
220}
221#endif
diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/rules.mk b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/rules.mk
new file mode 100644
index 000000000..f4767f01f
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/rules.mk
@@ -0,0 +1,2 @@
1TAP_DANCE_ENABLE = yes
2RGBLIGHT_ENABLE = yes
diff --git a/keyboards/basekeys/slice/rev1_rgb/rev1_rgb.c b/keyboards/basekeys/slice/rev1_rgb/rev1_rgb.c
new file mode 100644
index 000000000..3cdec58c5
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/rev1_rgb.c
@@ -0,0 +1 @@
#include "rev1_rgb.h"
diff --git a/keyboards/basekeys/slice/rev1_rgb/rev1_rgb.h b/keyboards/basekeys/slice/rev1_rgb/rev1_rgb.h
new file mode 100644
index 000000000..809c278db
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/rev1_rgb.h
@@ -0,0 +1,65 @@
1#pragma once
2
3#include "slice.h"
4
5#include "quantum.h"
6
7//////////////////////////////////////////////////////////////////////////////
8// When only use Slice Rev1.
9//////////////////////////////////////////////////////////////////////////////
10/*
11 * ,------------------------------------------------ --------------------------------------------------.
12 * | L00 | L01 | L02 | L03 | L04 | L05 | L06 | L07 | | R00 | R01 | R02 | R03 | R04 | R05 | R06 |
13 * |------------------------------------------------ ------------------------------------------------------+
14 * | L10 | L11 | L12 | L13 | L14 | L15 | L16 | | R10 | R11 | R12 | R13 | R14 | R15 | R16 | R37 |
15 * |---------------------------------------------- ------------------------------------------------------+
16 * | L20 | L21 | L22 | L23 | L24 | L25 | L26 | | R20 | R21 | R22 | R23 | R24 | R25 | R26 |
17 * |------------------------------------------------- --------------------------------------------------------+
18 * | L30 | L31 | L32 | L33 | L34 | L35 | L36 | | R30 | R31 | R32 | R33 | R34 | R34 | R35 | R36 | R37 |
19 * |------------------------------------------------- --------------------------------------------------------'
20 * | L40 | L41 | L42 | L43 | L44L45L46 | | R40 | R41 | | R42 | R43 | R44 |
21 * |------------------------------------------------- -------------------------------------------------------'
22 */
23
24#define LAYOUT( \
25 L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, \
26 L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, \
27 L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
28 L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, R37,\
29 L40, L41, L42, L43, L45, R40, R41, R42, R43, R44 \
30 ) \
31 { \
32 { L00, L01, L02, L03, L04, L05, L06, L07, KC_NO }, \
33 { L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO }, \
34 { L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO }, \
35 { L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO }, \
36 { L40, L41, L42, L43, KC_NO, L45, KC_NO, KC_NO, KC_NO }, \
37 { R00, R01, R02, R03, R04, R05, R06, KC_NO, KC_NO }, \
38 { R10, R11, R12, R13, R14, R15, R16, R17, KC_NO }, \
39 { R20, R21, R22, R23, R24, R25, R26, KC_NO, KC_NO }, \
40 { R30, R31, R32, R33, R34, R35, R36, R37, KC_NO }, \
41 { R40, R41, R42, R43, R44, KC_NO, KC_NO, KC_NO, KC_NO } \
42 }
43
44#define LAYOUT_split_left_space( \
45 L00, L01, L02, L03, L04, L05, L06, L07, R00, R01, R02, R03, R04, R05, R06, \
46 L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, R17, \
47 L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
48 L30, L31, L32, L33, L34, L35, L36, R30, R31, R32, R33, R34, R35, R36, R37,\
49 L40, L41, L42, L43, L44, L46, R40, R41, R42, R43, R44 \
50 ) \
51 { \
52 { L00, L01, L02, L03, L04, L05, L06, L07, KC_NO }, \
53 { L10, L11, L12, L13, L14, L15, L16, KC_NO, KC_NO }, \
54 { L20, L21, L22, L23, L24, L25, L26, KC_NO, KC_NO }, \
55 { L30, L31, L32, L33, L34, L35, L36, KC_NO, KC_NO }, \
56 { L40, L41, L42, L43, L44, KC_NO, L46, KC_NO, KC_NO }, \
57 { R00, R01, R02, R03, R04, R05, R06, KC_NO, KC_NO }, \
58 { R10, R11, R12, R13, R14, R15, R16, R17, KC_NO }, \
59 { R20, R21, R22, R23, R24, R25, R26, KC_NO, KC_NO }, \
60 { R30, R31, R32, R33, R34, R35, R36, R37, KC_NO }, \
61 { R40, R41, R42, R43, R44, KC_NO, KC_NO, KC_NO, KC_NO } \
62 }
63
64
65
diff --git a/keyboards/basekeys/slice/rev1_rgb/rules.mk b/keyboards/basekeys/slice/rev1_rgb/rules.mk
new file mode 100644
index 000000000..116492c6e
--- /dev/null
+++ b/keyboards/basekeys/slice/rev1_rgb/rules.mk
@@ -0,0 +1,31 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = caterina
13
14# this is split keyboard.
15SPLIT_KEYBOARD = yes
16
17# Build Options
18# change yes to no to disable
19#
20BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
21MOUSEKEY_ENABLE = no # Mouse keys
22EXTRAKEY_ENABLE = no # Audio control and System control
23CONSOLE_ENABLE = no # Console for debug
24COMMAND_ENABLE = no # Commands for debug and configuration
25# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
26SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
27# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
28NKRO_ENABLE = no # USB Nkey Rollover
29RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
30OLED_DRIVER_ENABLE = yes # Disable OLED driver.
31UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/basekeys/slice/slice.c b/keyboards/basekeys/slice/slice.c
new file mode 100644
index 000000000..6aaf72179
--- /dev/null
+++ b/keyboards/basekeys/slice/slice.c
@@ -0,0 +1 @@
#include "slice.h"
diff --git a/keyboards/basekeys/slice/slice.h b/keyboards/basekeys/slice/slice.h
new file mode 100644
index 000000000..7d4f7ee51
--- /dev/null
+++ b/keyboards/basekeys/slice/slice.h
@@ -0,0 +1,10 @@
1#pragma once
2
3#include "quantum.h"
4#ifdef KEYBOARD_basekeys_slice_rev1
5 #include "rev1.h"
6#endif
7
8#ifdef KEYBOARD_basekeys_slice_rev1_rgb
9 #include "rev1_rgb.h"
10#endif
diff --git a/keyboards/basekeys/slice/slice_font.c b/keyboards/basekeys/slice/slice_font.c
new file mode 100644
index 000000000..f969f85c7
--- /dev/null
+++ b/keyboards/basekeys/slice/slice_font.c
@@ -0,0 +1,232 @@
1// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
2// See gfxfont.h for newer custom bitmap font info.
3
4#include "progmem.h"
5
6// Standard ASCII 5x7 font
7const unsigned char font[] PROGMEM = {
8 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
9 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
10 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
11 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
12 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
13 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
14 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
15 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
16 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
17 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
18 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
19 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
20 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
21 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
22 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
23 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
24 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
25 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
26 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
27 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
28 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
29 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
30 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
31 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
32 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
33 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
34 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
35 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
36 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
37 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
38 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
39 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
41 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
42 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
43 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
44 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
45 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
46 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
47 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
48 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
49 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
50 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
51 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
52 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
53 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
54 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
55 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
56 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
57 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
58 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
59 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
60 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
61 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
62 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
63 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
64 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
65 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
66 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
67 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
68 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
69 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
70 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
71 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
72 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
73 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
74 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
75 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
76 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
77 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
78 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
79 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
80 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
81 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
82 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
83 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
84 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
85 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
86 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
87 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
88 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
89 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
90 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
91 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
92 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
93 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
94 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
95 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
96 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
97 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
98 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
99 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
100 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
101 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
102 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
103 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
104 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
105 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
106 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
107 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
108 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
109 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
110 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
111 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
112 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
113 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
114 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
115 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
116 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
117 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
118 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
119 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
120 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
121 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
122 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
123 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
124 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
125 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
126 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
127 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
128 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
129 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
130 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
131 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
132 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
133 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
134 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
135 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
136 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
137 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
138 0xC0, 0xF0, 0xF8, 0xFC, 0xFC, 0xFF,
139 0x3F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
140 0x1F, 0x1F, 0x0F, 0x03, 0x00, 0x10,
141 0x3F, 0x3F, 0x3F, 0x3F, 0x3C, 0x00,
142 0x00, 0x00, 0xC0, 0xF8, 0xFF, 0xFF,
143 0xFF, 0x7F, 0x1F, 0x03, 0x00, 0x00,
144 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
146 0xC0, 0xF8, 0xFF, 0xFF, 0xFF, 0x7F,
147 0x1F, 0x03, 0x00, 0x00, 0x00, 0x80,
148 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
149 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
150 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
151 0xC0, 0xC0, 0xC0, 0xC0, 0x40, 0x00,
152 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0,
153 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
154 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
155 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00,
156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
158 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
159 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
160 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
161 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
162 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
163 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
164 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
168 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
169 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0,
170 0xC7, 0xC7, 0xCF, 0x8F, 0x0F, 0x0F,
171 0x0F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
172 0x8F, 0x8F, 0xCF, 0xFF, 0xFF, 0xFF,
173 0xFF, 0x3E, 0x00, 0x00, 0x00, 0xE0,
174 0xF8, 0xFF, 0xFF, 0xFF, 0x7F, 0x0F,
175 0x03, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
176 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00,
177 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFF,
178 0xFF, 0xFF, 0x7F, 0x0F, 0x03, 0x00,
179 0x00, 0xE0, 0xF8, 0xFE, 0xFF, 0xFF,
180 0x7F, 0x1F, 0x0F, 0x07, 0x07, 0x07,
181 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
182 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
183 0x07, 0x07, 0x07, 0x01, 0x00, 0xC0,
184 0xE0, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
185 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
186 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
187 0xE3, 0x23, 0x03, 0x00, 0x00, 0x00,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
190 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
191 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
192 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
193 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
194 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
195 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
196 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
197 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
200 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
201 0x00, 0x00, 0x00, 0x03, 0x07, 0x07,
202 0x07, 0x07, 0x07, 0x01, 0x00, 0x04,
203 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
204 0x07, 0x07, 0x07, 0x07, 0x03, 0x03,
205 0x00, 0x00, 0x00, 0x04, 0x07, 0x07,
206 0x07, 0x07, 0x07, 0x01, 0x00, 0x04,
207 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
208 0x07, 0x07, 0x07, 0x03, 0x00, 0x80,
209 0xE0, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F,
210 0x0F, 0x01, 0x00, 0x00, 0x00, 0x7C,
211 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
212 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
213 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
214 0xF0, 0xF0, 0xF0, 0xF0, 0x30, 0x10,
215 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xF1,
216 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
217 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
218 0xF1, 0xF1, 0xF1, 0x71, 0x11, 0x01,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
222 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
225 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
232};