From 370fdb89c2b63dafcbbe7deae40189dad26a820f Mon Sep 17 00:00:00 2001
From: Brian Mock <brian@mockbrian.com>
Date: Sat, 6 Oct 2018 20:55:48 -0700
Subject: [PATCH] Keymap: Adds TheVan RoadKit Gamepad Layout (#4090)

* adds prototype firmware for wavebeem-gamepad

* adds installer script

* updates readme

* updates title

* adds prototype firmware for wavebeem-gamepad

* adds installer script

* updates readme

* updates title

* removes unused code

* removes more code

* simplify code
---
 .../roadkit/keymaps/wavebeem-gamepad/keymap.c | 10 ++++++
 .../keymaps/wavebeem-gamepad/readme.md        | 35 +++++++++++++++++++
 .../roadkit/keymaps/wavebeem-gamepad/rules.mk | 17 +++++++++
 3 files changed, 62 insertions(+)
 create mode 100644 keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/keymap.c
 create mode 100644 keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/readme.md
 create mode 100644 keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/rules.mk

diff --git a/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/keymap.c b/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/keymap.c
new file mode 100644
index 0000000000..dfdded8e7b
--- /dev/null
+++ b/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/keymap.c
@@ -0,0 +1,10 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [0] = LAYOUT_ortho_4x4(
+    KC_TAB,  KC_Q,    KC_W,    KC_E,
+    KC_ESC,  KC_A,    KC_S,    KC_D,
+    KC_LSFT, KC_Z,    KC_X,    KC_C,
+    KC_F,    KC_LALT, KC_LCTL, KC_SPC
+  ),
+};
diff --git a/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/readme.md b/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/readme.md
new file mode 100644
index 0000000000..7eeb07ede1
--- /dev/null
+++ b/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/readme.md
@@ -0,0 +1,35 @@
+![Keymap Diagram](https://i.imgur.com/hRjbhEn.png)
+
+# Gamepad Layout by @wavebeem
+
+The concept behind this layout is the left side of a computer keyboard,
+optimized with essential keys for playing FPS games. It was designed for TheVan
+RoadKit, but it should work for any 4x4 ortholinear keyboard.
+
+I play with my pinky on `Shift`, thumb on `Space`, and the rest of my fingers on
+`W A S D`. I use my thumb for `Control`, `X`, and sometimes `C`. I usually use
+`Z` with my ring finger. It also helps to angle my fingers more perpendicular to
+the board in order to allow my thumb to more easily access the `Z X C` row.
+
+The number keys `1 2 3` are missing for weapon switching, but you can usually
+switch with the mouse wheel or rebind those to `Z X C` or something else.
+
+The key `R` for reloading is missing, but I prefer to use my extra mouse buttons
+for that.
+
+I don't really use `Alt` for games, but I kept it around for `Alt-Tab` in
+Windows.
+
+# Keymap Text Diagram
+
+```
++-------+-------+-------+-------+
+| Tab   | Q     | W     | E     |
++-------+-------+-------+-------+
+| Esc   | A     | S     | D     |
++-------+-------+-------+-------+
+| Shift | Z     | X     | C     |
++-------+-------+-------+-------+
+| F     | Alt   | Ctrl  | Space |
++-------+-------+-------+-------+
+```
diff --git a/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/rules.mk b/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/rules.mk
new file mode 100644
index 0000000000..72fd3d30ba
--- /dev/null
+++ b/keyboards/thevankeyboards/roadkit/keymaps/wavebeem-gamepad/rules.mk
@@ -0,0 +1,17 @@
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in
+#   the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = no         # Console for debug(+400)
+COMMAND_ENABLE = yes        # Commands for debug and configuration
+NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+MIDI_ENABLE = no            # MIDI controls
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend