Selaa lähdekoodia

[Keyboard] Add Alicia Cook keyboard (#11722)

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: robby-hartana <robby@alumagubi.com>
Ibnu Daru Aji 3 vuotta sitten
vanhempi
commit
4c298a9dd5

+ 17 - 0
keyboards/alicia_cook/alicia_cook.c

@@ -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"

+ 41 - 0
keyboards/alicia_cook/alicia_cook.h

@@ -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 }  \
+}

+ 48 - 0
keyboards/alicia_cook/config.h

@@ -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

+ 62 - 0
keyboards/alicia_cook/info.json

@@ -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}
+          ]
+      }
+  }
+}

+ 55 - 0
keyboards/alicia_cook/keymaps/default/keymap.c

@@ -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
+    ),
+};

+ 1 - 0
keyboards/alicia_cook/keymaps/default/readme.md

@@ -0,0 +1 @@
+# The default keymap for alicia_cook

+ 23 - 0
keyboards/alicia_cook/keymaps/rick/config.h

@@ -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

+ 246 - 0
keyboards/alicia_cook/keymaps/rick/keymap.c

@@ -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
+    ),
+};

+ 1 - 0
keyboards/alicia_cook/keymaps/rick/readme.md

@@ -0,0 +1 @@
+# Rick's Keymap for Alicia Cook

+ 2 - 0
keyboards/alicia_cook/keymaps/rick/rules.mk

@@ -0,0 +1,2 @@
+COMBO_ENABLE = yes
+CONSOLE_ENABLE = yes

+ 26 - 0
keyboards/alicia_cook/readme.md

@@ -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.
+

+ 18 - 0
keyboards/alicia_cook/rules.mk

@@ -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