diff options
| -rw-r--r-- | keyboards/yushakobo/quick17/config.h | 143 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/info.json | 14 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/keymaps/default/keymap.c | 113 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/keymaps/default/readme.md | 64 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/keymaps/via/keymap.c | 113 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/keymaps/via/readme.md | 62 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/keymaps/via/rules.mk | 3 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/quick17.c | 37 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/quick17.h | 38 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/quick17_prefs.c | 29 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/quick17_prefs.h | 28 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/readme.md | 19 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/rgb_matrix_kb.inc | 117 | ||||
| -rw-r--r-- | keyboards/yushakobo/quick17/rules.mk | 28 | 
14 files changed, 808 insertions, 0 deletions
| diff --git a/keyboards/yushakobo/quick17/config.h b/keyboards/yushakobo/quick17/config.h new file mode 100644 index 0000000000..ab33c84082 --- /dev/null +++ b/keyboards/yushakobo/quick17/config.h @@ -0,0 +1,143 @@ +/* +Copyright 2021 yushakobo + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID    0x3265 +#define PRODUCT_ID   0x0006 +#define DEVICE_VER   0x0001 +#define MANUFACTURER yushakobo +#define PRODUCT      quick17 + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 6 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F4, B3, B6 } +#define MATRIX_COL_PINS { F5, D4, E6, F7, C6, D7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +//#define SOFT_SERIAL_PIN D0  // or D1, D2, D3, E6 + +//#define BACKLIGHT_PIN B7 +//#define BACKLIGHT_LEVELS 3 +//#define BACKLIGHT_BREATHING + +#define RGB_DI_PIN D2 +#define RGBLED_NUM 18 + +#ifdef RGB_MATRIX_ENABLE +#   define DRIVER_LED_TOTAL RGBLED_NUM +#   define RGB_MATRIX_KEYPRESSES // reacts to keypresses +// #   define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) +// #   define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#   define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#   define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// #   define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #   define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) +#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. +//      HSV_TEAL +//        #define RGB_MATRIX_STARTUP_HUE 128 +//        #define RGB_MATRIX_STARTUP_SAT 255 +        #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#    define RGB_MATRIX_HUE_STEP 8 +#    define RGB_MATRIX_SAT_STEP 8 +#    define RGB_MATRIX_VAL_STEP 8 +#    define RGB_MATRIX_SPD_STEP 10 +#endif + + + + +#ifdef RGBLIGHT_ENABLE +#    define RGBLIGHT_LED_MAP {\ +        6,  7, 12, 13, 14, 15,\ +       16, 17, 11, 10,  9,  8,\ +        0,  1,  2,  3,  4,  5\ +     } +#    define RGBLIGHT_HUE_STEP 8 +#    define RGBLIGHT_SAT_STEP 8 +#    define RGBLIGHT_VAL_STEP 8 +#    define RGBLIGHT_LIMIT_VAL 150 /* The maximum brightness level */ +//#    define RGBLIGHT_SLEEP  /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ +//#    define RGBLIGHT_ANIMATIONS +/*== or choose animations ==*/ +//#    define RGBLIGHT_EFFECT_BREATHING +#    define RGBLIGHT_EFFECT_RAINBOW_MOOD +#    define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//#    define RGBLIGHT_EFFECT_SNAKE +//#    define RGBLIGHT_EFFECT_KNIGHT +#    define RGBLIGHT_EFFECT_CHRISTMAS +#    define RGBLIGHT_EFFECT_STATIC_GRADIENT +#    define RGBLIGHT_EFFECT_RGB_TEST +//#    define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//#    define RGBLIGHT_BREATHE_TABLE_SIZE 256      // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//#    define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85  // 1 to 2.7 +//#    define RGBLIGHT_EFFECT_BREATHE_MAX    255   // 0 to 255 + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_MAX_LAYERS 8 + +#endif + +#ifdef ENCODER_ENABLE +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +//#define BOOTMAGIC_LITE_ROW 0 +//#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/yushakobo/quick17/info.json b/keyboards/yushakobo/quick17/info.json new file mode 100644 index 0000000000..eb971110c0 --- /dev/null +++ b/keyboards/yushakobo/quick17/info.json @@ -0,0 +1,14 @@ +{ +    "keyboard_name": "quick17", +    "url": "https://shop.yushakobo.jp/products/quick17", +    "maintainer": "yushakobo", +    "layouts": { +        "LAYOUT": { +            "layout": [ +                {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, +                {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1},  +                {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2} +            ] +        } +    } +} diff --git a/keyboards/yushakobo/quick17/keymaps/default/keymap.c b/keyboards/yushakobo/quick17/keymaps/default/keymap.c new file mode 100644 index 0000000000..a3873bc1ee --- /dev/null +++ b/keyboards/yushakobo/quick17/keymaps/default/keymap.c @@ -0,0 +1,113 @@ +/* Copyright 2021 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { +    KC_LANG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +        [_CONTROL] = LAYOUT( +        KC_TAB, KC_PGUP,KC_UP,  KC_PGDN,KC_HOME,KC_INS, +        KC_LCTL,KC_LEFT,KC_DOWN,KC_RGHT,KC_END, KC_DEL, +        KC_LSFT,KC_LGUI,KC_ESC, KC_LALT,LT(3,KC_SPC),TO(1) +    ), +        [_EDIT1] = LAYOUT( +        KC_ESC, KC_W,   KC_E,   KC_R,   KC_Y,   KC_BSPC, +        KC_LCTL,KC_A,   KC_D,   KC_F,   KC_H,   LCTL(KC_Z), +        KC_LSFT,KC_X,   KC_V,   KC_B,   LT(2,KC_SPC),LCTL(KC_S) +    ), +        [_EDIT2] = LAYOUT( +        KC_ESC, KC_Q,   KC_BTN3,KC_INS, KC_ENT, KC_DEL, +        KC_LCTL,KC_LBRC,KC_RBRC,KC_PGDN,KC_PGUP,LCTL(KC_Y), +        KC_LSFT,TO(3),  RGB_TOG,TO(0),  _______,KC_NO +    ), +        [_FN] = LAYOUT( +        KC_ESC, KC_LANG,KC_NO,  RGB_TOG,KC_MNXT,KC_VOLU, +        KC_CAPS,KC_NLCK,KC_NO,  RGB_MOD,KC_MPRV,KC_VOLD, +        CG_NORM,LCG_SWP,EEP_RST,RESET,  TO(0),  KC_MUTE +    ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case KC_LANG: +            if (record->event.pressed){ +                if (keymap_config.swap_lctl_lgui == false){ +                    tap_code16(LALT(KC_GRV)); +                } else { +                    if(input_mode()){ +                        register_code(KC_LANG2); +                        set_input_mode(false); +                    } else { +                        register_code(KC_LANG1); +                        set_input_mode(true); +                    } +                } +            } else { +                unregister_code(KC_LANG1); +                unregister_code(KC_LANG2); +            } +            break; +        default: +            break; +    } +    return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise){ +    if (index == 0) { +        if (IS_LAYER_ON(_EDIT2)){ +            if (clockwise) { +                tap_code(KC_LBRC); +            } else { +                tap_code(KC_RBRC); +            } +        } else if (IS_LAYER_ON(_EDIT1)){ +            if (clockwise) { +                tap_code(KC_VOLU); +            } else { +                tap_code(KC_VOLD); +            } +        } else if (IS_LAYER_ON(_FN)){ +            if (clockwise) { +                tap_code(KC_MNXT); +            } else { +                tap_code(KC_MPRV); +            } +        } else { // IS_LAYER_ON(_CONTROL) +            if (clockwise) { +                tap_code(KC_WH_U); +            } else { +                tap_code(KC_WH_D); +            } +        } +    } +    return false; +} + +#ifdef RGB_MATRIX_ENABLE +    void keyboard_post_init_user(void){ +        rgb_matrix_mode(RGB_MATRIX_CUSTOM_quick17_rgbm_effect); +        set_input_mode(false); +    } +#else +    void keyboard_post_init_user(void){ +        rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL); +        set_input_mode(false); +    } +#endif diff --git a/keyboards/yushakobo/quick17/keymaps/default/readme.md b/keyboards/yushakobo/quick17/keymaps/default/readme.md new file mode 100644 index 0000000000..5a5066ed58 --- /dev/null +++ b/keyboards/yushakobo/quick17/keymaps/default/readme.md @@ -0,0 +1,64 @@ +# The default keymap for quick17 + +## CONTROL(default) Layer +``` +    ,-----------------------------------------------. +    | Tab   | PgUp  |  Up   | PgDn  | Home  |  Ins  | +    |-------+-------+-------+-------+-------+-------| +    | Ctrl  | Left  | Down  | Right | End   |  Del  | +    |-------+-------+-------+-------+-------+-------| +    | Shift | GUI   |  Esc  |  Alt  | FN/Spc| EDIT1 | +    `-----------------------------------------------' +``` + +## EDIT1 Layer +``` +    ,--------------------------------------------------. +    | Esc   |   W   |   E   |   R   |    Y    | Bspc   | +    |-------+-------+-------+-------+---------+--------| +    | Ctrl  |   A   |   D   |   F   |    H    | Ctrl+Z | +    |-------+-------+-------+-------+---------+--------| +    | Shift |   X   |   V   |   B   |EDIT2/Spc| Ctrl+S | +    `--------------------------------------------------' +``` + +## EDIT2 Layer +``` +    ,-------------------------------------------------. +    | Esc   |   Q   | BTN3  |  Ins  | Enter  | Bspc   | +    |-------+-------+-------+-------+--------+--------| +    | Ctrl  |   [   |   ]   | PgDn  | PgUp   | Ctrl+Z | +    |-------+-------+-------+-------+--------+--------| +    | Shift |   FN  |RGB_TOG|CONTROL| (NONE) | (NONE) | +    `-------------------------------------------------' +``` + +## FN Layer +``` +    ,---------------------------------------------------. +    | Esc   | LANG  | (NONE) |RGB_TOG| Media > | Vol+   | +    |-------+-------+--------+-------+---------+--------| +    | Caps  | Numlk | (NONE) |RGB_MOD| Media < | Vol-   | +    |-------+-------+--------+-------+---------+--------| +    | Win   | mac   | EEP_RST| RESET | CONTROL | Mute   | +    `---------------------------------------------------' +``` +### difference between mac-Mode and Win-Mode +- In mac Mode, `Ctrl` key will be changed into `command` key. +- `LANG` key will change its behaviour. + +### "LANG" key behaviour + +|LED-sign|Blue|Red|Green| +|---|---|---|---| +|mac Mode|-|かな|英数| +|Win Mode|半角/全角(Alt+`)|-|-| + +## Rotary encoder behaviour + +|On layer...|Clockwise|C-Clockwise| +|---|---|---| +|CONTROL|Scroll Up|Scroll Down| +|EDIT1|Vol+|Vol-| +|EDIT2|[|]| +|FN|Media >|Media <| diff --git a/keyboards/yushakobo/quick17/keymaps/via/keymap.c b/keyboards/yushakobo/quick17/keymaps/via/keymap.c new file mode 100644 index 0000000000..a3873bc1ee --- /dev/null +++ b/keyboards/yushakobo/quick17/keymaps/via/keymap.c @@ -0,0 +1,113 @@ +/* Copyright 2021 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { +    KC_LANG +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +        [_CONTROL] = LAYOUT( +        KC_TAB, KC_PGUP,KC_UP,  KC_PGDN,KC_HOME,KC_INS, +        KC_LCTL,KC_LEFT,KC_DOWN,KC_RGHT,KC_END, KC_DEL, +        KC_LSFT,KC_LGUI,KC_ESC, KC_LALT,LT(3,KC_SPC),TO(1) +    ), +        [_EDIT1] = LAYOUT( +        KC_ESC, KC_W,   KC_E,   KC_R,   KC_Y,   KC_BSPC, +        KC_LCTL,KC_A,   KC_D,   KC_F,   KC_H,   LCTL(KC_Z), +        KC_LSFT,KC_X,   KC_V,   KC_B,   LT(2,KC_SPC),LCTL(KC_S) +    ), +        [_EDIT2] = LAYOUT( +        KC_ESC, KC_Q,   KC_BTN3,KC_INS, KC_ENT, KC_DEL, +        KC_LCTL,KC_LBRC,KC_RBRC,KC_PGDN,KC_PGUP,LCTL(KC_Y), +        KC_LSFT,TO(3),  RGB_TOG,TO(0),  _______,KC_NO +    ), +        [_FN] = LAYOUT( +        KC_ESC, KC_LANG,KC_NO,  RGB_TOG,KC_MNXT,KC_VOLU, +        KC_CAPS,KC_NLCK,KC_NO,  RGB_MOD,KC_MPRV,KC_VOLD, +        CG_NORM,LCG_SWP,EEP_RST,RESET,  TO(0),  KC_MUTE +    ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { +        case KC_LANG: +            if (record->event.pressed){ +                if (keymap_config.swap_lctl_lgui == false){ +                    tap_code16(LALT(KC_GRV)); +                } else { +                    if(input_mode()){ +                        register_code(KC_LANG2); +                        set_input_mode(false); +                    } else { +                        register_code(KC_LANG1); +                        set_input_mode(true); +                    } +                } +            } else { +                unregister_code(KC_LANG1); +                unregister_code(KC_LANG2); +            } +            break; +        default: +            break; +    } +    return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise){ +    if (index == 0) { +        if (IS_LAYER_ON(_EDIT2)){ +            if (clockwise) { +                tap_code(KC_LBRC); +            } else { +                tap_code(KC_RBRC); +            } +        } else if (IS_LAYER_ON(_EDIT1)){ +            if (clockwise) { +                tap_code(KC_VOLU); +            } else { +                tap_code(KC_VOLD); +            } +        } else if (IS_LAYER_ON(_FN)){ +            if (clockwise) { +                tap_code(KC_MNXT); +            } else { +                tap_code(KC_MPRV); +            } +        } else { // IS_LAYER_ON(_CONTROL) +            if (clockwise) { +                tap_code(KC_WH_U); +            } else { +                tap_code(KC_WH_D); +            } +        } +    } +    return false; +} + +#ifdef RGB_MATRIX_ENABLE +    void keyboard_post_init_user(void){ +        rgb_matrix_mode(RGB_MATRIX_CUSTOM_quick17_rgbm_effect); +        set_input_mode(false); +    } +#else +    void keyboard_post_init_user(void){ +        rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL); +        set_input_mode(false); +    } +#endif diff --git a/keyboards/yushakobo/quick17/keymaps/via/readme.md b/keyboards/yushakobo/quick17/keymaps/via/readme.md new file mode 100644 index 0000000000..da0923539d --- /dev/null +++ b/keyboards/yushakobo/quick17/keymaps/via/readme.md @@ -0,0 +1,62 @@ +# The via keymap for quick17 + +## CONTROL(default) Layer +``` +    ,-----------------------------------------------. +    | Tab   | PgUp  |  Up   | PgDn  | Home  |  Ins  | +    |-------+-------+-------+-------+-------+-------| +    | Ctrl  | Left  | Down  | Right | End   |  Del  | +    |-------+-------+-------+-------+-------+-------| +    | Shift | GUI   |  Esc  |  Alt  | FN/Spc| EDIT1 | +    `-----------------------------------------------' +``` + +## EDIT1 Layer +``` +    ,--------------------------------------------------. +    | Esc   |   W   |   E   |   R   |    Y    | Bspc   | +    |-------+-------+-------+-------+---------+--------| +    | Ctrl  |   A   |   D   |   F   |    H    | Ctrl+Z | +    |-------+-------+-------+-------+---------+--------| +    | Shift |   X   |   V   |   B   |EDIT2/Spc| Ctrl+S | +    `--------------------------------------------------' +``` + +## EDIT2 Layer +``` +    ,-------------------------------------------------. +    | Esc   |   Q   | BTN3  |  Ins  | Enter  | Bspc   | +    |-------+-------+-------+-------+--------+--------| +    | Ctrl  |   [   |   ]   | PgDn  | PgUp   | Ctrl+Z | +    |-------+-------+-------+-------+--------+--------| +    | Shift |   FN  |RGB_TOG|CONTROL| (NONE) | (NONE) | +    `-------------------------------------------------' +``` + +## FN Layer +``` +    ,---------------------------------------------------. +    | Esc   | LANG  | (NONE) |RGB_TOG| Media > | Vol+   | +    |-------+-------+--------+-------+---------+--------| +    | Caps  | Numlk | (NONE) |RGB_MOD| Media < | Vol-   | +    |-------+-------+--------+-------+---------+--------| +    | Win   | mac   | EEP_RST| RESET | CONTROL | Mute   | +    `---------------------------------------------------' +``` +### difference between mac-Mode and Win-Mode +- In mac Mode, `Ctrl` key will be changed into `command` key. +- `LANG` key will change its behaviour. + +### "LANG" key behaviour + +- mac Mode: cycle around "かな" and "英数" +- Win Mode: key combinations of Alt and ` + +## Rotary encoder behaviour + +|On layer...|Clockwise|C-Clockwise| +|---|---|---| +|CONTROL|Scroll Up|Scroll Down| +|EDIT1|Vol+|Vol-| +|EDIT2|[|]| +|FN|Media >|Media <| diff --git a/keyboards/yushakobo/quick17/keymaps/via/rules.mk b/keyboards/yushakobo/quick17/keymaps/via/rules.mk new file mode 100644 index 0000000000..b5502db7c4 --- /dev/null +++ b/keyboards/yushakobo/quick17/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +RGBLIGHT_ENABLE = yes +RGB_MATRIX_ENABLE = no
\ No newline at end of file diff --git a/keyboards/yushakobo/quick17/quick17.c b/keyboards/yushakobo/quick17/quick17.c new file mode 100644 index 0000000000..ed9fe97097 --- /dev/null +++ b/keyboards/yushakobo/quick17/quick17.c @@ -0,0 +1,37 @@ +/* Copyright 2021 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include "quick17.h" + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { +    { +        {12, 13, 14, 15, 16, 17}, +        {0, 1, 11, 10, 9, 8}, +        {2, 3, 4, 5, 6, 7} +    }, +    { +        {0,32},  {44,32}, {0,64},  {44,64}, {89,64}, {134,64}, +        {179,64},{224,64},{224,32},{179,32},{134,32},{89,32}, +        {0,0},   {44,0},  {89,0},  {134,0}, {179,0}, {224,0} +    }, +    { +        4, 4, 4, 4, 4, 4, +        4, 4, 4, 4, 4, 4, +        4, 4, 4, 4, 4, 4 +    } +}; +#endif diff --git a/keyboards/yushakobo/quick17/quick17.h b/keyboards/yushakobo/quick17/quick17.h new file mode 100644 index 0000000000..566df71069 --- /dev/null +++ b/keyboards/yushakobo/quick17/quick17.h @@ -0,0 +1,38 @@ +/* Copyright 2021 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ +    k00, k01, k02, k03, k04, k05, \ +    k10, k11, k12, k13, k14, k15, \ +    k20, k21, k22, k23, k24, k25 \ +) \ +{ \ +    { k00, k01, k02, k03, k04, k05 }, \ +    { k10, k11, k12, k13, k14, k15 }, \ +    { k20, k21, k22, k23, k24, k25 } \ +} diff --git a/keyboards/yushakobo/quick17/quick17_prefs.c b/keyboards/yushakobo/quick17/quick17_prefs.c new file mode 100644 index 0000000000..1a546f4e35 --- /dev/null +++ b/keyboards/yushakobo/quick17/quick17_prefs.c @@ -0,0 +1,29 @@ +/* Copyright 2021 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + +bool _INPUT_JP; + +void set_input_mode(bool _mode_jaen){ +    _INPUT_JP = _mode_jaen; +    // japanese -> true +    // english  -> false +} + +bool input_mode(void){ +    return _INPUT_JP; +} diff --git a/keyboards/yushakobo/quick17/quick17_prefs.h b/keyboards/yushakobo/quick17/quick17_prefs.h new file mode 100644 index 0000000000..4d81d163b9 --- /dev/null +++ b/keyboards/yushakobo/quick17/quick17_prefs.h @@ -0,0 +1,28 @@ +/* Copyright 2021 yushakobo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +enum layer_names { +    _CONTROL, +    _EDIT1, +    _EDIT2, +    _FN +}; + +#define _HSV(H, S, V) (HSV){ .h = H, .s = S, .v = V } +#define _RGB(rgb) rgb.r, rgb.g, rgb.b + +bool input_mode(void); +void set_input_mode(bool _mode_jaen); diff --git a/keyboards/yushakobo/quick17/readme.md b/keyboards/yushakobo/quick17/readme.md new file mode 100644 index 0000000000..672cee3319 --- /dev/null +++ b/keyboards/yushakobo/quick17/readme.md @@ -0,0 +1,19 @@ +# quick17 + + + +A simple macropad for the beginners + +* Keyboard Maintainer: [yushakobo](https://github.com/yushakobo) +* Hardware Supported: Quick17 PCBs, Pro Micro (ATmega32u4) +* Hardware Availability: [yushakobo shop](https://shop.yushakobo.jp/products/quick17) + +Make example for this keyboard (after setting up your build environment): + +    make quick17:default + +Flashing example for this keyboard: + +    make quick17:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/yushakobo/quick17/rgb_matrix_kb.inc b/keyboards/yushakobo/quick17/rgb_matrix_kb.inc new file mode 100644 index 0000000000..87738389b7 --- /dev/null +++ b/keyboards/yushakobo/quick17/rgb_matrix_kb.inc @@ -0,0 +1,117 @@ +RGB_MATRIX_EFFECT(quick17_rgbm_effect) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +#include "quick17_prefs.h" + +#define LED_LAYOUT(\ +    L00, L01, L02, L03, L04, L05, \ +    L10, L11, L12, L13, L14, L15, \ +    L20, L21, L22, L23, L24, L25 \ +) {\ +    L10, L11, L20, L21, L22, L23,\ +    L24, L25, L15, L14, L13, L12,\ +    L00, L01, L02, L03, L04, L05\ +} + +enum lighting_types { +    BOUT, +    _____, +    INDC1, +    INDC2, +    INDC3, +    INDC4, +    INDC5, +    JA_EN, +    CAPSL, +    NUM_L +}; + +const uint8_t rgb_keymaps [][DRIVER_LED_TOTAL] = { +    [_CONTROL] = LED_LAYOUT( +        _____, INDC2, INDC1, INDC2, INDC3, INDC4, +        _____, INDC1, INDC1, INDC1, INDC3, INDC4, +        _____, _____, _____, _____, INDC5, INDC5 +    ), +    [_EDIT1] = LED_LAYOUT( +        _____, _____, _____, _____, _____, INDC4, +        _____, _____, _____, _____, _____, INDC1, +        _____, _____, _____, _____, INDC5, INDC1 +    ), +    [_EDIT2] = LED_LAYOUT( +        _____, _____, _____, _____, _____, INDC4, +        _____, _____, _____, _____, _____, INDC1, +        _____, INDC5, INDC3, INDC5, INDC5, BOUT +    ), +    [_FN] = LED_LAYOUT( +        _____, JA_EN, BOUT,  INDC3, INDC4, INDC4, +        CAPSL, NUM_L, BOUT,  INDC3, INDC4, INDC4, +        INDC2, INDC2, INDC1, INDC1, INDC5, INDC4 +    ) +}; + +static void led_color_set(uint8_t index, uint8_t color_patterns) { +    HSV hsv = rgb_matrix_config.hsv; // 'quantum/rgblight_list.h' +    RGB rgb_white = hsv_to_rgb(_HSV(  0,   0, hsv.v)); // HSV_WHITE +    RGB rgb_indc1 = hsv_to_rgb(_HSV(128, 255, hsv.v)); // HSV_TEAL +    RGB rgb_indc2 = hsv_to_rgb(_HSV(191, 255, hsv.v)); // HSV_PURPLE +    RGB rgb_indc3 = hsv_to_rgb(_HSV( 64, 255, hsv.v)); // HSV_CHARTREUSE +    RGB rgb_indc4 = hsv_to_rgb(_HSV(106, 255, hsv.v)); // HSV_SPRINGGREEN +    RGB rgb_indc5 = hsv_to_rgb(_HSV(234, 128, hsv.v)); // HSV_PINK +    RGB rgb_indc6 = hsv_to_rgb(_HSV(213, 255, hsv.v)); // HSV_MAGENTA +    RGB rgb_indc_ja =  hsv_to_rgb(_HSV(  0, 255, hsv.v)); // HSV_RED +    RGB rgb_indc_en =  hsv_to_rgb(_HSV( 85, 255, hsv.v)); // HSV_GREEN +    RGB rgb_indc_win = hsv_to_rgb(_HSV(170, 255, hsv.v)); // HSV_BLUE +    switch(color_patterns){ +        case BOUT:  rgb_matrix_set_color(index, RGB_BLACK); break; +        case _____: rgb_matrix_set_color(index, _RGB(rgb_white)); break; +        case INDC1: rgb_matrix_set_color(index, _RGB(rgb_indc1)); break; +        case INDC2: rgb_matrix_set_color(index, _RGB(rgb_indc2)); break; +        case INDC3: rgb_matrix_set_color(index, _RGB(rgb_indc3)); break; +        case INDC4: rgb_matrix_set_color(index, _RGB(rgb_indc4)); break; +        case INDC5: rgb_matrix_set_color(index, _RGB(rgb_indc5)); break; +        case JA_EN: +            if (keymap_config.swap_lctl_lgui == false) { +                rgb_matrix_set_color(index, _RGB(rgb_indc_win)); +            } else { +                if (input_mode()){ +                    rgb_matrix_set_color(index, _RGB(rgb_indc_ja)); +                } else { +                    rgb_matrix_set_color(index, _RGB(rgb_indc_en)); +                } +            } +            break; +        case CAPSL: +            if (host_keyboard_led_state().caps_lock) { +                rgb_matrix_set_color(index, _RGB(rgb_indc6)); +            } else { +                rgb_matrix_set_color(index, _RGB(rgb_white)); +            } +            break; +        case NUM_L: +            if (host_keyboard_led_state().num_lock) { +                rgb_matrix_set_color(index, _RGB(rgb_indc6)); +            } else { +                rgb_matrix_set_color(index, _RGB(rgb_white)); +            } +            break; +    } +} + +static bool quick17_rgbm_effect (effect_params_t* params) { +    RGB_MATRIX_USE_LIMITS(led_min, led_max); +    for (uint8_t i = led_min; i < led_max; i++) { +        if (IS_LAYER_ON(_EDIT2)){ +            led_color_set(i, rgb_keymaps[_EDIT2][i]); +        } else if (IS_LAYER_ON(_EDIT1)){ +            led_color_set(i, rgb_keymaps[_EDIT1][i]); +        } else if (IS_LAYER_ON(_FN)){ +            led_color_set(i, rgb_keymaps[_FN][i]); +        } else { // IS_LAYER_ON(_CONTROL) +            led_color_set(i, rgb_keymaps[_CONTROL][i]); +        } +    } +    return led_max < DRIVER_LED_TOTAL; +} + +#endif diff --git a/keyboards/yushakobo/quick17/rules.mk b/keyboards/yushakobo/quick17/rules.mk new file mode 100644 index 0000000000..fc036091a0 --- /dev/null +++ b/keyboards/yushakobo/quick17/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +#   change yes to no to disable +# +BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes       # Mouse keys +EXTRAKEY_ENABLE = yes       # Audio control and System control +CONSOLE_ENABLE = no         # Console for debug +COMMAND_ENABLE = no         # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no            # USB Nkey Rollover +BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow +AUDIO_ENABLE = no           # Audio output +ENCODER_ENABLE = yes + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +RGB_MATRIX_CUSTOM_KB = yes + +SRC += quick17_prefs.c | 
