From f75c7266a3c30a44e16a831e383baba97fc07eca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dennis=20Tr=C3=BCmper?= <truemper.accipiter@gmail.com>
Date: Sat, 11 Mar 2017 00:02:39 +0100
Subject: [PATCH 1/4] working but some documentation needed

---
 .../keymaps/neo2_on_qwerz_hardware/keymap.c   | 407 ++++++++++++++++++
 .../keymaps/neo2_on_qwerz_hardware/keymap.md  | 188 ++++++++
 2 files changed, 595 insertions(+)
 create mode 100644 keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
 create mode 100644 keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md

diff --git a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
new file mode 100644
index 0000000000..cfc51a4e46
--- /dev/null
+++ b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
@@ -0,0 +1,407 @@
+#include "ergodox.h"
+#include "action_layer.h"
+#include "keymap_extras/keymap_german.h"
+
+#define UM 0
+
+#define L0   0      // layer_0
+#define L1   1      // layer_1
+#define L2   2      // layer_2
+#define L3   3      // layer_3
+#define L4   4      // layer_4
+#define L5   5      // layer_5
+#define L6   6      // layer_6
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/*
+ * .------------------------------------.------------------------------------.
+ * |ESC  | 1  | 2  | 3  | 4  | 5  |ACUT | GRV | 6  | 7  | 8  | 9  | 0  |CIRC |
+ * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+ * |TAB  | X  | V  | L  | C  | W  |Print|     | K  | H  | G  | F  | Q  |  SS |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |MO(1)| U  | I  | A  | E  | O  |-----!-----! S  | N  | R  | T  | D  | Y   |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |LSFT | UE | OE | AE | P  | Z  |SPACE|     | B  | M  |COMM| DOT| J  |RSFT |
+ * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+ *  |LCTL|LGUI|LALT|MO(3)|MO(2)|                   !MO(2)|MO(3)|APP |RALT|RCTL|
+ *  '------------------------'                     '------------------------'
+ *                         .-----------. .-----------.
+ *                         |VOL- |VOL+ | !MUTE |PLAY |
+ *                   .-----+-----+-----! !-----+-----+-----.
+ *                   !     !     |     | !     |     !     !
+ *                   ! CTL !     !-ALT-! !-CTL-!     ! ALT !
+ *                   |ENTER|MO(1)| TAB | !ESC  |MO(3)|SPACE|
+ *                   '-----------------' '-----------------'
+ */
+[L0] = KEYMAP(
+ KC_ESC,  DE_1,    DE_2,     DE_3,    DE_4,     DE_5,    DE_ACUT,
+ KC_TAB,  DE_X,    DE_V,     DE_L,    DE_C,     DE_W,    KC_PSCR,
+ MO(1),   DE_U,    DE_I,     DE_A,    DE_E,     DE_O,
+ KC_LSFT, DE_UE,   DE_OE,    DE_AE,   DE_P,     DE_Z,    KC_SPACE,
+ KC_LCTL, KC_LGUI, KC_LALT,  MO(3),   MO(2),
+ /*-*/    /*-*/    /*-*/     /*-*/    /*-*/     KC_VOLD, KC_VOLU,
+ /*-*/    /*-*/    /*-*/     /*-*/    /*-*/     /*-*/    KC_TRNS,
+ /*-*/    /*-*/    /*-*/     /*-*/    CTL_T(KC_ENTER), MO(1),   ALT_T(KC_TAB),
+ DE_GRV,  DE_6,    DE_7,     DE_8,    DE_9,     DE_0,    DE_CIRC,
+ KC_TRNS, DE_K,    DE_H,     DE_G,    DE_F,     DE_Q,    DE_SS,
+ /*-*/    DE_S,    DE_N,     DE_R,    DE_T,     DE_D,    DE_Y,
+ KC_TRNS, DE_B,    DE_M,     DE_COMM, DE_DOT,   DE_J,    KC_RSFT,
+ /*-*/    /*-*/    MO(2),    MO(3),   KC_APP,   KC_RALT, KC_RCTL,
+ KC_MUTE, KC_MPLY,
+ KC_TRNS,
+ CTL_T(KC_ESC), MO(3),   ALT_T(KC_SPACE)
+),
+/*
+ * .------------------------------------.------------------------------------.
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+ * |     |EURO|UNDS|LBRC|RBRC|    |     |     |EXLM|LESS|MORE|EQL |AMPR|     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |BSLS|SLSH|LCBR|RCBR|ASTR|-----!-----!QST |LPRN|RPRN|MINS|COLN| AT  |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |HASH|DLR |PIPE|TILD|    |     |     |PLUS|PERC|DQOT|QUOT|SCLN|     |
+ * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+ *  |    |    |    |    |    |                     !    |    |    |    |    |
+ *  '------------------------'                     '------------------------'
+ *                         .-----------. .-----------.
+ *                         |     |     | !     |     |
+ *                   .-----+-----+-----! !-----+-----+-----.
+ *                   !     !     |     | !     |     !     !
+ *                   !     !     !-----! !-----!     !     !
+ *                   |     |     |     | !     |     |     |
+ *                   '-----------------' '-----------------'
+ */
+[L1] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, DE_EURO, DE_UNDS, DE_LBRC, DE_RBRC, KC_TRNS, KC_TRNS,
+ KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR,
+ KC_TRNS, DE_HASH, DE_DLR,  DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, DE_EXLM, DE_LESS, DE_MORE, DE_EQL,  DE_AMPR, KC_TRNS,
+ /*-*/    DE_QST,  DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, DE_AT,
+ KC_TRNS, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_TRNS,
+ /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/*
+ * .------------------------------------.------------------------------------.
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+ * |     |PGUP|BSPC| UP |DEL |PGDN|     |     |    |  7 |  8 |  9 |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |HOME|LEFT|DOWN|RGHT|END |-----!-----!    |  4 |  5 |  6 |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |    |PREV|NEXT|    |     |     |    |  1 |  2 |  3 |    |     |
+ * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+ *  |    |    |    |    |    |                     !    |    |    |    |    |
+ *  '------------------------'                     '------------------------'
+ *                         .-----------. .-----------.
+ *                         |     |     | !     |     |
+ *                   .-----+-----+-----! !-----+-----+-----.
+ *                   !     !     |     | !     |     !     !
+ *                   !     !     !-----! !-----!     !     !
+ *                   |     |     |     | !     |     |  0  |
+ *                   '-----------------' '-----------------'
+ */
+[L2] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_PGUP, KC_BSPC, KC_UP,   KC_DEL,  KC_PGDN, KC_TRNS,
+ KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, DE_7,    DE_8,    DE_9,    KC_TRNS, KC_TRNS,
+ /*-*/    KC_TRNS, DE_4,    DE_5,    DE_6,    KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, DE_1,    DE_2,    DE_3,    KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, DE_0
+),
+/*
+ * .------------------------------------.------------------------------------.
+ * |     | F1 | F2 | F3 | F4 | F5 | F6  |     |    |    |    |    |    |     |
+ * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+ * |     | F7 | F8 | F9 | F10| F11| F12 |     |    |M_WU|M_CU|M_WD|    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |M_B5 |M_B4|M_B3|M_B2|M_B1|    |-----!-----!    |M_CL|M_CD|M_CR|    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |M_A2|M_A1|M_A0|    |     |     |    |    |    |    |    |     |
+ * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+ *  |    |    |    |    |    |                     !    |    |    |    |    |
+ *  '------------------------'                     '------------------------'
+ *                         .-----------. .-----------.
+ *                         |     |     | !     |     |
+ *                   .-----+-----+-----! !-----+-----+-----.
+ *                   !     !     |     | !     |     !     !
+ *                   !     !     !-----! !-----!     !     !
+ *                   |     |     |     | !     |     |     |
+ *                   '-----------------' '-----------------'
+ */
+[L3] = KEYMAP(
+ KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,
+ KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
+ KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_ACL2, KC_ACL1, KC_ACL0, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WH_U, KC_MS_U, KC_WH_D, KC_TRNS, KC_TRNS,
+ /*-*/    KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/*
+ * .------------------------------------.------------------------------------.
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+ *  |    |    |    |    |    |                     !    |    |    |    |    |
+ *  '------------------------'                     '------------------------'
+ *                         .-----------. .-----------.
+ *                         |     |     | !     |     |
+ *                   .-----+-----+-----! !-----+-----+-----.
+ *                   !     !     |     | !     |     !     !
+ *                   !     !     !-----! !-----!     !     !
+ *                   |     |     |     | !     |     |     |
+ *                   '-----------------' '-----------------'
+ */
+[L4] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/*
+ * .------------------------------------.------------------------------------.
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+ *  |    |    |    |    |    |                     !    |    |    |    |    |
+ *  '------------------------'                     '------------------------'
+ *                         .-----------. .-----------.
+ *                         |     |     | !     |     |
+ *                   .-----+-----+-----! !-----+-----+-----.
+ *                   !     !     |     | !     |     !     !
+ *                   !     !     !-----! !-----!     !     !
+ *                   |     |     |     | !     |     |     |
+ *                   '-----------------' '-----------------'
+ */
+[L5] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/*
+ * .------------------------------------.------------------------------------.
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+ * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+ * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+ * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+ *  |    |    |    |    |    |                     !    |    |    |    |    |
+ *  '------------------------'                     '------------------------'
+ *                         .-----------. .-----------.
+ *                         |     |     | !     |     |
+ *                   .-----+-----+-----! !-----+-----+-----.
+ *                   !     !     |     | !     |     !     !
+ *                   !     !     !-----! !-----!     !     !
+ *                   |     |     |     | !     |     |     |
+ *                   '-----------------' '-----------------'
+ */
+[L6] = KEYMAP(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS,
+ /*-*/    /*-*/    /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ /*-*/    /*-*/    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {};
+
+#define UC_MODE_WIN 0
+#define UC_MODE_LINUX 1
+#define UC_MODE_OSX 2
+
+// TODO: allow default mode to be configured
+static uint16_t unicode_mode = UC_MODE_WIN;
+
+uint16_t hextokeycode(uint8_t hex) {
+    if (hex == 0x0) {
+        return KC_P0;
+    }
+    if (hex < 0xA) {
+        return KC_P1 + (hex - 0x1);
+    }
+    return KC_A + (hex - 0xA);
+}
+
+void unicode_action_function(uint16_t hi, uint16_t lo) {
+    switch (unicode_mode) {
+    case UC_MODE_WIN:
+        register_code(KC_LALT);
+
+        register_code(KC_PPLS);
+        unregister_code(KC_PPLS);
+
+        register_code(hextokeycode((hi & 0xF0) >> 4));
+        unregister_code(hextokeycode((hi & 0xF0) >> 4));
+        register_code(hextokeycode((hi & 0x0F)));
+        unregister_code(hextokeycode((hi & 0x0F)));
+        register_code(hextokeycode((lo & 0xF0) >> 4));
+        unregister_code(hextokeycode((lo & 0xF0) >> 4));
+        register_code(hextokeycode((lo & 0x0F)));
+        unregister_code(hextokeycode((lo & 0x0F)));
+
+        unregister_code(KC_LALT);
+        break;
+    case UC_MODE_LINUX:
+        register_code(KC_LCTL);
+        register_code(KC_LSFT);
+
+        register_code(KC_U);
+        unregister_code(KC_U);
+
+        register_code(hextokeycode((hi & 0xF0) >> 4));
+        unregister_code(hextokeycode((hi & 0xF0) >> 4));
+        register_code(hextokeycode((hi & 0x0F)));
+        unregister_code(hextokeycode((hi & 0x0F)));
+        register_code(hextokeycode((lo & 0xF0) >> 4));
+        unregister_code(hextokeycode((lo & 0xF0) >> 4));
+        register_code(hextokeycode((lo & 0x0F)));
+        unregister_code(hextokeycode((lo & 0x0F)));
+
+        unregister_code(KC_LCTL);
+        unregister_code(KC_LSFT);
+        break;
+    case UC_MODE_OSX:
+        break;
+    }
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+    if (!record->event.pressed) {
+        return MACRO_NONE;
+    }
+    // MACRODOWN only works in this function
+    switch(id) {
+        case UM:
+            unicode_mode = (unicode_mode + 1) % 2;
+            break;
+
+
+        default:
+            break;
+    }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+    uint8_t layer = biton32(layer_state);
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+    switch (layer) {
+        case L1:
+            ergodox_right_led_1_on();
+            break;
+        case L2:
+            ergodox_right_led_2_on();
+            break;
+        case L3:
+            ergodox_right_led_3_on();
+            break;
+        case L4:
+            ergodox_right_led_1_on();
+            ergodox_right_led_2_on();
+            break;
+        case L5:
+            ergodox_right_led_1_on();
+            ergodox_right_led_3_on();
+            break;
+        // case L6:
+        //     ergodox_right_led_2_on();
+        //     ergodox_right_led_3_on();
+        //     break;
+        // case L7:
+        //     ergodox_right_led_1_on();
+        //     ergodox_right_led_2_on();
+        //     ergodox_right_led_3_on();
+        //     break;
+        default:
+            ergodox_board_led_off();
+            break;
+    }
+};
diff --git a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md
new file mode 100644
index 0000000000..fdcc86a497
--- /dev/null
+++ b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md
@@ -0,0 +1,188 @@
+# ManuNeo Ergodox Keyboard Layout
+
+Compile this file to a `keymap.c` file using `compile_keymap.py`
+
+    python compile_keymap.py keymaps/german-manuneo/keymap.md
+
+Tested with python 2.7 and python 3.4
+
+
+# Layout Config
+
+    {
+        "layout": "ergodox_ez",
+        "keymaps_includes": [
+            "ergodox.h",
+            "action_layer.h",
+            "keymap_common.h",
+            "keymap_extras/keymap_german.h",
+        ],
+        "key_prefixes": ["DE_", "KC_"],
+        "macros": {
+            // TODO: implement macros
+            // "MUC": "",
+        },
+        // TODO: implement default unicode mode
+    }
+
+
+# Layers
+
+
+## Layer 0
+
+    .------------------------------------.------------------------------------.
+    |ESC  | 1  | 2  | 3  | 4  | 5  |ACUT | GRV | 6  | 7  | 8  | 9  | 0  |CIRC |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |TAB  | X  | V  | L  | C  | W  |     |     | K  | H  | G  | F  | Q  |  SS |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |MO(1)| U  | I  | A  | E  | O  |-----!-----! S  | N  | R  | T  | D  | Y   |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |LSFT | UE | OE | AE | P  | Z  |SPACE|     | B  | M  |COMM| DOT| J  |RSFT |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |LCTL|LGUI|LCTL|MO(3)|MO(2)|                   !MO(2)|MO(3)|APP |RALT|RCTL|
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |ENTER|MO(3)|LGUI | !RCTL |MO(1)|SPACE|
+                      '-----------------' '-----------------'
+
+
+## Layer 1
+
+    .------------------------------------.------------------------------------.
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |     |EURO|UNDS|LBRC|RBRC|    |     |     |EXLM|LESS|MORE|EQL |AMPR|     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |BSLS|SLSH|LCBR|RCBR|ASTR|-----!-----!QST |LPRN|RPRN|MINS|COLN| AT  |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |HASH|DLR |PIPE|TILD|    |     |     |PLUS|PERC|DQOT|QUOT|SCLN|     |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |    |    |    |    |    |                     !    |    |    |    |    |
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |     |     |     | !     |     |     |
+                      '-----------------' '-----------------'
+
+
+## Layer 2
+
+    .------------------------------------.------------------------------------.
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |PEQL |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |     |PGUP|BSPC| UP |DEL |PGDN|     |     |    |  7 |  8 |  9 |PAST|PSLS |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |HOME|LEFT|DOWN|RGHT|END |-----!-----!    |  4 |  5 |  6 |PMNS|     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |  1 |  2 |  3 |PPLS|     |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |    |    |    |    |    |                     !    |    |PCMM|PDOT|PENT|
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |     |     |     | !     |     |  0  |
+                      '-----------------' '-----------------'
+
+
+
+## Layer 3
+
+    .------------------------------------.------------------------------------.
+    |     | F1 | F2 | F3 | F4 | F5 | F6  |     |    |    |    |    |    |     |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |     | F7 | F8 | F9 | F10| F11| F12 |    |    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |    |    |    |    |    |                     !    |    |    |    |    |
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |     |     |     | !     |     |     |
+                      '-----------------' '-----------------'
+
+
+## Layer 4
+
+
+
+    .------------------------------------.------------------------------------.
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |    |    |    |    |    |                     !    |    |    |    |    |
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |     |     |     | !     |     |     |
+                      '-----------------' '-----------------'
+
+
+## Layer 5
+
+
+    .------------------------------------.------------------------------------.
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |    |    |    |    |    |                     !    |    |    |    |    |
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |     |     |     | !     |     |     |
+                      '-----------------' '-----------------'
+
+
+## Layer 6
+
+    .------------------------------------.------------------------------------.
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |    |    |    |    |    |                     !    |    |    |    |    |
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |     |     |     | !     |     |     |
+                      '-----------------' '-----------------'
+

From 303f5aed41aac700b6cbc5a2ce06a872d5b85d88 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dennis=20Tr=C3=BCmper?= <truemper.accipiter@gmail.com>
Date: Sat, 11 Mar 2017 10:31:22 +0100
Subject: [PATCH 2/4] change layer 3 on right thumb back to layer 1

---
 keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
index cfc51a4e46..0401966005 100644
--- a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
+++ b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                   .-----+-----+-----! !-----+-----+-----.
  *                   !     !     |     | !     |     !     !
  *                   ! CTL !     !-ALT-! !-CTL-!     ! ALT !
- *                   |ENTER|MO(1)| TAB | !ESC  |MO(3)|SPACE|
+ *                   |ENTER|MO(1)| TAB | !ESC  |MO(1)|SPACE|
  *                   '-----------------' '-----------------'
  */
 [L0] = KEYMAP(
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  /*-*/    /*-*/    MO(2),    MO(3),   KC_APP,   KC_RALT, KC_RCTL,
  KC_MUTE, KC_MPLY,
  KC_TRNS,
- CTL_T(KC_ESC), MO(3),   ALT_T(KC_SPACE)
+ CTL_T(KC_ESC), MO(1),   ALT_T(KC_SPACE)
 ),
 /*
  * .------------------------------------.------------------------------------.

From edb8fcc8102ae86807b70750e57db0de9d49047c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dennis=20Tr=C3=BCmper?= <truemper.accipiter@gmail.com>
Date: Sat, 11 Mar 2017 11:44:39 +0100
Subject: [PATCH 3/4] update documentation

---
 .../keymaps/neo2_on_qwerz_hardware/keymap.c   |  75 ++++++-------
 .../keymaps/neo2_on_qwerz_hardware/keymap.md  | 100 ++++++++++--------
 2 files changed, 91 insertions(+), 84 deletions(-)

diff --git a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
index 0401966005..ab2464c424 100644
--- a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
+++ b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
@@ -5,7 +5,7 @@
 #define UM 0
 
 #define L0   0      // layer_0
-#define L1   1      // layer_1
+#define L1   1      // layer_1  
 #define L2   2      // layer_2
 #define L3   3      // layer_3
 #define L4   4      // layer_4
@@ -14,24 +14,25 @@
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 /*
- * .------------------------------------.------------------------------------.
- * |ESC  | 1  | 2  | 3  | 4  | 5  |ACUT | GRV | 6  | 7  | 8  | 9  | 0  |CIRC |
- * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- * |TAB  | X  | V  | L  | C  | W  |Print|     | K  | H  | G  | F  | Q  |  SS |
- * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
- * |MO(1)| U  | I  | A  | E  | O  |-----!-----! S  | N  | R  | T  | D  | Y   |
- * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
- * |LSFT | UE | OE | AE | P  | Z  |SPACE|     | B  | M  |COMM| DOT| J  |RSFT |
- * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- *  |LCTL|LGUI|LALT|MO(3)|MO(2)|                   !MO(2)|MO(3)|APP |RALT|RCTL|
- *  '------------------------'                     '------------------------'
- *                         .-----------. .-----------.
- *                         |VOL- |VOL+ | !MUTE |PLAY |
- *                   .-----+-----+-----! !-----+-----+-----.
- *                   !     !     |     | !     |     !     !
- *                   ! CTL !     !-ALT-! !-CTL-!     ! ALT !
- *                   |ENTER|MO(1)| TAB | !ESC  |MO(1)|SPACE|
- *                   '-----------------' '-----------------'
+    .------------------------------------.------------------------------------.
+    |ESC  | 1  | 2  | 3  | 4  | 5  | ´   | `   | 6  | 7  | 8  | 9  | 0  | ^   |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |TAB  | X  | V  | L  | C  | W  |Print|     | K  | H  | G  | F  | Q  |  ß  |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |MO(1)| U  | I  | A  | E  | O  |-----!-----! S  | N  | R  | T  | D  | Y   |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |LSFT | ü  | ö  |  ä | P  | Z  |SPACE|     | B  | M  | ,  | .  | J  |RSFT |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |LCTL|LGUI|LALT|MO(3)|MO(2)|                   !MO(2)|MO(3)|APP |RALT|RCTL|
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |VOL- |VOL+ | !MUTE |PLAY |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     |-----| !-----|     !     !
+                      ! CTL !     ! ALT ! ! CTL !     ! ALT !
+                      |ENTER|MO(1)| TAB | !ESC  |MO(1)|SPACE|
+                      '-----------------' '-----------------'
  */
 [L0] = KEYMAP(
  KC_ESC,  DE_1,    DE_2,     DE_3,    DE_4,     DE_5,    DE_ACUT,
@@ -52,24 +53,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  CTL_T(KC_ESC), MO(1),   ALT_T(KC_SPACE)
 ),
 /*
- * .------------------------------------.------------------------------------.
- * |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
- * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- * |     |EURO|UNDS|LBRC|RBRC|    |     |     |EXLM|LESS|MORE|EQL |AMPR|     |
- * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
- * |     |BSLS|SLSH|LCBR|RCBR|ASTR|-----!-----!QST |LPRN|RPRN|MINS|COLN| AT  |
- * !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
- * |     |HASH|DLR |PIPE|TILD|    |     |     |PLUS|PERC|DQOT|QUOT|SCLN|     |
- * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- *  |    |    |    |    |    |                     !    |    |    |    |    |
- *  '------------------------'                     '------------------------'
- *                         .-----------. .-----------.
- *                         |     |     | !     |     |
- *                   .-----+-----+-----! !-----+-----+-----.
- *                   !     !     |     | !     |     !     !
- *                   !     !     !-----! !-----!     !     !
- *                   |     |     |     | !     |     |     |
- *                   '-----------------' '-----------------'
+    .------------------------------------.------------------------------------.
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
+    |     | €  | _  | [  | ]  |    |     |     | !  | <  | >  | =  | &  |     |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     | \  | /  |  { | }  | *  |-----!-----! ?  | (  | )  | -  | :  | @   |
+    !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
+    |     | #  | $  | |  | ~  |    |     |     | +  | %  | "  | '  | ;  |     |
+    '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
+     |    |    |    |    |    |                     !    |    |    |    |    |
+     '------------------------'                     '------------------------'
+                            .-----------. .-----------.
+                            |     |     | !     |     |
+                      .-----+-----+-----! !-----+-----+-----.
+                      !     !     |     | !     |     !     !
+                      !     !     !-----! !-----!     !     !
+                      |     |     |     | !     |     |     |
+                      '-----------------' '-----------------'
  */
 [L1] = KEYMAP(
  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md
index fdcc86a497..d9fcda9661 100644
--- a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md
+++ b/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md
@@ -1,54 +1,57 @@
-# ManuNeo Ergodox Keyboard Layout
-
-Compile this file to a `keymap.c` file using `compile_keymap.py`
-
-    python compile_keymap.py keymaps/german-manuneo/keymap.md
-
-Tested with python 2.7 and python 3.4
-
-
-# Layout Config
-
-    {
-        "layout": "ergodox_ez",
-        "keymaps_includes": [
-            "ergodox.h",
-            "action_layer.h",
-            "keymap_common.h",
-            "keymap_extras/keymap_german.h",
-        ],
-        "key_prefixes": ["DE_", "KC_"],
-        "macros": {
-            // TODO: implement macros
-            // "MUC": "",
-        },
-        // TODO: implement default unicode mode
-    }
-
-
+# Neo2 for ErgoDox on QWERTZ
+#
+# Description
+This layout is ment to be used on PCs with DE-de with an additional guest keyboard. E.g. on your PC at work you can use your ergodox with neo but a second keybord is plugged in so your coworkers can enter a few signs if necessary. I live in Germany, so this is my usecase.
 # Layers
+[Layer0](#layer-0)
+Letters, modifiers and volume
+
+[Layer1](#layer-1)
+Symbols
+
+[Layer2](#layer-2)
+Motion, digits and next/prev Song
+
+[Layer3](#layer-3)
+F1 to F12 and mouse actions
+
+[Layer4](#layer-4)
+not used
+
+[Layer5](#layer-5)
+not used
+
+[Layer6](#layer-6)
+not used
 
 
 ## Layer 0
 
     .------------------------------------.------------------------------------.
-    |ESC  | 1  | 2  | 3  | 4  | 5  |ACUT | GRV | 6  | 7  | 8  | 9  | 0  |CIRC |
+    |ESC  | 1  | 2  | 3  | 4  | 5  | ´   | `   | 6  | 7  | 8  | 9  | 0  | ^   |
     !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
-    |TAB  | X  | V  | L  | C  | W  |     |     | K  | H  | G  | F  | Q  |  SS |
+    |TAB  | X  | V  | L  | C  | W  |Print|     | K  | H  | G  | F  | Q  |  ß  |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
     |MO(1)| U  | I  | A  | E  | O  |-----!-----! S  | N  | R  | T  | D  | Y   |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
-    |LSFT | UE | OE | AE | P  | Z  |SPACE|     | B  | M  |COMM| DOT| J  |RSFT |
+    |LSFT | ü  | ö  |  ä | P  | Z  |SPACE|     | B  | M  | ,  | .  | J  |RSFT |
     '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
-     |LCTL|LGUI|LCTL|MO(3)|MO(2)|                   !MO(2)|MO(3)|APP |RALT|RCTL|
+     |LCTL|LGUI|LALT|MO(3)|MO(2)|                   !MO(2)|MO(3)|APP |RALT|RCTL|
      '------------------------'                     '------------------------'
                             .-----------. .-----------.
-                            |     |     | !     |     |
+                            |VOL- |VOL+ | !MUTE |PLAY |
                       .-----+-----+-----! !-----+-----+-----.
                       !     !     |     | !     |     !     !
-                      !     !     !-----! !-----!     !     !
-                      |ENTER|MO(3)|LGUI | !RCTL |MO(1)|SPACE|
+                      !     !     |-----| !-----|     !     !
+                      ! CTL !     ! ALT ! ! CTL !     ! ALT !
+                      |ENTER|MO(1)| TAB | !ESC  |MO(1)|SPACE|
                       '-----------------' '-----------------'
+                      
+* Left side ESC, TAB, [SymbolLayer], Shift, Ctr, Gui(Windows key), and Alt like normal QWERTZ with neo2.
+* Space on right side of left half for mous activity so you don't have to leave the mouse for Space.
+* Top row of thumb keys is hard to reach for me, so I put media control on there.
+* Thumb keys make use of modifier/tap. E.g. if you tap the Enter key it will be Enter. If you keep it pressed down it will be Ctr. The hold action is written on top of the tap action.
+* The small middle thumb keys are not used, es well as the 1.5 sized ones on the left side of the right half.
 
 
 ## Layer 1
@@ -56,11 +59,11 @@ Tested with python 2.7 and python 3.4
     .------------------------------------.------------------------------------.
     |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
     !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
-    |     |EURO|UNDS|LBRC|RBRC|    |     |     |EXLM|LESS|MORE|EQL |AMPR|     |
+    |     | €  | _  | [  | ]  |    |     |     | !  | <  | >  | =  | &  |     |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
-    |     |BSLS|SLSH|LCBR|RCBR|ASTR|-----!-----!QST |LPRN|RPRN|MINS|COLN| AT  |
+    |     | \  | /  |  { | }  | *  |-----!-----! ?  | (  | )  | -  | :  | @   |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
-    |     |HASH|DLR |PIPE|TILD|    |     |     |PLUS|PERC|DQOT|QUOT|SCLN|     |
+    |     | #  | $  | |  | ~  |    |     |     | +  | %  | "  | '  | ;  |     |
     '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
      |    |    |    |    |    |                     !    |    |    |    |    |
      '------------------------'                     '------------------------'
@@ -76,15 +79,15 @@ Tested with python 2.7 and python 3.4
 ## Layer 2
 
     .------------------------------------.------------------------------------.
-    |     |    |    |    |    |    |     |     |    |    |    |    |    |PEQL |
+    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
     !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
-    |     |PGUP|BSPC| UP |DEL |PGDN|     |     |    |  7 |  8 |  9 |PAST|PSLS |
+    |     |PGUP|BSPC| UP |DEL |PGDN|     |     |    |  7 |  8 |  9 |    |     |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
-    |     |HOME|LEFT|DOWN|RGHT|END |-----!-----!    |  4 |  5 |  6 |PMNS|     |
+    |     |HOME|LEFT|DOWN|RGHT|END |-----!-----!    |  4 |  5 |  6 |    |     |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
-    |     |    |    |    |    |    |     |     |    |  1 |  2 |  3 |PPLS|     |
+    |     |    |    |PREV|NEXT|    |     |     |    |  1 |  2 |  3 |    |     |
     '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
-     |    |    |    |    |    |                     !    |    |PCMM|PDOT|PENT|
+     |    |    |    |    |    |                     !    |    |    |    |    |
      '------------------------'                     '------------------------'
                             .-----------. .-----------.
                             |     |     | !     |     |
@@ -101,11 +104,11 @@ Tested with python 2.7 and python 3.4
     .------------------------------------.------------------------------------.
     |     | F1 | F2 | F3 | F4 | F5 | F6  |     |    |    |    |    |    |     |
     !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
-    |     | F7 | F8 | F9 | F10| F11| F12 |    |    |    |    |    |    |     |
+    |     | F7 | F8 | F9 | F10| F11| F12 |     |    |M_WU|M_CU|M_WD|    |     |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
-    |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     |
+    |M_B5 |M_B4|M_B3|M_B2|M_B1|    |-----!-----!    |M_CL|M_CD|M_CR|    |     |
     !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----!
-    |     |    |    |    |    |    |     |     |    |    |    |    |    |     |
+    |     |    |M_A2|M_A1|M_A0|    |     |     |    |    |    |    |    |     |
     '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
      |    |    |    |    |    |                     !    |    |    |    |    |
      '------------------------'                     '------------------------'
@@ -116,7 +119,10 @@ Tested with python 2.7 and python 3.4
                       !     !     !-----! !-----!     !     !
                       |     |     |     | !     |     |     |
                       '-----------------' '-----------------'
-
+* M_A Mouse acceleration
+* M_B Mouse button
+* M_C Mouse cursor
+* M_W Mouse wheel
 
 ## Layer 4
 

From e3f934ed919f75f27379dcf8b1316fa0ed8e78c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dennis=20Tr=C3=BCmper?= <truemper.accipiter@gmail.com>
Date: Sat, 11 Mar 2017 12:09:30 +0100
Subject: [PATCH 4/4] remove typo from folder name

---
 .../{neo2_on_qwerz_hardware => neo2_on_qwertz_hardware}/keymap.c  | 0
 .../{neo2_on_qwerz_hardware => neo2_on_qwertz_hardware}/keymap.md | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename keyboards/ergodox/keymaps/{neo2_on_qwerz_hardware => neo2_on_qwertz_hardware}/keymap.c (100%)
 rename keyboards/ergodox/keymaps/{neo2_on_qwerz_hardware => neo2_on_qwertz_hardware}/keymap.md (100%)

diff --git a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c b/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.c
similarity index 100%
rename from keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.c
rename to keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.c
diff --git a/keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md b/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.md
similarity index 100%
rename from keyboards/ergodox/keymaps/neo2_on_qwerz_hardware/keymap.md
rename to keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.md