~ruther/qmk_firmware

4c298a9dd5f93cd6e26238e16c0a3ea46fe593e7 — Ibnu Daru Aji 3 years ago 01e4d07
[Keyboard] Add Alicia Cook keyboard (#11722)

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: robby-hartana <robby@alumagubi.com>
A keyboards/alicia_cook/alicia_cook.c => keyboards/alicia_cook/alicia_cook.c +17 -0
@@ 0,0 1,17 @@
/* Copyright 2021 Ibnu D. Aji
 *
 * 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 "alicia_cook.h"

A keyboards/alicia_cook/alicia_cook.h => keyboards/alicia_cook/alicia_cook.h +41 -0
@@ 0,0 1,41 @@
/* Copyright 2021 Ibnu D. Aji
 *
 * 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"

#define XXX KC_NO

/* 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_all( \
    k00, k01, k02, k03, k04, k05,    k06, k07, k08, k09, k0a, k0b, k0c, \
    k10, k11, k12, k13, k14, k15,    k16, k17, k18, k19, k1a, k1b,      \
    k20, k21, k22, k23, k24, k25,    k26, k27, k28, k29, k2a, k2b, k2c, \
    k30, k31,      k33, k34, k35,    k36, k37, k38,           k3b, k3c  \
) { \
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, XXX }, \
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
    { k30, k31, XXX, k33, k34, k35, k36, k37, k38, XXX, XXX, k3b, k3c }  \
}

A keyboards/alicia_cook/config.h => keyboards/alicia_cook/config.h +48 -0
@@ 0,0 1,48 @@
/*
Copyright 2021 Ibnu D. Aji

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    0xFEED
#define PRODUCT_ID   0x6955
#define DEVICE_VER   0x0899
#define MANUFACTURER Ibnu D. Aji
#define PRODUCT      Alicia Cook

/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 13

/*
 * 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 { D2, D3, F4, F5 }
#define MATRIX_COL_PINS { B5, F6, F7, B1, B3, B2, B4, E6, D7, C6, D4, D0, D1 }
#define UNUSED_PINS

/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW

A keyboards/alicia_cook/info.json => keyboards/alicia_cook/info.json +62 -0
@@ 0,0 1,62 @@
{
  "keyboard_name": "Alicia Cook",
  "url": "https://github.com/ibnuda/alicia-cook",
  "maintainer": "ibnuda",
  "layouts": {
      "LAYOUT_all": {
          "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":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":0,"y":1,"w":1.25},
            {"x":1.25,"y":1},
            {"x":2.25,"y":1},
            {"x":3.25,"y":1},
            {"x":4.25,"y":1},
            {"x":5.25,"y":1},
            {"x":7.25,"y":1},
            {"x":8.25,"y":1},
            {"x":9.25,"y":1},
            {"x":10.25,"y":1},
            {"x":11.25,"y":1},
            {"x":12.25,"y":1,"w":1.75},

            {"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":1.25},

            {"x":0,"y":3,"w":1.25},
            {"x":1.25,"y":3,"w":1.25},
            {"x":3.5,"y":3,"w":1.25},
            {"x":4.75,"y":3},
            {"x":5.75,"y":3},
            {"x":6.75,"y":3,"w":1.25},
            {"x":8,"y":3},
            {"x":9,"y":3,"w":1.25},
            {"x":11.5,"y":3,"w":1.25},
            {"x":12.75,"y":3,"w":1.25}
          ]
      }
  }
}

A keyboards/alicia_cook/keymaps/default/keymap.c => keyboards/alicia_cook/keymaps/default/keymap.c +55 -0
@@ 0,0 1,55 @@
/*
Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>

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

#define LW_BSPC LT(2, KC_BSPC)
#define RS_SPC  LT(1, KC_SPC)

#define ALT_ENT ALT_T(KC_ENT)
#define SFT_ESC SFT_T(KC_ESC)

// home row mods.
#define CT_S    RCTL_T(KC_S)
#define CT_L    RCTL_T(KC_L)
#define SH_A    RSFT_T(KC_A)
#define SH_SCLN RSFT_T(KC_SCLN)
#define AL_D    RALT_T(KC_D)
#define AL_K    RALT_T(KC_K)
#define GU_G    RGUI_T(KC_G)
#define GU_H    RGUI_T(KC_H)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT_all(
        KC_ESC, KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,            KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,   KC_DEL, KC_BSPC,
        KC_LCTL,SH_A,   CT_S,   AL_D,   KC_F,   KC_G,            KC_H,   KC_J,   KC_K,   KC_L,   KC_QUOT,     KC_SCLN,
        KC_LSFT,KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,            KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(1),
        KC_LGUI,KC_LALT,        KC_LGUI,LW_BSPC,SFT_ESC,         ALT_ENT,RS_SPC, KC_LALT,                KC_RGUI,KC_RCTL
    ),
    [1] = LAYOUT_all(
        KC_ESC, KC_1,   KC_2,   KC_3,   KC_4,   KC_5,            KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_DEL, KC_BSPC,
        KC_LCTL,KC_EXLM,KC_AT,  KC_HASH,KC_DLR, KC_PERC,         KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,   KC_SCLN,
        KC_LSFT,KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,            KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(2),
        KC_LGUI,KC_LALT,        KC_LGUI,LW_BSPC,SFT_ESC,         ALT_ENT,RS_SPC, KC_LALT,                KC_RGUI,KC_RCTL
    ),
    [2] = LAYOUT_all(
        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_F13,
        KC_LCTL,KC_EXLM,KC_AT,  KC_HASH,KC_DLR, KC_PERC,         KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,   KC_SCLN,
        KC_LSFT,KC_Z,   KC_X,   KC_C,   KC_V,   RESET,           KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(1),
        KC_LGUI,KC_LALT,        KC_LGUI,LW_BSPC,SFT_ESC,         ALT_ENT,RS_SPC, KC_LALT,                KC_RGUI,KC_RCTL
    ),
};

A keyboards/alicia_cook/keymaps/default/readme.md => keyboards/alicia_cook/keymaps/default/readme.md +1 -0
@@ 0,0 1,1 @@
# The default keymap for alicia_cook

A keyboards/alicia_cook/keymaps/rick/config.h => keyboards/alicia_cook/keymaps/rick/config.h +23 -0
@@ 0,0 1,23 @@
/* Copyright 2021 Ibnu D. Aji
 *
 * 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 COMBO_TERM  50
#define COMBO_COUNT 50
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
#define TAPPING_TERM 175
#define TAPPING_TERM 175

A keyboards/alicia_cook/keymaps/rick/keymap.c => keyboards/alicia_cook/keymaps/rick/keymap.c +246 -0
@@ 0,0 1,246 @@
/* Copyright 2021 Ibnu D. Aji
 *
 * 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
#ifdef CONSOLE_ENABLE
#include "print.h"
#endif

// enum for combos.
enum combos {
    // left hand combinations.
    L_U_PINKY_RING,
    L_U_RING_MIDDLE,
    L_U_RING_INDEX,
    L_U_MIDDLE_INDEX,
    L_U_MIDDLE_INNER_INDEX,
    L_U_INDEX_INNER_INDEX,
    L_L_PINKY_RING,
    L_L_RING_MIDDLE,
    L_L_RING_INDEX,
    L_L_MIDDLE_INDEX,
    L_L_INDEX_INNER_INDEX,

    L_U_RING_MIDDLE_INDEX,
    L_L_RING_MIDDLE_INDEX,

    // right hand combinations.
    R_U_PINKY_RING,
    R_U_RING_MIDDLE,
    R_U_RING_INDEX,
    R_U_MIDDLE_INDEX,
    R_U_MIDDLE_INNER_INDEX,
    R_U_INNER_INNER_INDEX,
    R_L_PINKY_RING,
    R_L_RING_MIDDLE,
    R_L_MIDDLE_INDEX,
    R_L_RING_INDEX,
    R_L_INDEX_INNER_INDEX,

    R_U_RING_MIDDLE_INDEX,
    R_L_RING_MIDDLE_INDEX,

    // both hands combinations.
    B_L_MIDDLE_MIDDLE,
};

enum {
    _BASE,
    _LOWER,
    _RAISE,
    _ADJUST,
};

enum custom_keycodes {
  BASE = SAFE_RANGE,
  LOWER,
  RAISE,
  ADJUST,
};

// keycode abstraction
#define LUP  KC_Q
#define LUR  KC_V
#define LUM  KC_C
#define LUI  KC_P
#define LUII KC_B
#define LMP  KC_R
#define LMR  KC_S
#define LMM  KC_T
#define LMI  KC_H
#define LMII KC_D
#define LLP  KC_QUOT
#define LLR  KC_J
#define LLM  KC_G
#define LLI  KC_K
#define LLII KC_X

#define RUP  KC_Z
#define RUR  KC_Y
#define RUM  KC_U
#define RUI  KC_L
#define RUII KC_DOT
#define RMP  KC_O
#define RMR  KC_I
#define RMM  KC_A
#define RMI  KC_N
#define RMII KC_F
#define RLP  KC_SLSH
#define RLR  KC_COMM
#define RLM  KC_W
#define RLI  KC_M
#define RLII KC_SCLN

// thumb keys.
#define TRAISE   TG(_RAISE)
#define AL_ENT   ALT_T(KC_ENT)
#define SF_BSPC  SFT_T(KC_BSPC)
#define CT_ESC   CTL_T(KC_ESC)

// home row mods.
#define CTLR    LCTL_T(LMR)
#define CTRR    RCTL_T(RMR)
#define CT_LEFT LCTL_T(KC_LEFT)
#define CT_SIX  RCTL_T(KC_6)

#define SHLP    LSFT_T(LMP)
#define SHRP    RSFT_T(RMP)
#define SH_HASH LSFT_T(KC_HASH)
#define SH_ZERO RSFT_T(KC_0)

#define ALLM    LALT_T(LMM)
#define ALRM    RALT_T(RMM)
#define AL_DOWN LALT_T(KC_DOWN)
#define AL_FIVE RALT_T(KC_5)

#define GULII   RGUI_T(LMII)
#define GURII   LGUI_T(RMII)
#define GU_DLR  RGUI_T(KC_DLR)
#define GU_EQL  LGUI_T(KC_EQL)

// layer toggle.
#define LW_E     LT(_LOWER, KC_E)
#define RS_SPC   LT(_RAISE, KC_SPC)
#define LW_RMI   LT(_LOWER, RMI)
#define RS_LMI   LT(_RAISE, LMI)

// idk, man. not used, i guess.
#define ADDDD    MO(_ADJUST)

// common shortcuts for windows and linux that i use.
#define NXTTAB LCTL(KC_PGDN)
#define PRVTAB LCTL(KC_PGUP)
#define UPTAB  LCTL(LSFT(KC_PGUP))
#define DNTAB  LCTL(LSFT(KC_PGDN))
#define NXTWIN LALT(KC_TAB)
#define PRVWIN LALT(LSFT(KC_TAB))
#define CALDL  LCTL(LALT(KC_DELT))
#define TSKMGR LCTL(LSFT(KC_ESC))
#define EXPLR  LGUI(KC_E)
#define LCKGUI LGUI(KC_L)
#define CONPST LSFT(KC_INS)
#define CLSGUI LALT(KC_F4)

// left hand combinations.
const uint16_t PROGMEM lu_p_r_combo[]     = {LUP, LUR,  COMBO_END};
const uint16_t PROGMEM lu_r_m_combo[]     = {LUR, LUM,  COMBO_END};
const uint16_t PROGMEM lu_r_i_combo[]     = {LUR, LUI,  COMBO_END};
const uint16_t PROGMEM lu_m_i_combo[]     = {LUM, LUI,  COMBO_END};
const uint16_t PROGMEM lu_m_ii_combo[]    = {LUM, LUII, COMBO_END};
const uint16_t PROGMEM lu_i_ii_combo[]    = {LUI, LUII, COMBO_END};
const uint16_t PROGMEM ll_p_r_combo[]     = {LLP, LLR,  COMBO_END};
const uint16_t PROGMEM ll_r_m_combo[]     = {LLR, LLM,  COMBO_END};
const uint16_t PROGMEM ll_r_i_combo[]     = {LLR, LLI,  COMBO_END};
const uint16_t PROGMEM ll_m_i_combo[]     = {LLM, LLI,  COMBO_END};
const uint16_t PROGMEM ll_i_ii_combo[]    = {LLI, LLII, COMBO_END};

const uint16_t PROGMEM lu_r_m_i_combo[]   = {LUR, LUM, LUI, COMBO_END};
const uint16_t PROGMEM ll_r_m_i_combo[]   = {LLR, LLM, LLI, COMBO_END};

// right hand combinations.
const uint16_t PROGMEM ru_p_r_combo[]      = {RUP, RUR,  COMBO_END};
const uint16_t PROGMEM ru_r_m_combo[]      = {RUR, RUM,  COMBO_END};
const uint16_t PROGMEM ru_r_i_combo[]      = {RUR, RUI,  COMBO_END};
const uint16_t PROGMEM ru_m_i_combo[]      = {RUM, RUI,  COMBO_END};
const uint16_t PROGMEM ru_m_ii_combo[]     = {RUM, RUII, COMBO_END};
const uint16_t PROGMEM ru_i_ii_combo[]     = {RUI, RUII, COMBO_END};
const uint16_t PROGMEM rl_p_r_combo[]      = {RLP, RLR,  COMBO_END};
const uint16_t PROGMEM rl_r_m_combo[]      = {RLR, RLM,  COMBO_END};
const uint16_t PROGMEM rl_r_i_combo[]      = {RLR, RLI,  COMBO_END};
const uint16_t PROGMEM rl_m_i_combo[]      = {RLM, RLI,  COMBO_END};
const uint16_t PROGMEM rl_i_ii_combo[]     = {RLI, RLII, COMBO_END};

const uint16_t PROGMEM ru_r_m_i_combo[]   =  {RUR, RUM, RUI, COMBO_END};
const uint16_t PROGMEM rl_r_m_i_combo[]   =  {RLR, RLM, RLI, COMBO_END};

// both hand combinations.
const uint16_t PROGMEM bl_m_m_combo[]      = {LLM, RLM, COMBO_END};

combo_t key_combos[COMBO_COUNT] = {
    // left hand combinations.
    [L_U_PINKY_RING]          = COMBO(lu_p_r_combo,  KC_TAB),
    [L_U_RING_MIDDLE]         = COMBO(lu_r_m_combo,  KC_QUES),
    [L_U_RING_INDEX]          = COMBO(lu_r_i_combo,  PRVTAB),
    [L_U_MIDDLE_INDEX]        = COMBO(lu_m_i_combo,  KC_UNDS),
    [L_U_MIDDLE_INNER_INDEX]  = COMBO(lu_m_ii_combo, KC_ENT),
    [L_U_INDEX_INNER_INDEX]   = COMBO(lu_i_ii_combo, KC_PIPE),
    [L_L_PINKY_RING]          = COMBO(ll_p_r_combo,  KC_ENT),
    [L_L_RING_MIDDLE]         = COMBO(ll_r_m_combo,  LCTL(KC_W)),
    [L_L_RING_INDEX]          = COMBO(ll_r_i_combo,  KC_TAB),
    [L_L_MIDDLE_INDEX]        = COMBO(ll_m_i_combo,  KC_DELT),
    [L_L_INDEX_INNER_INDEX]   = COMBO(ll_i_ii_combo, KC_TILD),

    [L_U_RING_MIDDLE_INDEX]   = COMBO(lu_r_m_i_combo, KC_PIPE),
    [L_L_RING_MIDDLE_INDEX]   = COMBO(ll_r_m_i_combo, KC_TILD),

    // right hand combinations.
    [R_U_PINKY_RING]          = COMBO(ru_p_r_combo,  KC_BSPC),
    [R_U_RING_MIDDLE]         = COMBO(ru_r_m_combo,  KC_SLSH),
    [R_U_RING_INDEX]          = COMBO(ru_r_i_combo,  NXTTAB),
    [R_U_MIDDLE_INDEX]        = COMBO(ru_m_i_combo,  KC_MINS),
    [R_U_MIDDLE_INNER_INDEX]  = COMBO(ru_m_ii_combo, KC_ENT),
    [R_U_INNER_INNER_INDEX]   = COMBO(ru_i_ii_combo, KC_BSLS),
    [R_L_PINKY_RING]          = COMBO(rl_p_r_combo,  KC_BSLS),
    [R_L_RING_MIDDLE]         = COMBO(rl_r_m_combo,  KC_APP),
    [R_L_RING_INDEX]          = COMBO(rl_r_i_combo,  LSFT(KC_TAB)),
    [R_L_MIDDLE_INDEX]        = COMBO(rl_m_i_combo,  KC_DELT),
    [R_L_INDEX_INNER_INDEX]   = COMBO(rl_i_ii_combo, KC_GRV),

    [R_U_RING_MIDDLE_INDEX]   = COMBO(ru_r_m_i_combo, KC_BSLS),
    [R_L_RING_MIDDLE_INDEX]   = COMBO(rl_r_m_i_combo, KC_GRV),

    // both hand combinations.
    [B_L_MIDDLE_MIDDLE]       = COMBO(bl_m_m_combo,  KC_ENT),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT_all(
        KC_ESC, LUP,    LUR,    LUM,    LUI,    LUII,            RUII,   RUI,    RUM,    RUR,    RUP,   KC_BSPC, KC_BSPC,
        KC_LCTL,SHLP,   CTLR,   ALLM,   RS_LMI, GULII,           GURII,  LW_RMI, ALRM,   CTRR,   SHRP,  KC_ENT,
        KC_LSFT,LLP,    LLR,    LLM,    LLI,    LLII,            RLII,   RLI,    RLM,    RLR,    RLP,   KC_RSFT,MO(1),
        KC_LGUI,KC_LALT,        KC_LGUI,LW_E,   SF_BSPC,         AL_ENT, RS_SPC, KC_LALT,               KC_RGUI,KC_RCTL
    ),
    [1] = LAYOUT_all(
        KC_ESC, KC_1,   KC_2,   KC_3,   KC_4,   KC_5,            KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_DEL, KC_BSPC,
        KC_LCTL,KC_EXLM,KC_AT,  KC_HASH,KC_DLR, KC_PERC,         KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,   KC_SCLN,
        KC_LSFT,KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,            KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(2),
        KC_LGUI,KC_LALT,        KC_LGUI,LW_E,   SF_BSPC,         AL_ENT, RS_SPC, KC_LALT,                KC_RGUI,KC_RCTL
    ),
    [2] = LAYOUT_all(
        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_F13,
        KC_LCTL,KC_EXLM,KC_AT,  KC_HASH,KC_DLR, KC_PERC,         KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,   KC_SCLN,
        KC_LSFT,KC_Z,   KC_X,   KC_C,   KC_V,   RESET,           KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(1),
        KC_LGUI,KC_LALT,        KC_LGUI,LW_E,   SF_BSPC,         AL_ENT, RS_SPC, KC_LALT,                KC_RGUI,KC_RCTL
    ),
};

A keyboards/alicia_cook/keymaps/rick/readme.md => keyboards/alicia_cook/keymaps/rick/readme.md +1 -0
@@ 0,0 1,1 @@
# Rick's Keymap for Alicia Cook

A keyboards/alicia_cook/keymaps/rick/rules.mk => keyboards/alicia_cook/keymaps/rick/rules.mk +2 -0
@@ 0,0 1,2 @@
COMBO_ENABLE = yes
CONSOLE_ENABLE = yes
\ No newline at end of file

A keyboards/alicia_cook/readme.md => keyboards/alicia_cook/readme.md +26 -0
@@ 0,0 1,26 @@
# Alicia Cook

![Alicia Cook](https://raw.githubusercontent.com/ibnuda/alicia-cook/master-of-puppets/alicia-cook.jpg)

40% Alice-style keyboard that can be split and uses IDC connector.

* Keyboard Maintainer: [Ibnu D. Aji](https://github.com/ibnuda)
* Hardware Supported: [Alicia Cook](https://github.com/ibnuda/alicia-cook)
* Hardware Availability: [Alicia Cook](https://github.com/ibnuda/alicia-cook)

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

    make alicia_cook:default

Flashing example for this keyboard:

    make alicia_cook: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).

## Bootloader

To enter the bootloader, there's only one way to do it:

* **Keycode in layout**: Hold left spacebar and then tap `B` key in the default keymap.


A keyboards/alicia_cook/rules.mk => keyboards/alicia_cook/rules.mk +18 -0
@@ 0,0 1,18 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = yes     # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no       # 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