~ruther/qmk_firmware

5222cf76739c982de9d279c51d2a8d18e2900388 — bojiguard 3 years ago ce19a9c
add fungo keyboard (#17513)

by bojiguard
A keyboards/fungo/fungo.c => keyboards/fungo/fungo.c +18 -0
@@ 0,0 1,18 @@
/* Copyright 2022 bojiguard (@bojiguard)
 *
 * 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 "fungo.h"


A keyboards/fungo/fungo.h => keyboards/fungo/fungo.h +23 -0
@@ 0,0 1,23 @@
/* Copyright 2022 bojiguard (@bojiguard)
 *
 * 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"

#ifdef KEYBOARD_fungo_rev1
    #include "rev1.h"
#endif

A keyboards/fungo/keymaps/default/config.h => keyboards/fungo/keymaps/default/config.h +24 -0
@@ 0,0 1,24 @@
/* This is the c configuration file for the keymap
 * Copyright 2022 bojiguard (@bojiguard)
 *
 * 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




#define IGNORE_MOD_TAP_INTERRUPT


A keyboards/fungo/keymaps/default/keymap.c => keyboards/fungo/keymaps/default/keymap.c +156 -0
@@ 0,0 1,156 @@
/* Copyright 2022 bojiguard (@bojiguard)
 *
 * 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 layer_names {
		SAM1,
		SAM2,
		SAM3,
		SAM4,
		BASE,
		F3LAY,
		F4LAY,
};





#define SFCTLNO MT(MOD_LCTL|MOD_LSFT,KC_NO) 

#define SFCT_S  MT(MOD_LCTL|MOD_LSFT,KC_S)
#define CT_D    MT(MOD_LCTL,KC_D)
#define SF_F    MT(MOD_LSFT,KC_F)

#define SF_J    MT(MOD_RSFT,KC_J)
#define CT_K    MT(MOD_RCTL,KC_K)

#define MTC_F7   MT(MOD_LCTL|MOD_LSFT, KC_F7)
#define MTC_F8   MT(MOD_LCTL, KC_F8)      
#define MTC_F9   MT(MOD_LSFT, KC_F9)

#define MTC_K   MT(MOD_RCTL, KC_K)      
#define MTC_J   MT(MOD_RSFT, KC_J)

#define MTC_8   MT(MOD_RCTL, KC_8)      
#define MTC_7   MT(MOD_RSFT, KC_7)

//#define MTLC_8   MT(MOD_LCTL, KC_8)      
#define MTLC_9   MT(MOD_LSFT, KC_9)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  /* BASE
   * ,------------------------------------------------.                                ,------------------------------------------------.
   * |   ~  |   1  |   2  |   3  |   4  |   5  | ESC  |                                |  BS  |   6  |   7  |   8  |   9  |   [  |   \  |
   * |------+------+------+------+------+------+------|                                |-------------+------+------+------+------+------|
   * | Tab  |   Q  |   W  |   E  |   R  |   T  |  `   |                                |   \  |   Y  |   U  |   I  |   O  |   P  | Tab  |
   * |------+------+------+------+------+------+------|                                |-------------+------+------+------+------+------|
   * | ctrl |   A  |   S  |   D  |   F  |   G  |  [   |                                |  ]   |   H  |   J  |   K  |   L  |   ;  | ctrl |
   * |------+------+------+------+------+------+------|                                |------|------+------+------+------+------+------|
   * | shift|   Z  |   X  |   C  |   V  |  B   |  3   |  -     | 7     ||  1   |   2   |  =   |  4   |   N  |   M  |   ,  |   .  |shift |
   * |------+------+------+------+------+------+------|                                |------+------+------+------+------+------+------|
   * |  1   |  2   |   3  |  4   |     alt     | spc  |  MO(1) |enter  ||enter | MO(0) |  spc |     alt     |  1   |   2  |   3  |  4   |
   * `------------------------------------------------'                                ------------------------------------------------'
   */

  [BASE] = LAYOUT_fungo_split_num(
    KC_GRV,     KC_1,     KC_2,    KC_3,    KC_4,     KC_5,    KC_ESC,                                                              KC_BSPC,  KC_6,  KC_7,   KC_8,    KC_9,    KC_0,    KC_NO,
    KC_TAB,     KC_Q,     KC_W,    KC_E,    KC_R,     KC_T,    KC_MINS,                                                             KC_EQL,   KC_Y,  KC_U,   KC_I,    KC_O,    KC_P,    KC_TAB,
    KC_NO,      KC_A,     SFCT_S,  CT_D,    SF_F,     KC_G,    KC_LBRC,                                                             KC_RBRC,  KC_H,  MTC_J,  MTC_K,   KC_L,    KC_SCLN, KC_NO,
    KC_LCTL,    KC_Z,     KC_X,    KC_C,    KC_V,     KC_B,    KC_BSLS,  LM(F3LAY, MOD_LSFT), KC_NO,   KC_NO,  LM(F3LAY, MOD_RSFT), KC_QUOT,  KC_N,  KC_M,   KC_COMM, KC_DOT,  KC_SLSH, KC_RCTL,
    KC_NO,      TT(SAM1), KC_NO,   KC_LALT,    KC_LSHIFT,      KC_SPC,   MO(F3LAY),           KC_ENT,  KC_ENT, TT(F3LAY),           KC_SPC,     KC_RSHIFT,   KC_RALT, KC_NO,   TT(SAM1),TG(F4LAY)
  ),

  /* BASE
   * ,------------------------------------------------.                                ,------------------------------------------------.
   * |   ~  |   1  |   2  |   3  |   4  |   5  | ESC  |                                |  BS  |   6  |   7  |   8  |   9  |   [  |   \  |
   * |------+------+------+------+------+------+------|                                |-------------+------+------+------+------+------|
   * | Tab  |   Q  |   W  |   E  |   R  |   T  |  `   |                                | DEL  | HOME |  UP  | END  |   O  |   P  | Tab  |
   * |------+------+------+------+------+------+------|                                |-------------+------+------+------+------+------|
   * | ctrl |   A  |   S  |   D  |   F  |   G  |  [   |                                | INS  | LEFT | DOWN | RIGHT|   L  |   ;  | ctrl |
   * |------+------+------+------+------+------+------|                                |------|------+------+------+------+------+------|
   * | shift|   Z  |   X  | ctr+C|ctr+V |  B   |  3   |  -     | 7     ||  1   |   2   |  NO  | PGUP |  NO  | PGDN |   ,  |   .  |shift |
   * |------+------+------+------+------+------+------|                                |------+------+------+------+------+------+------|
   * |  1   |  2   |   3  |  4   |     alt     | spc  |  MO(1) |enter  ||enter | MO(0) |  spc |     alt     |  1   |   2  |   3  |  4   |
   * `------------------------------------------------'                                ------------------------------------------------'
   */

  [F3LAY] = LAYOUT_fungo_split_num(
    KC_F11,     KC_F1,      KC_F2,       KC_F3,        KC_F4,        KC_F5,   KC_ESC,                                                              KC_BSPC, KC_F6,   KC_F7,   KC_F8,   KC_F9,    KC_F10,  KC_F12,
    KC_TAB,     KC_1,       KC_2,        KC_3,         KC_4,         KC_5,    KC_CAPS,                                                             KC_CAPS, KC_6,    KC_7,    KC_8,    KC_9,     KC_0,    KC_TAB,
    KC_NO,      KC_NO,      SFCTLNO,     KC_LCTL,      KC_LSFT,      KC_PAUS, KC_PSCR,                                                             KC_BSPC, KC_DEL,  KC_HOME, KC_UP,   KC_END,   KC_PGUP, KC_NO,
    KC_LCTL,    LCTL(KC_Z), LCTL(KC_X),  LCTL(KC_C),   LCTL(KC_V),   KC_NO,   KC_NO,    LM(F3LAY, MOD_LSFT), KC_NO,   KC_NO,  LM(F3LAY, MOD_RSFT), KC_NO,   KC_INS,  KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_RCTL,
    KC_NO,      KC_NO,      KC_NO,       KC_LALT,           KC_LSHIFT,        KC_SPC,   MO(F3LAY),           KC_ENT,  KC_ENT, TT(F3LAY),           KC_SPC,     KC_RSHIFT,     KC_RALT, KC_NO,    KC_NO,   TG(F4LAY)
  ),


  [F4LAY] = LAYOUT_fungo_split_num(
    KC_F11,     KC_F1,      KC_F2,       KC_F3,        KC_F4,        KC_F5,   KC_ESC,                                                              KC_BSPC, KC_F6,   KC_F7,   KC_F8,   KC_F9,    KC_F10,  KC_F12,
    KC_TAB,     KC_NO,      KC_NO,       KC_NO,        KC_NO,        KC_NO,   KC_CAPS,                                                             KC_CAPS, KC_DEL,  KC_HOME, KC_UP,   KC_END,   KC_NO,   KC_TAB,
    KC_NO,      KC_NO,      SFCTLNO,     KC_LCTL,      KC_LSFT,      KC_PAUS, KC_PSCR,                                                             KC_BSPC, KC_INS,  KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO,   KC_NO,
    KC_LCTL,    LCTL(KC_Z), LCTL(KC_X),  LCTL(KC_C),   LCTL(KC_V),   KC_NO,   KC_NO,    LM(F3LAY, MOD_LSFT), KC_NO,   KC_NO,  LM(F3LAY, MOD_RSFT), KC_NO,   KC_INS,  KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_RCTL,
    KC_NO,      KC_NO,      KC_NO,       KC_LALT,           KC_LSHIFT,        KC_SPC,   MO(F3LAY),           KC_ENT,  KC_ENT, TT(F3LAY),           KC_SPC,     KC_RSHIFT,     KC_RALT, KC_NO,    KC_NO,   TG(F4LAY)
  ),
  
  /*
    [TEST] = LAYOUT_fungo_split_num(
    KC_GRV,     KC_1,   KC_2,    KC_3,    KC_4,     KC_5,    KC_ESC,                                                KC_BSPC,  KC_6,    KC_7,    KC_8,      KC_9,   KC_0,    KC_NO,
    KC_TAB,     KC_Q,   KC_W,    KC_E,    KC_R,     KC_T,    KC_MINS,                                               KC_EQL,   KC_Y,    KC_U,    KC_I,      KC_O,   KC_P,    KC_TAB,
    KC_LSFT,    KC_A,   KC_S,    KC_D,    KC_F,     KC_G,    KC_LBRC,                                               KC_RBRC,  KC_H,    KC_J,    KC_K,      KC_L,   KC_SCLN, KC_RSFT,
    KC_LCTL,    KC_Z,   KC_X,    KC_C,    KC_V,     KC_B,    KC_BSLS,  KC_LCTL,        KC_NO,   KC_NO,  TG(F4LAY),  KC_QUOT,  KC_N,    KC_M,    KC_COMM,   KC_DOT, KC_SLSH, KC_RCTL,
    KC_NO,      KC_NO,  KC_NO,   KC_LALT,    KC_LSHIFT,      KC_SPC,   MO(F3LAY),      KC_ENT,  KC_ENT, TT(F3LAY),  KC_SPC,      KC_RSHIFT,     KC_RALT,   KC_NO,  KC_NO,   KC_NO
  ),
  */
  
  //--------------------------------------------------------NEW-----------------------------------------------
  //SAM1을 기반으로 새로운 모드
    [SAM1] = LAYOUT_fungo_split_num(
    KC_NO,      KC_1,     KC_2,    KC_3,    KC_4,     KC_5,    KC_ESC,                                            KC_ESC,   KC_6,  KC_7,   KC_8,    KC_9,    KC_0,     KC_NO,
    KC_NO,      KC_Q,     KC_W,    KC_E,    KC_R,     KC_T,    KC_BSPC,                                           KC_BSPC,  KC_Y,  KC_U,   KC_I,    KC_O,    KC_P,     KC_NO,
    KC_TAB,     KC_A,     SFCT_S,  CT_D,    SF_F,     KC_G,    KC_CAPS,                                           KC_CAPS,  KC_H,  MTC_J,  MTC_K,   KC_L,    KC_SCLN,  KC_TAB,
    KC_LCTL,    KC_Z,     KC_X,    KC_C,    KC_V,     KC_B,    KC_NO,     TT(SAM3),   KC_NO,    KC_NO, TT(SAM2),  KC_NO,    KC_N,  KC_M,   KC_COMM, KC_DOT,  KC_SLSH,  KC_RCTL,
    KC_NO,      TT(SAM1), KC_NO,   KC_LALT,    KC_SPC,         TT(SAM2),  KC_ENT,     MO(SAM4), KC_NO, KC_ENT,    TT(SAM3),     KC_SPC,    KC_RALT, KC_NO,   TT(SAM1), KC_NO
  ),
  
    [SAM3] = LAYOUT_fungo_split_num(
    KC_NO,      KC_NO,      KC_NO,       KC_NO,        KC_NO,        KC_NO,   KC_ESC,                                       KC_ESC,  KC_NO,   KC_NO,     KC_NO,   KC_NO,    KC_NO,    KC_NO,
    KC_NO,      KC_1,       KC_2,        KC_3,         KC_4,         KC_5,    KC_BSPC,                                      KC_BSPC, KC_1,    KC_2,      KC_3,    KC_4,     KC_5,     KC_NO,
    KC_TAB,     KC_6,       KC_7,        KC_8,         MTLC_9,       KC_0,    KC_CAPS,                                      KC_CAPS, KC_6,    MTC_7,     MTC_8,   KC_9,     KC_0,     KC_TAB,
    KC_LCTL,    KC_PSLS,    KC_PAST,     KC_MINS,      KC_PPLS,      KC_EQL,  KC_DOT,   TT(SAM3),  KC_NO,  KC_NO, TT(SAM2), KC_DOT,  KC_EQL,  KC_PPLS,   KC_PMNS, KC_PAST,  KC_PSLS,  KC_RCTL,
    KC_NO,      TT(SAM1),   KC_NO,       KC_LALT,             KC_SPC,         TT(SAM2), KC_ENT,    MO(SAM4),  KC_NO, KC_ENT,   TT(SAM3),    KC_SPC,         KC_RALT, KC_NO,    TT(SAM1), KC_NO
  ),
  
    [SAM2] = LAYOUT_fungo_split_num(
    KC_NO,      KC_NO,      KC_NO,       KC_NO,        KC_NO,        KC_NO,   KC_ESC,                                       KC_ESC,  KC_NO,   KC_NO,   KC_NO,   KC_NO,    KC_NO,   KC_NO,
    KC_NO,      KC_F1,      KC_F2,       KC_F3,        KC_F4,        KC_F5,   KC_F11,                                       KC_BSPC, KC_DEL,  KC_HOME, KC_UP,   KC_END,   KC_PGUP, KC_NO,
    KC_TAB,     KC_F6,      MTC_F7,      MTC_F8,       MTC_F9,       KC_F10,  KC_F12,                                       KC_CAPS, KC_INS,  KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TAB,
    KC_LCTL,    LCTL(KC_Z), LCTL(KC_X),  LCTL(KC_C),   LCTL(KC_V),   KC_NO,   KC_NO,    TT(SAM3),  KC_NO,  KC_NO, TT(SAM2), KC_NO,   KC_BSLS, KC_QUOT, KC_LBRC, KC_RBRC,  KC_GRV,  KC_RCTL,
    KC_NO,      TT(SAM1),   KC_NO,       KC_LALT,             KC_SPC,         TT(SAM2), KC_ENT,    MO(SAM4),  KC_NO, KC_ENT,   TT(SAM3),    KC_SPC,       KC_RALT, KC_NO,   TT(SAM1), KC_NO
  ),  
    [SAM4] = LAYOUT_fungo_split_num(
    KC_NO,      KC_NO,      KC_NO,       KC_NO,        KC_NO,        KC_NO,   KC_ESC,                                       KC_ESC,   KC_NO,     KC_NO,   KC_NO,   KC_NO,    KC_NO,    KC_NO,
    KC_NO,      KC_F1,      KC_F2,       KC_F3,        KC_F4,        KC_F5,   KC_F11,                                       KC_BSPC,  KC_ACL0,   KC_BTN1, KC_MS_U, KC_BTN2,  KC_NO,    KC_NO,
    KC_TAB,     KC_F6,      MTC_F7,      MTC_F8,       MTC_F9,       KC_F10,  KC_F12,                                       KC_CAPS,  KC_ACL1,   KC_MS_L, KC_MS_D, KC_MS_R,  KC_NO,    KC_TAB,
    KC_NO,      KC_NO,      KC_ACL0,     KC_ACL1,      KC_ACL2,      KC_NO,   KC_NO,    TT(SAM3),  KC_NO,  KC_NO, TT(SAM2), KC_NO,    KC_ACL2,   KC_WH_L, KC_WH_U, KC_WH_D,  KC_WH_R,  KC_RCTL,
    KC_NO,      TT(SAM1),   KC_NO,       KC_LALT,             KC_SPC,         TT(SAM2), KC_ENT,    MO(SAM4),  KC_NO, KC_ENT,   TT(SAM3),       KC_SPC,       KC_RALT, KC_NO,    TT(SAM1), KC_NO
  ),  
};




A keyboards/fungo/readme.md => keyboards/fungo/readme.md +28 -0
@@ 0,0 1,28 @@
# fungo split keyboard (fungo)


A split keyboard for my hands.

* Keyboard Maintainer: [bojiguard](https://github.com/bojiguard/)
* Hardware Supported: Pro Micro, elite-c, nicenano
* Hardware Availability: [fungo split keyboard](https://github.com/bojiguard/fungo-split-keyboard)

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

    make fungo/rev1: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).  


## Bootloader

* **Physical reset button**: Briefly press the button on the front of the PCB

## Characteristics

The circuits on the left and right keyboard are different.  
Hardware Information: [Document](https://github.com/bojiguard/fungo-split-keyboard)  
matrix: 5x7+3  
left : support oled  
right: support external spi connection  
all: battery switch, battery jack for nicenano  

A keyboards/fungo/rev1/config.h => keyboards/fungo/rev1/config.h +80 -0
@@ 0,0 1,80 @@
/* Copyright 2022 bojiguard (@bojiguard)
 *
 * 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       0x5892      
#define PRODUCT_ID      0x1233
#define DEVICE_VER      0x0001
#define MANUFACTURER    Fungo
#define PRODUCT         FungoSplit




/* Use I2C or Serial, not both */
#define USE_SERIAL
#define SOFT_SERIAL_PIN D3	// RX8

/* select keyboard  master board  - I2C or Serial communication master    */
#define MASTER_RIGHT


/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 12
#define MATRIX_COLS 7

// wiring of each half
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2}
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5}

#define MATRIX_COL_PINS_RIGHT {F7, F6, F5, F4, B5, B4, E6}
#define MATRIX_ROW_PINS_RIGHT { D1, D0, D4, C6, D7, D3}    	// TX   




/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW



/*************************************/
/**       public parameter       **/
/*************************************/

#define MATRIX_IO_DELAY 15  // default  30
#define TAP_CODE_DELAY  50   // default 0, disabled

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

/* 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

//지정된 횟수로 눌러야 토글됨
#define TAPPING_TOGGLE 3



A keyboards/fungo/rev1/info.json => keyboards/fungo/rev1/info.json +111 -0
@@ 0,0 1,111 @@
{
  "keyboard_name": "FungoSplit",
  "manufacturer": "Fungo",
  "url": "https://github.com/bojiguard/",
  "maintainer": "@bojiguard",
  "usb": {
    "vid": "0x5892",
    "pid": "0x1233",
    "device_version": "0.0.1"
  },
  "layouts": {
    "LAYOUT_fungo_split_num": {
      "layout": [
                {"x": 0, "y": 0.375},
                {"x": 1, "y": 0.375},
                {"x": 2, "y": 0.125},
                {"x": 3, "y": 0},
                {"x": 4, "y": 0.125},
                {"x": 5, "y": 0.25},
                {"x": 6, "y": 0.5},

                {"x": 12, "y": 0.5},
                {"x": 13, "y": 0.25},
                {"x": 14, "y": 0.125},
                {"x": 15, "y": 0},
                {"x": 16, "y": 0.125},
                {"x": 17, "y": 0.375},
                {"x": 18, "y": 0.375},
				

                {"x": 0, "y": 1.375},
                {"x": 1, "y": 1.375},
                {"x": 2, "y": 1.125},
                {"x": 3, "y": 1},
                {"x": 4, "y": 1.125},
                {"x": 5, "y": 1.25},
                {"x": 6, "y": 1.5},

                {"x": 12, "y": 1.5},
                {"x": 13, "y": 1.25},
                {"x": 14, "y": 1.125},
                {"x": 15, "y": 1},
                {"x": 16, "y": 1.125},
                {"x": 17, "y": 1.375},
                {"x": 18, "y": 1.375},
				
		{"x": 0, "y": 2.375},
                {"x": 1, "y": 2.375},
                {"x": 2, "y": 2.125},
                {"x": 3, "y": 2},
                {"x": 4, "y": 2.125},
                {"x": 5, "y": 2.25},
                {"x": 6, "y": 2.5},

                {"x": 12, "y": 2.5},
                {"x": 13, "y": 2.25},
                {"x": 14, "y": 2.125},
                {"x": 15, "y": 2},
                {"x": 16, "y": 2.125},
                {"x": 17, "y": 2.375},
                {"x": 18, "y": 2.375},
				
		{"x": 0, "y": 3.375},
                {"x": 1, "y": 3.375},
                {"x": 2, "y": 3.125},
                {"x": 3, "y": 3},
                {"x": 4, "y": 3.125},
                {"x": 5, "y": 3.25},
                {"x": 6, "y": 3.5},

                {"x": 12, "y": 3.5},
                {"x": 13, "y": 3.25},
                {"x": 14, "y": 3.125},
                {"x": 15, "y": 3},
                {"x": 16, "y": 3.125},
                {"x": 17, "y": 3.375},
                {"x": 18, "y": 3.375},
				
		{"x": 0, "y": 4.375},
                {"x": 1, "y": 4.375},
                {"x": 2, "y": 4.25},
                {"x": 3, "y": 4.25},
                {"x": 5.25, "y": 3},
		{"x": 5.75, "y": 5},
		{"x": 7, "y": 4},
					
                {"x": 11, "y": 4},	
                {"x": 13.25, "y": 5},	
		{"x": 13.75, "y": 3},
                {"x": 15, "y": 4.25},		
                {"x": 16, "y": 4.25},				
                {"x": 17, "y": 4.375},
                {"x": 18, "y": 4.375},


                {"x": 7, "y": 5},
		{"x": 8.25, "y": 3.75},
		{"x": 8.25, "y": 4.75},

		{"x": 9.75, "y": 4.75},
		{"x": 9.75, "y": 3.75},
		{"x": 11, "y": 5},

				
				
    
                
            ]
    }
  }
}

A keyboards/fungo/rev1/post_config.h => keyboards/fungo/rev1/post_config.h +30 -0
@@ 0,0 1,30 @@
/* Copyright 2022 bojiguard (@bojiguard)
 *
 * 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

#ifndef MK_3_SPEED
#define MK_3_SPEED
#endif

#ifndef MOUSEKEY_INTERVAL
#define MOUSEKEY_INTERVAL 3
#endif

#ifndef MOUSEKEY_INITIAL_SPEED
#define MOUSEKEY_INITIAL_SPEED	20
#endif
\ No newline at end of file

A keyboards/fungo/rev1/rev1.c => keyboards/fungo/rev1/rev1.c +17 -0
@@ 0,0 1,17 @@
/* Copyright 2022 bojiguard (@bojiguard)
 *
 * 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 "fungo.h"

A keyboards/fungo/rev1/rev1.h => keyboards/fungo/rev1/rev1.h +48 -0
@@ 0,0 1,48 @@
/* Copyright 2022 bojiguard (@bojiguard)
 *
 * 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 "fungo.h"
#include "quantum.h"



#define LAYOUT_fungo_split_num( \
	L00, L01, L02, L03, L04, L05, L06,                       R06, R05, R04, R03, R02, R01, R00, \
	L10, L11, L12, L13, L14, L15, L16,                       R16, R15, R14, R13, R12, R11, R10, \
	L20, L21, L22, L23, L24, L25, L26,                       R26, R25, R24, R23, R22, R21, R20, \
	L30, L31, L32, L33, L34, L35, L36, L46, L52,   R52, R46, R36, R35, R34, R33, R32, R31, R30, \
	L50, L51, L40, L41,    L42,   L43, L44, L45,   R45, R44, R43,    R42,   R41, R40, R51, R50 \
	) \
	{ \
		{ L00, L01, L02, L03, L04, L05, L06}, \
		{ L10, L11, L12, L13, L14, L15, L16}, \
		{ L20, L21, L22, L23, L24, L25, L26}, \
		{ L30, L31, L32, L33, L34, L35, L36}, \
		{ L40, L41, L42, L43, L44, L45, L46}, \
		{ L50, L51, L52, KC_NO, KC_NO, KC_NO, KC_NO}, \
		{ R06, R05, R04, R03, R02, R01, R00}, \
		{ R16, R15, R14, R13, R12, R11, R10}, \
		{ R26, R25, R24, R23, R22, R21, R20}, \
		{ R36, R35, R34, R33, R32, R31, R30}, \
		{ R46, R45, R44, R43, R42, R41, R40}, \
		{ KC_NO, KC_NO, KC_NO, KC_NO, R52, R51, R50}, \
	}





A keyboards/fungo/rev1/rules.mk => keyboards/fungo/rev1/rules.mk +28 -0
@@ 0,0 1,28 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina  # controller pro micro
# BOOTLOADER = atmel-dfu   # controller Elite-C



# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes       # Mouse keys
EXTRAKEY_ENABLE = no       # Audio control and System control
CONSOLE_ENABLE = no         # Console for debug
COMMAND_ENABLE = no       # Commands for debug and configuration
NKRO_ENABLE = no            # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output
KEY_LOCK_ENABLE = yes       # kc_lock use


OLED_ENABLE = no
OLED_DRIVER = SSD1306      # OLED display
SPLIT_KEYBOARD = yes       # split type