From 3e18bb914cbdba36b574aaf020afe0e93d3d87fd Mon Sep 17 00:00:00 2001
From: mcmadhatter <mcmadhatter@hotmail.com>
Date: Tue, 31 Mar 2020 23:01:09 +0100
Subject: [PATCH] [Keymap] Add support for the Launch Pad in VIA (#8615)

* Added via config support for the launchpad

Added via config support for the launchpad

* Update keyboards/launchpad/keymaps/via/rules.mk

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update keyboards/launchpad/keymaps/via/keymap.c

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update keyboards/launchpad/keymaps/via/keymap.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/launchpad/keymaps/via/keymap.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/launchpad/keymaps/via/keymap.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/launchpad/keymaps/via/keymap.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/launchpad/keymaps/via/keymap.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update keyboards/launchpad/keymaps/via/keymap.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
---
 keyboards/launchpad/keymaps/via/keymap.c | 94 ++++++++++++++++++++++++
 keyboards/launchpad/keymaps/via/rules.mk |  1 +
 2 files changed, 95 insertions(+)
 create mode 100644 keyboards/launchpad/keymaps/via/keymap.c
 create mode 100644 keyboards/launchpad/keymaps/via/rules.mk

diff --git a/keyboards/launchpad/keymaps/via/keymap.c b/keyboards/launchpad/keymaps/via/keymap.c
new file mode 100644
index 0000000000..c984320354
--- /dev/null
+++ b/keyboards/launchpad/keymaps/via/keymap.c
@@ -0,0 +1,94 @@
+// Below layout is based upon /u/That-Canadian's planck layout
+#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 layer_names {
+    _QWERTY,
+    _FUNC,
+    _LAYER2,
+    _LAYER3
+};
+
+// Defines for task manager and such
+#define CALTDEL LCTL(LALT(KC_DEL))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-------------.
+ * |   1  |  2   |
+ * |------+------|
+ * |   3  |  4   |
+ * |------+------|
+ * |   5  |  6   |
+ * |------+------|
+ * | FUNC |  8   |
+ * `-------------'
+ */
+[_QWERTY] = LAYOUT(
+    KC_1,      KC_2,
+    KC_3,      KC_4,
+    KC_5,      KC_6,
+    MO(_FUNC), KC_8
+),
+
+/* Function
+ * ,-------------.
+ * |   Q  |CALDEL|
+ * |------+------|
+ * |   A  |TSKMGR|
+ * |------+------|
+ * |   Z  |  X   |
+ * |------+------|
+ * |      |  C   |
+ * `-------------'
+ */
+[_FUNC] = LAYOUT(
+    KC_Q,    CALTDEL,
+    KC_A,    TSKMGR,
+    KC_Z,    KC_X,
+    KC_TRNS, KC_C
+),
+
+/* Layer 2
+ * ,-------------.
+ * |      |      |
+ * |------+------|
+ * |      |      |
+ * |------+------|
+ * |      |      |
+ * |------+------|
+ * |      |      |
+ * `-------------'
+ */
+[_LAYER2] = LAYOUT(
+    KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS
+),
+
+/* Layer 3
+ * ,-------------.
+ * |      |      |
+ * |------+------|
+ * |      |      |
+ * |------+------|
+ * |      |      |
+ * |------+------|
+ * |      |      |
+ * `-------------'
+ */
+[_LAYER3] = LAYOUT(
+    KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS,
+    KC_TRNS, KC_TRNS
+)
+
+};
diff --git a/keyboards/launchpad/keymaps/via/rules.mk b/keyboards/launchpad/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/launchpad/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes