From a904371b29e50d0d338b7ff0a9abfdffc5dcb426 Mon Sep 17 00:00:00 2001
From: Daniel Dylewsky <54324976+ddylewsky@users.noreply.github.com>
Date: Mon, 27 Apr 2020 13:29:27 -0400
Subject: [PATCH] [Keymap] Vitamins_included keymap vitavim (#8864)

* Add new keymap to vitamins_included, this has four layers. Updated config file to sync rgb between the two halves.

* Cleaned up and added documentation for the keymap

* Updated the keymaps and documentation.

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/config.h

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c

* Update keyboards/vitamins_included/keymaps/vitavim/keymap.c
---
 .../keymaps/vitavim/config.h                  |  42 +++++++
 .../keymaps/vitavim/keymap.c                  | 106 ++++++++++++++++++
 2 files changed, 148 insertions(+)
 create mode 100644 keyboards/vitamins_included/keymaps/vitavim/config.h
 create mode 100644 keyboards/vitamins_included/keymaps/vitavim/keymap.c

diff --git a/keyboards/vitamins_included/keymaps/vitavim/config.h b/keyboards/vitamins_included/keymaps/vitavim/config.h
new file mode 100644
index 0000000000..95dd8ec464
--- /dev/null
+++ b/keyboards/vitamins_included/keymaps/vitavim/config.h
@@ -0,0 +1,42 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+/* Use I2C or Serial. Default is Serial */
+// #define USE_I2C
+
+/* Select hand configuration */
+// Defaults:
+// Rev1: EE_HANDS
+// Rev2: SPLIT_HAND_PIN B4
+
+// You can override the defaults (rev1 doesn't support SPLIT_HAND_PIN)
+//#define EE_HANDS
+//#define MASTER_LEFT
+//#define MASTER_RIGHT
+
+
+#ifdef AUDIO_ENABLE
+  #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
+                                SONG(DVORAK_SOUND), \
+                                SONG(COLEMAK_SOUND) \
+                              }
+#endif
diff --git a/keyboards/vitamins_included/keymaps/vitavim/keymap.c b/keyboards/vitamins_included/keymaps/vitavim/keymap.c
new file mode 100644
index 0000000000..e90f0e076e
--- /dev/null
+++ b/keyboards/vitamins_included/keymaps/vitavim/keymap.c
@@ -0,0 +1,106 @@
+#include QMK_KEYBOARD_H
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layers {
+    _ALPHAS,
+    _MODS,
+    _VIM,
+    _NUMPAD,
+    _CODE,
+};
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Alphas
+ * ,--------------------------------------------------------------------------------------------.
+ * | Tab    |   q  |  w  |   e  |    r    |  t   |   y  |   u   |   i  |   o  |   p    |   ins  |
+ * |--------+------+-----+------+---------+------+------+-------+------+------+--------+--------|
+ * |ctl(esc)|   a  |  s  |   d  |    f    |  g   |   h  |   j   |  k   |   l  |LT(2,;:)|sft(ent)|
+ * |--------+------+-----+------+---------+------|------+-------+------+------+--------+--------|
+ * |LSPO    |   z  |  x  |   c  |    v    |  b   |   n  |   m   |  ,<  |  .>  |   up   |  RSPC  |
+ * |--------+------+-----+------+---------+------+------+-------+------+------+--------+--------|
+ * | ctl    |  GUI | alt |MO(1) |lt(3,del)|Space |Space |bckspc |MO(4) | left |  down  |  right |
+ * `--------------------------------------------------------------------------------------------'
+ */
+[_ALPHAS] = LAYOUT_ortho_4x12(
+  KC_TAB,         KC_Q,    KC_W,    KC_E,  KC_R,         KC_T,   KC_Y,   KC_U,    KC_I,    KC_O,    KC_P,          KC_INS,
+  LCTL_T(KC_ESC), KC_A,    KC_S,    KC_D,  KC_F,         KC_G,   KC_H,   KC_J,    KC_K,    KC_L,    LT(2,KC_SCLN), RSFT_T(KC_ENT),
+  KC_LSPO,        KC_Z,    KC_X,    KC_C,  KC_V,         KC_B,   KC_N,   KC_M,    KC_COMM, KC_DOT,  KC_UP,         KC_RSPC,
+  KC_LCTL,        KC_LGUI, KC_LALT, MO(1), LT(3,KC_DEL), KC_SPC, KC_SPC, KC_BSPC, MO(4),   KC_LEFT, KC_DOWN,       KC_RGHT
+),
+
+/* MODS
+ * ,-----------------------------------------------------------------------------------.
+ * |  `~   |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  | F10  |PrtSc |
+ * |-------+------+------+------+------+-------------+------+------+------+------+------|
+ * |Meh(F7)|  !   |   *  |   #  |  $   |  %   |  ^   |   &  |  *   |  '"  |  "   |  \|  |
+ * |-------+------+------+------+------+------|------+------+------+------+------+------|
+ * | LS/(  |  z   |   x  |  [{  |  ]   |   b  |  -_  |  =+  |  /?  |  \|  | PgUp | RS/) |
+ * |-------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl  |      |      |      |      | spc  |  _   |bckspc|      | Home |PgDwn | End  |
+ * `------------------------------------------------------------------------------------'
+ */
+[_MODS] =  LAYOUT_ortho_4x12(
+    KC_GRV,          KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_PSCR,
+    MEH(KC_F7),      KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_QUOT, KC_DQUO, KC_BSLS,
+    LSFT_T(KC_LCBR), KC_Z,    KC_X,    KC_LBRC, KC_RBRC, KC_B,    KC_MINS, KC_EQL,  KC_SLSH, KC_BSLS, KC_PGUP, RSFT_T(KC_RCBR),
+    KC_LCTL,         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC,  KC_UNDS, KC_BSPC, KC_NO,   KC_HOME, KC_PGDN, KC_END
+),
+
+/* VIM layer that adds vim navigation by holding the ; key. Includes keys like $,^ for end/beg of line and b,w,e,d,y. Also includes
+ * quick keys for excel like alt(=) for sum, ctl(+) & ctl(-) to add/remove columns/rows.
+ * ,--------------------------------------------------------------------------------------.
+ * |  Tab   |  "'  |  b  |  w  |   e    |  d  |   y  | Vol- | Vol+ | TO(0)|  TG(2) |reset |
+ * |--------+------+-----+-----+--------+-----+------+------+------+------+--------+------|
+ * |Ctl(Esc)| Home |Home |Pg Up|Pg Down | End | Left | Down |  Up  |Right |LT(2,;:)|Enter |
+ * |--------+------+-----+-----+--------+-----|------+------+------+------+--------+------|
+ * | sft    |  ;:  |  q  |  ^  |   $    |  x  |alt(=)|ctl(+)|ctl(-)|      |        |      |
+ * |--------+------+-----+-----+--------+-----+------+------+------+------+--------+------|
+ * | Ctl    |  GUI | alt | sft |sft(ctl)| spc |  del | bspc |      |      |        |      |
+ * `--------------------------------------------------------------------------------------'
+ */
+[_VIM] =  LAYOUT_ortho_4x12(
+    KC_TAB,         KC_QUOT, KC_B,    KC_W,    KC_E,          KC_D,   KC_Y,         KC_VOLD,       KC_VOLU,       TO(0),   TG(2),         RESET,
+    LCTL_T(KC_ESC), KC_HOME, KC_HOME, KC_PGUP, KC_PGDN,       KC_END, KC_LEFT,      KC_DOWN,       KC_UP,         KC_RGHT, LT(2,KC_SCLN), KC_ENT,
+    KC_LSFT,        KC_SCLN, KC_Q,    KC_CIRC, KC_DLR,        KC_X,   RALT(KC_EQL), RCTL(KC_PLUS), RCTL(KC_PMNS), KC_NO,   KC_NO,         KC_TRNS,
+    KC_LCTL,        KC_LGUI, KC_LALT, KC_LSFT, LSFT(KC_LCTL), KC_SPC, KC_DEL,       KC_BSPC,       KC_NO,         KC_NO,   KC_NO,         KC_TRNS
+),
+
+/* NUMPAD: Numpad with operators and other keys
+ * ,-------------------------------------------------------------------------------------.
+ * |  [{  |   !  |   @  |   #  |   $  |   %  |  (   |   7  |  8   |   9  |  )   |   ]}   |
+ * |------+------+------+------+------+-------------+------+------+------+------+--------|
+ * |  {   |  /   |   *  |   -  |  +   |      |  =   |   4  |  5   |  6   |  ;:  |   }    |
+ * |------+------+------+------+------+------|------+------+------+------+------+--------|
+ * | sft( |      |      |      |      |      |      |   1  |  2   |  3   |      |kc_sft()|
+ * |------+------+------+------+------+------+------+------+------+------+------+--------|
+ * |      |      |      |      |      |Space |Space |   0  |      |      |      |        |
+ * `-------------------------------------------------------------------------------------'
+ */
+[_NUMPAD] =  LAYOUT_ortho_4x12(
+    KC_LBRC, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_LPRN, KC_7, KC_8,  KC_9,  KC_RPRN, KC_RBRC,
+    KC_LCBR, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_NO,   KC_EQL,  KC_4, KC_5,  KC_6,  KC_SCLN, KC_RCBR,
+    KC_LSPO, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_TRNS, KC_1, KC_2,  KC_3,  KC_PEQL, KC_RSPC,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC,  KC_0, KC_NO, KC_NO, KC_NO,   KC_NO
+),
+
+/* CODE
+ * ,---------------------------------------------------------------------------.
+ * | ~` | F11 | F12 | 3  |  4  |  5  |  6   |   :  |   -  |   >  |   0  |  Del |
+ * |----+-----+-----+----+-----+-------------+------+-----+------+------+------|
+ * |    |  /  |  *  | {  | [{  |  (  |   )  |  ]}  |  }   |  '"  |  ]}  |  \|  |
+ * |----+-----+-----+----+-----+-----|------+------+------+------+------+------|
+ * |    | F7  | F8  | F9 | F10 | F11 |   ~  |  =   |  \   |RGBTOG|RGBHUI|RGBHUD|
+ * |----+-----+-----+----+-----+-----+------+------+------+------+------+------|
+ * |    |     |     |    |     |     |      |      |      |RGBVAD|RBGVAI|RGBMOD|
+ * `---------------------------------------------------------------------------'
+ */
+[_CODE] =  LAYOUT_ortho_4x12(
+    KC_GRV,  KC_F11,  KC_F12,  KC_3,    KC_4,    KC_5,    KC_6,    KC_COLN, KC_MINS, KC_GT,   KC_0,    KC_DEL,
+    KC_TRNS, KC_PSLS, KC_PAST, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, KC_QUOT, KC_RBRC, KC_BSLS,
+    KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_TILD, KC_EQL,  KC_NUBS, RGB_TOG, RGB_HUI, RGB_HUD,
+    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, RGB_MOD
+)
+
+};