From c55c7fed833701c0724a2465703c258518079899 Mon Sep 17 00:00:00 2001
From: Jesse Estes <jestes5111@gmail.com>
Date: Sun, 30 Apr 2023 05:01:25 -0400
Subject: [PATCH] Adding my keymap (#20345)

---
 .../keebio/iris/keymaps/jestes5111/config.h   |  23 +++
 .../keebio/iris/keymaps/jestes5111/keymap.c   | 163 ++++++++++++++++++
 .../keebio/iris/keymaps/jestes5111/readme.md  |   6 +
 .../keebio/iris/keymaps/jestes5111/rules.mk   |   9 +
 4 files changed, 201 insertions(+)
 create mode 100644 keyboards/keebio/iris/keymaps/jestes5111/config.h
 create mode 100644 keyboards/keebio/iris/keymaps/jestes5111/keymap.c
 create mode 100644 keyboards/keebio/iris/keymaps/jestes5111/readme.md
 create mode 100644 keyboards/keebio/iris/keymaps/jestes5111/rules.mk

diff --git a/keyboards/keebio/iris/keymaps/jestes5111/config.h b/keyboards/keebio/iris/keymaps/jestes5111/config.h
new file mode 100644
index 0000000000..01d397e207
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/jestes5111/config.h
@@ -0,0 +1,23 @@
+/*
+Copyright 2023 Jesse Estes (@jestes5111)
+
+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 EE_HANDS
+#define RGBLIGHT_SPLIT
+#define RGBLIGHT_SLEEP
+#define ENABLE_COMPILE_KEYCODE
\ No newline at end of file
diff --git a/keyboards/keebio/iris/keymaps/jestes5111/keymap.c b/keyboards/keebio/iris/keymaps/jestes5111/keymap.c
new file mode 100644
index 0000000000..c6c2ae9652
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/jestes5111/keymap.c
@@ -0,0 +1,163 @@
+/*
+Copyright 2023 Jesse Estes (@jestes5111)
+
+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
+
+// Combinations of two keystrokes for easier reading
+#define CSFT LCTL(KC_LSFT)
+#define GSFT LGUI(KC_LSFT)
+
+enum layers {
+    _QWERTY,
+    _LOWER,
+    _RAISE,
+    _ADJUST,
+    _FUNC,
+    _PASTA,
+};
+
+enum custom_keycodes {
+    THUMB = QK_USER,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [_QWERTY] = LAYOUT(
+    // ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐                              ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
+        QK_GESC,   KC_1,      KC_2,      KC_3,      KC_4,      KC_5,                                     KC_6,      KC_7,      KC_8,      KC_9,      KC_0,      KC_BSPC,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_TAB,    KC_Q,      KC_W,      KC_E,      KC_R,      KC_T,                                     KC_Y,      KC_U,      KC_I,      KC_O,      KC_P,      KC_APP,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_LCTL,   KC_A,      KC_S,      KC_D,      KC_F,      KC_G,                                     KC_H,      KC_J,      KC_K,      KC_L,      KC_SCLN,   KC_RCTL,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐        ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_LSFT,   KC_Z,      KC_X,      KC_C,      KC_V,      KC_B,      KC_LALT,            KC_RALT,   KC_N,      KC_M,      KC_COMM,   KC_DOT,    KC_SLSH,   KC_RSFT,
+    // └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘        └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
+                                              KC_LGUI,   TL_LOWR,   KC_SPC,                        KC_ENT,    TL_UPPR,   KC_RGUI
+    //                                       └──────────┴──────────┴──────────┘                   └──────────┴──────────┴──────────┘
+    ),
+
+    [_LOWER] = LAYOUT(
+    // ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐                              ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
+        KC_MSTP,   KC_MPLY,   KC_MPRV,   KC_MNXT,   KC_VOLU,   KC_VOLD,                                  KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_INS,    KC_DEL,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_NO,     KC_F13,    KC_F14,    KC_F15,    KC_F16,    KC_NO,                                    KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        CSFT,      KC_F17,    KC_F18,    KC_F19,    KC_F20,    KC_NO,                                    KC_LEFT,   KC_DOWN,   KC_UP,     KC_RGHT,   KC_NO,     RCS(KC_L),
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐        ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        GSFT,      KC_F21,    KC_F22,    KC_F23,    KC_F24,    KC_WHOM,   KC_NO,              KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘        └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
+                                              KC_NO,     KC_TRNS,   KC_NO,                         KC_UNDS,   KC_TRNS,   KC_NO
+    //                                       └──────────┴──────────┴──────────┘                   └──────────┴──────────┴──────────┘
+    ),
+
+    [_RAISE] = LAYOUT(
+    // ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐                              ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
+        KC_F12,    KC_F1,     KC_F2,     KC_F3,     KC_F4,     KC_F5,                                    KC_F6,     KC_F7,     KC_F8,     KC_F9,     KC_F10,    KC_F11,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_TAB,    KC_NO,     KC_NO,     KC_NO,     KC_AMPR,   KC_LPRN,                                  KC_RPRN,   KC_ASTR,   KC_EQL,    KC_MINS,   KC_PLUS,   KC_BSLS,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_ENT,    KC_NO,     KC_NO,     KC_NO,     KC_PIPE,   KC_LBRC,                                  KC_RBRC,   KC_NO,     KC_NO,     KC_NO,     KC_DQUO,   KC_QUOT,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐        ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_CAPS,   KC_NO,     KC_NO,     KC_NO,     KC_LABK,   KC_LCBR,   KC_MENU,            KC_NO,     KC_RCBR,   KC_RABK,   KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘        └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
+                                              KC_NO,     KC_TRNS,   KC_UNDS,                       KC_NO,     KC_TRNS,   KC_NO
+    //                                       └──────────┴──────────┴──────────┘                   └──────────┴──────────┴──────────┘
+    ),
+
+    [_ADJUST] = LAYOUT(
+    // ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐                              ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
+        RGB_TOG,   KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,                                    KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_NO,     KC_NO,     KC_NO,     KC_NO,     LCA(KC_R), LCA(KC_T),                                KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     QK_BOOT,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_NO,     KC_NO,     LCA(KC_V), LCA(KC_D), KC_NO,     KC_NO,                                    KC_NO,     TO(_FUNC), KC_NO,     QK_LOCK,   TO(_PASTA), QK_MAKE,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐        ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_LSFT,   KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,              KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     EE_CLR,
+    // └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘        └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
+                                              KC_NO,     KC_TRNS,   KC_NO,                         KC_NO,     KC_TRNS,   KC_NO
+    //                                       └──────────┴──────────┴──────────┘                   └──────────┴──────────┴──────────┘
+    ),
+
+    [_FUNC] = LAYOUT(
+    // ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐                              ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
+        KC_ESC,    KC_SLSH,   KC_ASTR,   KC_MINS,   KC_PLUS,   KC_EQL,                                   KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_BSPC,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_TAB,    KC_7,      KC_8,      KC_9,      KC_LPRN,   KC_RPRN,                                  KC_WH_L,   KC_WH_D,   KC_WH_U,   KC_WH_R,   KC_BTN3,   KC_NO,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_LCTL,   KC_4,      KC_5,      KC_6,      KC_DOT,    KC_NUM,                                   KC_MS_L,   KC_MS_D,   KC_MS_U,   KC_MS_R,   KC_NO,     KC_NO,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐        ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_LSFT,   KC_1,      KC_2,      KC_3,      KC_0,      KC_ENT,    KC_LALT,            KC_BTN2,   KC_BTN1,   KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘        └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
+                                            TO(_QWERTY), KC_CIRC,   KC_SPC,                        KC_ENT,    KC_BTN5,   KC_BTN4
+    //                                       └──────────┴──────────┴──────────┘                   └──────────┴──────────┴──────────┘
+    ),
+
+    [_PASTA] = LAYOUT(
+    // ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐                              ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
+        KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,                                    KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,                                    THUMB,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤                              ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,                                    KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐        ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+        KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,              KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
+    // └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘        └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
+                                            TO(_QWERTY), KC_TRNS,   KC_NO,                         KC_NO,     KC_TRNS,   KC_NO
+    //                                       └──────────┴──────────┴──────────┘                   └──────────┴──────────┴──────────┘
+    ),
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case THUMB:
+            if (record->event.pressed) {
+                SEND_STRING(":disguised_face: :thumbsup:");
+                wait_ms(100);
+                tap_code(KC_ENTER);
+            }
+            return false;
+    }
+    return true;
+}
+
+void keyboard_post_init_user(void) {
+    rgblight_enable_noeeprom();
+    rgblight_sethsv_noeeprom(HSV_PURPLE);
+    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+    switch (get_highest_layer(state)) {
+        case _LOWER:
+            rgblight_sethsv_noeeprom(HSV_GREEN);
+            break;
+        case _RAISE:
+            rgblight_sethsv_noeeprom(HSV_RED);
+            break;
+        case _ADJUST:
+            rgblight_sethsv_noeeprom(HSV_WHITE);
+            break;
+        case _FUNC:
+            rgblight_sethsv_noeeprom(HSV_BLUE);
+            break;
+        case _PASTA:
+            rgblight_sethsv_noeeprom(HSV_ORANGE);
+            break;
+        default:
+            rgblight_sethsv_noeeprom(HSV_PURPLE);
+            break;
+    }
+    return state;
+}
diff --git a/keyboards/keebio/iris/keymaps/jestes5111/readme.md b/keyboards/keebio/iris/keymaps/jestes5111/readme.md
new file mode 100644
index 0000000000..00ccbf9267
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/jestes5111/readme.md
@@ -0,0 +1,6 @@
+![Keymap SVG](https://i.imgur.com/mPKFzVWh.png)
+
+# My Iris
+
+Designed for creating/editing in VIM and Excel, gaming, and general keyboard-focused media consumption.
+WIP.
diff --git a/keyboards/keebio/iris/keymaps/jestes5111/rules.mk b/keyboards/keebio/iris/keymaps/jestes5111/rules.mk
new file mode 100644
index 0000000000..249ea5750e
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/jestes5111/rules.mk
@@ -0,0 +1,9 @@
+MOUSEKEY_ENABLE = yes
+EXTRAKEY_ENABLE = yes
+NKRO_ENABLE = yes
+BACKLIGHT_ENABLE = no
+KEY_LOCK_ENABLE = yes
+UNICODE_ENABLE = yes
+
+ENCODER_ENABLE = no
+TRI_LAYER_ENABLE = yes