keyboard stuff

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>

authored by

2Moons-JP
Erovia
Joel Challis
Ryan
Drashna Jaelre
and committed by
GitHub
de58b076 6ceaae30

+1591
+21
keyboards/basekeys/slice/config.h
··· 1 + /* 2 + Copyright 2012 Jun Wako <wakojun@gmail.com> 3 + Copyright 2015 Jack Humbert 4 + 5 + This program is free software: you can redistribute it and/or modify 6 + it under the terms of the GNU General Public License as published by 7 + the Free Software Foundation, either version 2 of the License, or 8 + (at your option) any later version. 9 + 10 + This program is distributed in the hope that it will be useful, 11 + but WITHOUT ANY WARRANTY; without even the implied warranty of 12 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 + GNU General Public License for more details. 14 + 15 + You should have received a copy of the GNU General Public License 16 + along with this program. If not, see <http://www.gnu.org/licenses/>. 17 + */ 18 + 19 + #pragma once 20 + 21 + #include "config_common.h"
+22
keyboards/basekeys/slice/keymaps/default/config.h
··· 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
+131
keyboards/basekeys/slice/keymaps/default/keymap.c
··· 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. 7 + enum layer_number { 8 + _QWERTY = 0, 9 + _FN, 10 + _ADJUST, 11 + }; 12 + 13 + enum custom_keycodes { 14 + RGB_RST = SAFE_RANGE 15 + }; 16 + 17 + const 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 + 63 + int RGB_current_mode; 64 + bool 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 + 93 + const 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 + 102 + oled_rotation_t oled_init_user(oled_rotation_t rotation) { 103 + return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; 104 + } 105 + 106 + void 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
+22
keyboards/basekeys/slice/keymaps/default_split_left_space/config.h
··· 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
+131
keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c
··· 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. 7 + enum layer_number { 8 + _QWERTY = 0, 9 + _FN, 10 + _ADJUST, 11 + }; 12 + 13 + enum custom_keycodes { 14 + RGB_RST = SAFE_RANGE 15 + }; 16 + 17 + const 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 + 63 + int RGB_current_mode; 64 + bool 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 + 93 + const 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 + 102 + oled_rotation_t oled_init_user(oled_rotation_t rotation) { 103 + return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; 104 + } 105 + 106 + void 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
+17
keyboards/basekeys/slice/readme.md
··· 1 + # Slice 2 + 3 + ![slice](https://i.imgur.com/l2aVaGx.jpg) 4 + 5 + This 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 + 11 + Make example for this keyboard (after setting up your build environment): 12 + 13 + make basekeys/slice/rev1:default 14 + 15 + See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). 16 + 17 + [Build guide](https://www.basekeys.com/category/build-guides/)
+52
keyboards/basekeys/slice/rev1/config.h
··· 1 + /* 2 + Copyright 2012 Jun Wako <wakojun@gmail.com> 3 + Copyright 2015 Jack Humbert 4 + 5 + This program is free software: you can redistribute it and/or modify 6 + it under the terms of the GNU General Public License as published by 7 + the Free Software Foundation, either version 2 of the License, or 8 + (at your option) any later version. 9 + 10 + This program is distributed in the hope that it will be useful, 11 + but WITHOUT ANY WARRANTY; without even the implied warranty of 12 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 + GNU General Public License for more details. 14 + 15 + You should have received a copy of the GNU General Public License 16 + along 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
+21
keyboards/basekeys/slice/rev1/info.json
··· 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 + }
+23
keyboards/basekeys/slice/rev1/keymaps/2moons/config.h
··· 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
+180
keyboards/basekeys/slice/rev1/keymaps/2moons/keymap.c
··· 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 6 + extern rgblight_config_t rgblight_config; 7 + #endif 8 + 9 + extern 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. 15 + enum layer_number { 16 + _QWERTY = 0, 17 + _FLOCK, 18 + _FN, 19 + _LOWER, 20 + _RAISE, 21 + _ADJUST, 22 + }; 23 + 24 + enum custom_keycodes { 25 + RGB_RST = SAFE_RANGE 26 + }; 27 + 28 + enum tapdances{ 29 + TD_ESFL = 0, 30 + TD_ESQW, 31 + }; 32 + 33 + qk_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 + 38 + const 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. 126 + layer_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 151 + return state; 152 + } 153 + 154 + int RGB_current_mode; 155 + bool 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 + }
+1
keyboards/basekeys/slice/rev1/keymaps/2moons/rules.mk
··· 1 + TAP_DANCE_ENABLE = yes
+22
keyboards/basekeys/slice/rev1/keymaps/default_all/config.h
··· 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
+62
keyboards/basekeys/slice/rev1/keymaps/default_all/keymap.c
··· 1 + #include QMK_KEYBOARD_H 2 + 3 + extern 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. 9 + enum layer_number { 10 + _QWERTY = 0, 11 + _FN, 12 + _ADJUST, 13 + }; 14 + 15 + enum custom_keycodes { 16 + RGB_RST = SAFE_RANGE 17 + }; 18 + 19 + const 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 +
+22
keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/config.h
··· 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
+61
keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/keymap.c
··· 1 + #include QMK_KEYBOARD_H 2 + 3 + extern 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. 9 + enum layer_number { 10 + _QWERTY = 0, 11 + _FN, 12 + _ADJUST, 13 + }; 14 + 15 + enum custom_keycodes { 16 + RGB_RST = SAFE_RANGE 17 + }; 18 + 19 + const 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 + };
+1
keyboards/basekeys/slice/rev1/rev1.c
··· 1 + #include "rev1.h"
+105
keyboards/basekeys/slice/rev1/rev1.h
··· 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 +
+29
keyboards/basekeys/slice/rev1/rules.mk
··· 1 + # MCU name 2 + MCU = 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 12 + BOOTLOADER = caterina 13 + 14 + # this is split keyboard. 15 + SPLIT_KEYBOARD = yes 16 + 17 + # Build Options 18 + # change yes to no to disable 19 + # 20 + BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration 21 + MOUSEKEY_ENABLE = no # Mouse keys 22 + EXTRAKEY_ENABLE = no # Audio control and System control 23 + CONSOLE_ENABLE = no # Console for debug 24 + COMMAND_ENABLE = no # Commands for debug and configuration 25 + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 26 + SLEEP_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 28 + NKRO_ENABLE = no # USB Nkey Rollover 29 + UNICODE_ENABLE = no # Unicode
+67
keyboards/basekeys/slice/rev1_rgb/config.h
··· 1 + /* 2 + Copyright 2012 Jun Wako <wakojun@gmail.com> 3 + Copyright 2015 Jack Humbert 4 + 5 + This program is free software: you can redistribute it and/or modify 6 + it under the terms of the GNU General Public License as published by 7 + the Free Software Foundation, either version 2 of the License, or 8 + (at your option) any later version. 9 + 10 + This program is distributed in the hope that it will be useful, 11 + but WITHOUT ANY WARRANTY; without even the implied warranty of 12 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 + GNU General Public License for more details. 14 + 15 + You should have received a copy of the GNU General Public License 16 + along 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"
+15
keyboards/basekeys/slice/rev1_rgb/info.json
··· 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 + }
+23
keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/config.h
··· 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
+221
keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c
··· 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. 8 + enum layer_number { 9 + _QWERTY = 0, 10 + _FLOCK, 11 + _FN, 12 + _LOWER, 13 + _RAISE, 14 + _ADJUST, 15 + }; 16 + 17 + enum custom_keycodes { 18 + RGB_RST = SAFE_RANGE 19 + }; 20 + 21 + enum tapdances{ 22 + TD_ESFL = 0, 23 + TD_ESQW, 24 + }; 25 + 26 + qk_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 + 31 + const 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. 119 + layer_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 144 + return state; 145 + } 146 + 147 + int RGB_current_mode; 148 + bool 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 + 177 + const 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 + 186 + oled_rotation_t oled_init_user(oled_rotation_t rotation) { 187 + return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; 188 + } 189 + 190 + void 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
+2
keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/rules.mk
··· 1 + TAP_DANCE_ENABLE = yes 2 + RGBLIGHT_ENABLE = yes
+1
keyboards/basekeys/slice/rev1_rgb/rev1_rgb.c
··· 1 + #include "rev1_rgb.h"
+65
keyboards/basekeys/slice/rev1_rgb/rev1_rgb.h
··· 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 +
+31
keyboards/basekeys/slice/rev1_rgb/rules.mk
··· 1 + # MCU name 2 + MCU = 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 12 + BOOTLOADER = caterina 13 + 14 + # this is split keyboard. 15 + SPLIT_KEYBOARD = yes 16 + 17 + # Build Options 18 + # change yes to no to disable 19 + # 20 + BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration 21 + MOUSEKEY_ENABLE = no # Mouse keys 22 + EXTRAKEY_ENABLE = no # Audio control and System control 23 + CONSOLE_ENABLE = no # Console for debug 24 + COMMAND_ENABLE = no # Commands for debug and configuration 25 + # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 26 + SLEEP_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 28 + NKRO_ENABLE = no # USB Nkey Rollover 29 + RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 30 + OLED_DRIVER_ENABLE = yes # Disable OLED driver. 31 + UNICODE_ENABLE = no # Unicode
+1
keyboards/basekeys/slice/slice.c
··· 1 + #include "slice.h"
+10
keyboards/basekeys/slice/slice.h
··· 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
+232
keyboards/basekeys/slice/slice_font.c
··· 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 7 + const 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 + };