~ruther/qmk_firmware

6b8168c3786262e563137c48bcfe34c3b86e24e1 — Kwabena Aduse-Poku 4 years ago 20a28d6
[Keyboard] Add Bloop65 (#13388)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
A keyboards/kwub/bloop/bloop.c => keyboards/kwub/bloop/bloop.c +17 -0
@@ 0,0 1,17 @@
/* Copyright 2021 Kwabena Aduse-Poku (Kwub)
 *
 * 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 "bloop.h"

A keyboards/kwub/bloop/bloop.h => keyboards/kwub/bloop/bloop.h +76 -0
@@ 0,0 1,76 @@
/* Copyright 2021 Kwabena Aduse-Poku (Kwub)
 *
 * 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"

// clang-format off
#define LAYOUT_625( \
    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       \
    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, \
    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,       K314, \
    K400, K401, K402,             K405,                   K409, K410, K411, K412,       K414  \
) { \
    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO }, \
    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214 }, \
    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO, K314 }, \
    { K400,  K401,  K402,  KC_NO, KC_NO, K405,  KC_NO, KC_NO, KC_NO, K409,  K410,  K411,  K412,  KC_NO, K414 }  \
}

#define LAYOUT_625_split_bs( \
    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, \
    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,       K314, \
    K400, K401, K402,             K405,                   K409, K410, K411, K412,       K414  \
) { \
    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014 }, \
    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214 }, \
    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO, K314 }, \
    { K400,  K401,  K402,  KC_NO, KC_NO, K405,  KC_NO, KC_NO, KC_NO, K409,  K410,  K411,  K412,  KC_NO, K414 }  \
}

#define LAYOUT_7( \
    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013,       \
    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, \
    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,       K314, \
    K400, K401, K402,             K405,                         K410, K411, K412,       K414  \
) { \
    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  KC_NO }, \
    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214 }, \
    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO, K314 }, \
    { K400,  K401,  K402,  KC_NO, KC_NO, K405,  KC_NO, KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  KC_NO, K414 }  \
}

#define LAYOUT_7_split_bs( \
    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, \
    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,       K314, \
    K400, K401, K402,             K405,                         K410, K411, K412,       K414  \
) { \
    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014 }, \
    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214 }, \
    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  KC_NO, K314 }, \
    { K400,  K401,  K402,  KC_NO, KC_NO, K405,  KC_NO, KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  KC_NO, K414 }  \
}

A keyboards/kwub/bloop/config.h => keyboards/kwub/bloop/config.h +63 -0
@@ 0,0 1,63 @@
/* Copyright 2021 Kwabena Aduse-Poku (Kwub)
 *
 * 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    0x6B77  // Kwub
#define PRODUCT_ID   0x0001
#define DEVICE_VER   0x0001
#define MANUFACTURER Kwub
#define PRODUCT      Bloop65

/* key matrix size */
#define MATRIX_ROWS  5
#define MATRIX_COLS  15

/* key matrix pins */
#define MATRIX_ROW_PINS \
    { F5, F4, C6, C7, D7 }
#define MATRIX_COL_PINS \
    { B4, B5, B6, F6, F1, F7, F0, B0, B7, D3, D2, D1, D5, D4, D6 }
#define UNUSED_PINS

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* number of backlight levels */

#ifdef BACKLIGHT_PIN
#    define BACKLIGHT_LEVELS 3
#endif

/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#ifdef RGB_DI_PIN
#    define RGBLIGHT_ANIMATIONS
#    define RGBLED_NUM        0
#    define RGBLIGHT_HUE_STEP 8
#    define RGBLIGHT_SAT_STEP 8
#    define RGBLIGHT_VAL_STEP 8
#endif

A keyboards/kwub/bloop/info.json => keyboards/kwub/bloop/info.json +45 -0
@@ 0,0 1,45 @@
{
    "keyboard_name": "Bloop65",
    "url": "https://geekhack.org/index.php?topic=110483.0",
    "maintainer": "Kwub",
    "width": 15,
    "height": 5,
    "layouts": {
        "LAYOUT_625": {
            "layout": [
                {"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0,"w":2},
                {"x":0,"y":1,"w":1.5},{"x":1.5,"y":1},{"x":2.5,"y":1},{"x":3.5,"y":1},{"x":4.5,"y":1},{"x":5.5,"y":1},{"x":6.5,"y":1},{"x":7.5,"y":1},{"x":8.5,"y":1},{"x":9.5,"y":1},{"x":10.5,"y":1},{"x":11.5,"y":1},{"x":12.5,"y":1},{"x":13.5,"y":1,"w":1.5},{"x":15,"y":1},
                {"x":0,"y":2,"w":1.75},{"x":1.75,"y":2},{"x":2.75,"y":2},{"x":3.75,"y":2},{"x":4.75,"y":2},{"x":5.75,"y":2},{"x":6.75,"y":2},{"x":7.75,"y":2},{"x":8.75,"y":2},{"x":9.75,"y":2},{"x":10.75,"y":2},{"x":11.75,"y":2},{"x":12.75,"y":2,"w":2.25},{"x":15,"y":2},
                {"x":0,"y":3,"w":2.25},{"x":2.25,"y":3},{"x":3.25,"y":3},{"x":4.25,"y":3},{"x":5.25,"y":3},{"x":6.25,"y":3},{"x":7.25,"y":3},{"x":8.25,"y":3},{"x":9.25,"y":3},{"x":10.25,"y":3},{"x":11.25,"y":3},{"x":12.25,"y":3,"w":1.75},{"x":14,"y":3},{"x":15,"y":3},
                {"x":0,"y":4,"w":1.25},{"x":1.25,"y":4,"w":1.25},{"x":2.5,"y":4,"w":1.25},{"x":3.75,"y":4,"w":6.25},{"x":10,"y":4,"w":1.25},{"x":11.25,"y":4,"w":1.25},{"x":13,"y":4},{"x":14,"y":4},{"x":15,"y":4}
            ]
        },
        "LAYOUT_625_split_bs": {
            "layout": [
                {"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},
                {"x":0,"y":1,"w":1.5},{"x":1.5,"y":1},{"x":2.5,"y":1},{"x":3.5,"y":1},{"x":4.5,"y":1},{"x":5.5,"y":1},{"x":6.5,"y":1},{"x":7.5,"y":1},{"x":8.5,"y":1},{"x":9.5,"y":1},{"x":10.5,"y":1},{"x":11.5,"y":1},{"x":12.5,"y":1},{"x":13.5,"y":1,"w":1.5},{"x":15,"y":1},
                {"x":0,"y":2,"w":1.75},{"x":1.75,"y":2},{"x":2.75,"y":2},{"x":3.75,"y":2},{"x":4.75,"y":2},{"x":5.75,"y":2},{"x":6.75,"y":2},{"x":7.75,"y":2},{"x":8.75,"y":2},{"x":9.75,"y":2},{"x":10.75,"y":2},{"x":11.75,"y":2},{"x":12.75,"y":2,"w":2.25},{"x":15,"y":2},
                {"x":0,"y":3,"w":2.25},{"x":2.25,"y":3},{"x":3.25,"y":3},{"x":4.25,"y":3},{"x":5.25,"y":3},{"x":6.25,"y":3},{"x":7.25,"y":3},{"x":8.25,"y":3},{"x":9.25,"y":3},{"x":10.25,"y":3},{"x":11.25,"y":3},{"x":12.25,"y":3,"w":1.75},{"x":14,"y":3},{"x":15,"y":3},
                {"x":0,"y":4,"w":1.25},{"x":1.25,"y":4,"w":1.25},{"x":2.5,"y":4,"w":1.25},{"x":3.75,"y":4,"w":6.25},{"x":10,"y":4,"w":1.25},{"x":11.25,"y":4,"w":1.25},{"x":13,"y":4},{"x":14,"y":4},{"x":15,"y":4}
            ]
        },
        "LAYOUT_7": {
            "layout": [
                {"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0,"w":2},
                {"x":0,"y":1,"w":1.5},{"x":1.5,"y":1},{"x":2.5,"y":1},{"x":3.5,"y":1},{"x":4.5,"y":1},{"x":5.5,"y":1},{"x":6.5,"y":1},{"x":7.5,"y":1},{"x":8.5,"y":1},{"x":9.5,"y":1},{"x":10.5,"y":1},{"x":11.5,"y":1},{"x":12.5,"y":1},{"x":13.5,"y":1,"w":1.5},{"x":15,"y":1},
                {"x":0,"y":2,"w":1.75},{"x":1.75,"y":2},{"x":2.75,"y":2},{"x":3.75,"y":2},{"x":4.75,"y":2},{"x":5.75,"y":2},{"x":6.75,"y":2},{"x":7.75,"y":2},{"x":8.75,"y":2},{"x":9.75,"y":2},{"x":10.75,"y":2},{"x":11.75,"y":2},{"x":12.75,"y":2,"w":2.25},{"x":15,"y":2},
                {"x":0,"y":3,"w":2.25},{"x":2.25,"y":3},{"x":3.25,"y":3},{"x":4.25,"y":3},{"x":5.25,"y":3},{"x":6.25,"y":3},{"x":7.25,"y":3},{"x":8.25,"y":3},{"x":9.25,"y":3},{"x":10.25,"y":3},{"x":11.25,"y":3},{"x":12.25,"y":3,"w":1.75},{"x":14,"y":3},{"x":15,"y":3},
                {"x":0,"y":4,"w":1.5},{"x":1.5,"y":4},{"x":2.5,"y":4,"w":1.5},{"x":4,"y":4,"w":7},{"x":11,"y":4,"w":1.5},{"x":13,"y":4},{"x":14,"y":4},{"x":15,"y":4}
            ]
        },
        "LAYOUT_7_split_bs": {
            "layout": [
                {"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":0},{"x":5,"y":0},{"x":6,"y":0},{"x":7,"y":0},{"x":8,"y":0},{"x":9,"y":0},{"x":10,"y":0},{"x":11,"y":0},{"x":12,"y":0},{"x":13,"y":0},{"x":14,"y":0},
                {"x":0,"y":1,"w":1.5},{"x":1.5,"y":1},{"x":2.5,"y":1},{"x":3.5,"y":1},{"x":4.5,"y":1},{"x":5.5,"y":1},{"x":6.5,"y":1},{"x":7.5,"y":1},{"x":8.5,"y":1},{"x":9.5,"y":1},{"x":10.5,"y":1},{"x":11.5,"y":1},{"x":12.5,"y":1},{"x":13.5,"y":1,"w":1.5},{"x":15,"y":1},
                {"x":0,"y":2,"w":1.75},{"x":1.75,"y":2},{"x":2.75,"y":2},{"x":3.75,"y":2},{"x":4.75,"y":2},{"x":5.75,"y":2},{"x":6.75,"y":2},{"x":7.75,"y":2},{"x":8.75,"y":2},{"x":9.75,"y":2},{"x":10.75,"y":2},{"x":11.75,"y":2},{"x":12.75,"y":2,"w":2.25},{"x":15,"y":2},
                {"x":0,"y":3,"w":2.25},{"x":2.25,"y":3},{"x":3.25,"y":3},{"x":4.25,"y":3},{"x":5.25,"y":3},{"x":6.25,"y":3},{"x":7.25,"y":3},{"x":8.25,"y":3},{"x":9.25,"y":3},{"x":10.25,"y":3},{"x":11.25,"y":3},{"x":12.25,"y":3,"w":1.75},{"x":14,"y":3},{"x":15,"y":3},
                {"x":0,"y":4,"w":1.5},{"x":1.5,"y":4},{"x":2.5,"y":4,"w":1.5},{"x":4,"y":4,"w":7},{"x":11,"y":4,"w":1.5},{"x":13,"y":4},{"x":14,"y":4},{"x":15,"y":4}
            ]
        }
    }
}

A keyboards/kwub/bloop/keymaps/crispyy/keymap.c => keyboards/kwub/bloop/keymaps/crispyy/keymap.c +39 -0
@@ 0,0 1,39 @@
/* Copyright 2021 Kwabena Aduse-Poku (Kwub)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include QMK_KEYBOARD_H

enum keyboard_layers {
    _BL = 0,  // Base layer
    _FL,      // Function
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    // clang-format off
    [_BL]= LAYOUT_625_split_bs(
        KC_GESC, 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_BSPC, KC_DEL,
        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, KC_DEL,
        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,           KC_VOLU,
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,            KC_VOLD,
        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             MO(_FL), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),

    [_FL]= LAYOUT_625_split_bs(
        KC_GRV,  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,  KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLU,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT)
};

A keyboards/kwub/bloop/keymaps/default/keymap.c => keyboards/kwub/bloop/keymaps/default/keymap.c +39 -0
@@ 0,0 1,39 @@
/* Copyright 2021 Kwabena Aduse-Poku (Kwub)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include QMK_KEYBOARD_H

enum keyboard_layers {
    _BL = 0,  // Base layer
    _FL,      // Function layer
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    // clang-format off
    [_BL]= LAYOUT_625_split_bs(
        KC_GESC, 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_BSPC, KC_DEL,
        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, KC_PGUP,
        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,           KC_PGDN,
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,            MO(_FL),
        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT),

    [_FL]= LAYOUT_625_split_bs(
        KC_GRV,  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,  KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLU,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT)
};

A keyboards/kwub/bloop/keymaps/default/readme.md => keyboards/kwub/bloop/keymaps/default/readme.md +1 -0
@@ 0,0 1,1 @@
# Default keymap for the Bloop65
\ No newline at end of file

A keyboards/kwub/bloop/keymaps/kevin_hhkb/keymap.c => keyboards/kwub/bloop/keymaps/kevin_hhkb/keymap.c +39 -0
@@ 0,0 1,39 @@
/* Copyright 2021 Kwabena Aduse-Poku (Kwub)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include QMK_KEYBOARD_H

enum keyboard_layers {
    _BL = 0,  // Base layer
    _FL,      // Function
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    // clang-format off
    [_BL]= LAYOUT_625_split_bs(
        KC_GESC, 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_BSLS, KC_GRV,
        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_BSPC, KC_PGUP,
        KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,           KC_PGDN,
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,            MO(_FL),
        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT),

    [_FL]= LAYOUT_625_split_bs(
        KC_GRV,  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,  KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLU,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT)
};

A keyboards/kwub/bloop/keymaps/via/keymap.c => keyboards/kwub/bloop/keymaps/via/keymap.c +55 -0
@@ 0,0 1,55 @@
/* Copyright 2021 Kwabena Aduse-Poku (Kwub)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include QMK_KEYBOARD_H

enum keyboard_layers {
    _BL = 0,  // Base layer
    _F1,      // Function layer 1
    _F2,      // Function layer 2
    _F3       // Function layer 3
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    // clang-format off
    [_BL]= LAYOUT_625_split_bs(
        KC_GESC, 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_BSPC, KC_DEL,
        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, KC_PGUP,
        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,           KC_PGDN,
        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,            MO(_F1),
        KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                             KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT),

    [_F1]= LAYOUT_625_split_bs(
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),

    [_F2]= LAYOUT_625_split_bs(
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),

    [_F3]= LAYOUT_625_split_bs(
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};

A keyboards/kwub/bloop/keymaps/via/readme.md => keyboards/kwub/bloop/keymaps/via/readme.md +1 -0
@@ 0,0 1,1 @@
# The VIA layout for the Bloop65
\ No newline at end of file

A keyboards/kwub/bloop/keymaps/via/rules.mk => keyboards/kwub/bloop/keymaps/via/rules.mk +1 -0
@@ 0,0 1,1 @@
VIA_ENABLE = yes
\ No newline at end of file

A keyboards/kwub/bloop/readme.md => keyboards/kwub/bloop/readme.md +24 -0
@@ 0,0 1,24 @@
# Bloop65
![Bloop65](https://imgur.com/WH56BIuh.png)

[Interest check page here](https://geekhack.org/index.php?topic=110483.0)

[Join the discord server here](https://discord.gg/XXw8fu7F8M)

[Bloop assembly instructions here](https://imgur.com/gallery/iTgFU17)

The Bloop is a plateless 65% inspired by the idb60 with some internal and external changes to make assembly easier.
Groupbuy ran: 2/14/2021 - 2/21/2021

* Keyboard Maintainer: [Kwub](https://github.com/Kwub)
* Hardware Supported: Bloop65
* Hardware Availability: Completed groupbuy

## How to flash
Flash by holding down the reboot switch on the back of the PCB while plugging in the USB port. 

Make example for this keyboard (after setting up your build environment):

    make kwub/bloop:default

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).

A keyboards/kwub/bloop/rules.mk => keyboards/kwub/bloop/rules.mk +22 -0
@@ 0,0 1,22 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = atmel-dfu

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
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 = yes           # USB Nkey Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no       # Enable Bluetooth
AUDIO_ENABLE = no           # Audio output