From 262930c8d5e57beec044d932ef554a09e846f9ca Mon Sep 17 00:00:00 2001
From: Nathan Sharfi <me@ngalt.com>
Date: Sat, 30 Apr 2016 22:12:13 -0700
Subject: [PATCH 1/4] ergodox-zweihander: initial commit

---
 .../keymaps/zweihander-osx/keymap.c           | 184 ++++++++++++++++++
 .../keymaps/zweihander-osx/readme.markdown    |  40 ++++
 2 files changed, 224 insertions(+)
 create mode 100644 keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
 create mode 100644 keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown

diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
new file mode 100644
index 000000000..cc94e1333
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
@@ -0,0 +1,184 @@
+#include "ergodox_ez.h"
+#include "debug.h"
+#include "action_layer.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   =    |   1  |   2  |   3  |   4  |   5  |   ←  |           |   →  |   6  |   7  |   8  |   9  |   0  |   -    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   ⌦    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |   ⌫    |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2| ' / L⌘ |
+ * |--------+------+------+------+------+------|  L⌘  |           |  L⌘  |------+------+------+------+------+--------|
+ * |  L⇧    |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  | / / ⌃|  R⇧    |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |  L⌃  |  L⌥  |  L⌘  |   ←  |   →  |                                       |   ↑  |   ↓  |   [  |   ]  | ~L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,---------------.
+ *                                        |  `~  |  '"  |       |   ⎋  |    ⌫   |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | PgUp |       | PgDn |        |      |
+ *                                 |      |   ⌫  |------|       |------|    ⇥   |Enter |
+ *                                 |      |      |  L⌥  |       |  L⌃  |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_LEFT,
+        KC_DELT,        KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TG(SYMB),
+        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
+        KC_LSFT,        KC_Z,         KC_X,   KC_C,   KC_V,   KC_B,   KC_LGUI,
+        KC_LCTL,        KC_LALT,      KC_LGUI,KC_LEFT,KC_RGHT,
+                                              KC_GRV, KC_QUOT,
+                                                              KC_PGUP,
+                                               KC_SPC,KC_BSPC,KC_LALT,
+        // right hand
+             KC_RGHT,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_MINS,
+             TG(SYMB),    KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,             KC_BSLS,
+                          KC_H,   KC_J,   KC_K,   KC_L,   LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
+             KC_LGUI,     KC_N,   KC_M,   KC_COMM,KC_DOT, CTL_T(KC_SLSH),   KC_RSFT,
+                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC,          KC_FN1,
+             KC_ESC,            KC_BSPC,
+             KC_PGDN,
+             KC_LCTL,           KC_TAB,      KC_ENT
+    ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   /  |   7  |   8  |   9  |   *  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   $  |   (  |   )  |   `  |------|           |------|   -  |   4  |   5  |   6  |   +  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   %  |   ^  |   [  |   ]  |   ~  |      |           |      |   &  |   1  |   2  |   3  |   =  |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |   0  |   .  |   ←  |   →  |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       | Home |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       | End  |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
+       KC_TRNS,KC_EXLM,KC_AT,  KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
+       KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
+       KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_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,
+       // right hand
+       KC_TRNS, KC_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, KC_SLSH, KC_7,   KC_8,    KC_9,    KC_ASTR, KC_F12,
+                KC_MINS, KC_4,   KC_5,    KC_6,    KC_PLUS, KC_TRNS,
+       KC_TRNS, KC_AMPR, KC_1,   KC_2,    KC_3,    KC_EQL,  KC_TRNS,
+                         KC_0,   KC_DOT,  KC_LEFT, KC_RGHT, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_HOME,
+       KC_END , KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media keys
+ *                                                dim             brighten
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |  F14 |           |  F15 |      |      |      |      |      |  Power |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      | PgUp |      |      |      |           |      |  ⌘]  |  ⌥⌘↑ |   ↑  |  ⌥⌘↓ |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      | Home | PgDn |  End |      |------|           |------|  ⌘[  |   ←  |   ↓  |   →  |      |    ⏯  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |L⇧+Spc|  Spc |  ⏮  |   ⏭ |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |VolUp |VolDn | Mute |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14,  /* F14 dims screen, F15 brightens */
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END , 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,
+    // right hand
+       KC_F15 ,  KC_TRNS,                           KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_PWR,
+       KC_TRNS,  LGUI(KC_RBRC), LGUI(LALT(KC_UP)),  KC_UP  , LGUI(LALT(KC_DOWN)),   KC_TRNS, KC_TRNS,
+                 LGUI(KC_LBRC), KC_LEFT,            KC_DOWN, KC_RGHT,               KC_TRNS, KC_MPLY,
+       KC_TRNS,  LSFT(KC_SPC),  KC_SPC ,            KC_MPRV, KC_MNXT,               KC_TRNS, KC_TRNS,
+                                KC_VOLU,            KC_VOLD, KC_MUTE,               KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+        if (record->event.pressed) {
+          register_code(KC_RSFT);
+        } else {
+          unregister_code(KC_RSFT);
+        }
+        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) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case 1:
+            ergodox_right_led_1_on();
+            break;
+        case 2:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            // none
+            break;
+    }
+
+};
diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown
new file mode 100644
index 000000000..8103c6b32
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown
@@ -0,0 +1,40 @@
+# The Zweihander Layout
+
+This layout is tuned for people who…
+
+
+## use OS X
+
+This layout doesn’t make any concessions for Windows use. While it should work fine in Windows, I’m not about to devote precious keyboard space to Windows-specific shortcuts.
+
+
+## mouse left-handed while doing other things with the right hand
+
+I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the media layer to speed up browsing in Safari and Finder:
+
+- Back (⌘[)
+- Forward (⌘])
+- Open and Close Parent Folder (⌥⌘↓)
+- Go Up and Close Just-Left Folder (⌥⌘↑)
+- Space (page down in browsers; Quick Look in the Finder)
+- Shift-Space (page up in web browsers)
+
+Because moving letter-by-letter is way slower than moving word-by-word, I added Option (⌥) to the bottommost button on the left side. This key can be held easily while holding ; (activate media layer) and pressing J and L to move left and right by word.
+
+
+## use lots of modifier keys in OS X menu-item shortcuts
+
+I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once; this is why the bottom left of the keyboard has shift, control, option, and command in the usual spaces. Further, some common shortcuts I press have a key on the right side of the keyboard. These shortcuts include:
+
+- Empty Trash Without Asking for Confirmation (⇧⌥⌘⌫)
+- Shut Down Without Asking for Confirmation (⇧⌥⌘ power)
+
+
+## use Emacs-style shortcuts
+
+I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the control key on the bottom left and I’m too quick on the draw for the control function on the / key to work reliably, so the bottommost thumb button on the right side is another control key.
+
+
+## use spreadsheets
+
+All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer.

From 8ec1d41a28d5223a147218bfb7fefd933b906d22 Mon Sep 17 00:00:00 2001
From: Nathan Sharfi <me@ngalt.com>
Date: Sat, 30 Apr 2016 22:36:09 -0700
Subject: [PATCH 2/4] Ergodox EZ:  add zweihander-osx.hex

---
 .../keymaps/zweihander-osx/zweihander-osx.hex   | Bin 0 -> 51772 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex

diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex
new file mode 100644
index 0000000000000000000000000000000000000000..9b783c957c89c80b8caae9e9f5d35946b5556f38
GIT binary patch
literal 51772
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

literal 0
HcmV?d00001


From 9b163d2feb332107794a0f6e3573afe92c40b7fe Mon Sep 17 00:00:00 2001
From: Nathan Sharfi <me@ngalt.com>
Date: Sun, 1 May 2016 13:55:00 -0700
Subject: [PATCH 3/4] =?UTF-8?q?zweihander:=20Add=20=E2=8C=98`,=20=E2=8C=98?=
 =?UTF-8?q?=E2=87=A7`,=20=E2=8C=A5=E2=87=A5,=20=E2=8C=A5=E2=87=A7=E2=87=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../keymaps/zweihander-osx/keymap.c           |  14 +++++++-------
 .../keymaps/zweihander-osx/readme.markdown    |   5 +++++
 .../keymaps/zweihander-osx/zweihander-osx.hex | Bin 51772 -> 51772 bytes
 3 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
index cc94e1333..f53232c3c 100644
--- a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
@@ -95,9 +95,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 /* Keymap 2: Media keys
  *                                                dim             brighten
  * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |        |      |      |      |      |      |  F14 |           |  F15 |      |      |      |      |      |  Power |
+ * |        |      |      |      |      |      |  F14 |           |  F15 |  ⌘W  | ⌘⇧`  |  ⌘`  | ⌥⇧⇥  |  ⌥⇥  |  Power |
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
- * |        |      |      | PgUp |      |      |      |           |      |  ⌘]  |  ⌥⌘↑ |   ↑  |  ⌥⌘↓ |      |        |
+ * |        |      |      | PgUp |      |      |      |           |      |  ⌘]  | ⌥⌘↑  |   ↑  | ⌥⌘↓  |      |        |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
  * |        |      | Home | PgDn |  End |      |------|           |------|  ⌘[  |   ←  |   ↓  |   →  |      |    ⏯  |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
@@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                                                     KC_TRNS,
                                   KC_TRNS, KC_TRNS, KC_TRNS,
     // right hand
-       KC_F15 ,  KC_TRNS,                           KC_TRNS, KC_TRNS,               KC_TRNS, KC_TRNS, KC_PWR,
-       KC_TRNS,  LGUI(KC_RBRC), LGUI(LALT(KC_UP)),  KC_UP  , LGUI(LALT(KC_DOWN)),   KC_TRNS, KC_TRNS,
-                 LGUI(KC_LBRC), KC_LEFT,            KC_DOWN, KC_RGHT,               KC_TRNS, KC_MPLY,
-       KC_TRNS,  LSFT(KC_SPC),  KC_SPC ,            KC_MPRV, KC_MNXT,               KC_TRNS, KC_TRNS,
-                                KC_VOLU,            KC_VOLD, KC_MUTE,               KC_TRNS, KC_TRNS,
+       KC_F15 ,  LGUI(KC_W),    LGUI(LSFT(KC_GRV)), LGUI(KC_GRV),   LALT(LSFT(KC_TAB)),     LALT(KC_TAB),   KC_PWR,
+       KC_TRNS,  LGUI(KC_RBRC), LGUI(LALT(KC_UP)),  KC_UP  ,        LGUI(LALT(KC_DOWN)),    KC_TRNS,        KC_TRNS,
+                 LGUI(KC_LBRC), KC_LEFT,            KC_DOWN,        KC_RGHT,                KC_TRNS,        KC_MPLY,
+       KC_TRNS,  LSFT(KC_SPC),  KC_SPC ,            KC_MPRV,        KC_MNXT,                KC_TRNS,        KC_TRNS,
+                                KC_VOLU,            KC_VOLD,        KC_MUTE,                KC_TRNS,        KC_TRNS,
        KC_TRNS, KC_TRNS,
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS
diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown
index 8103c6b32..7bce7c690 100644
--- a/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown
+++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown
@@ -1,5 +1,7 @@
 # The Zweihander Layout
 
+NB: the backtick (\`) is special in Markdown. If I write ⌘\` in this readme, I mean “command-backtick”, not “command-backslash-backtick”.
+
 This layout is tuned for people who…
 
 
@@ -12,10 +14,13 @@ This layout doesn’t make any concessions for Windows use. While it should work
 
 I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the media layer to speed up browsing in Safari and Finder:
 
+- Close Window (⌘W)
 - Back (⌘[)
 - Forward (⌘])
 - Open and Close Parent Folder (⌥⌘↓)
 - Go Up and Close Just-Left Folder (⌥⌘↑)
+- Cycle through open windows in current application (⌘\` and ⌘⇧\`)
+- Cycle through tabs in current window (⌥⇥ and ⌥⇧⇥)
 - Space (page down in browsers; Quick Look in the Finder)
 - Shift-Space (page up in web browsers)
 
diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex
index 9b783c957c89c80b8caae9e9f5d35946b5556f38..3e313c3724e7b5d37fb688cd68a2a680af8ba60f 100644
GIT binary patch
delta 139
zcmdlpg?Y~u<_&J_?uL#A7RCk!7DjGB>}+6U00M>v29_?oTvkBZ$PvglHZ^cGH8OBE
z1+syP3>+;Xih$x4Kyd>%=gGb7(wat224<#)2F@mKKqXE<C9Y62fLaV3Eg*V;icBUa
PvWYO68g72h9(o7>$DJSv

delta 129
zcmdlpg?Y~u<_&J_?goYi2F3;k7DjGB>}+6U00KZUCs$rBD<Ey;2o*3jGH^BpvVn>W
z94#S=Knj842Igjyd)cMs!CXTFXA?J|5+|U!Ff)K!3>+;c$Fs>XnY(R%&K`OQ0EONi
Ay#N3J


From fe022a508fdd39696e3b2b188df27d60b32f0d63 Mon Sep 17 00:00:00 2001
From: Nathan Sharfi <me@ngalt.com>
Date: Sun, 1 May 2016 15:12:38 -0700
Subject: [PATCH 4/4] =?UTF-8?q?zweihander:=20move=20dim/brighten=20to=201/?=
 =?UTF-8?q?2,=20add=20=E2=8C=98Q?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../keymaps/zweihander-osx/keymap.c           |  16 ++++++++--------
 .../keymaps/zweihander-osx/zweihander-osx.hex | Bin 51772 -> 51772 bytes
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
index f53232c3c..d019b731f 100644
--- a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
@@ -93,9 +93,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_END , KC_TRNS, KC_TRNS
 ),
 /* Keymap 2: Media keys
- *                                                dim             brighten
+ *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
- * |        |      |      |      |      |      |  F14 |           |  F15 |  ⌘W  | ⌘⇧`  |  ⌘`  | ⌥⇧⇥  |  ⌥⇥  |  Power |
+ * |        |  F14 |  F15 |      |      |      |      |           |  ⌘Q  |  ⌘W  | ⌘⇧`  |  ⌘`  | ⌥⇧⇥  |  ⌥⇥  |  Power |
  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
  * |        |      |      | PgUp |      |      |      |           |      |  ⌘]  | ⌥⌘↑  |   ↑  | ⌥⌘↓  |      |        |
  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
@@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  */
 // MEDIA AND MOUSE
 [MDIA] = KEYMAP(
-       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14,  /* F14 dims screen, F15 brightens */
+       KC_TRNS, KC_F14 , KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  /* F14 dims screen, F15 brightens */
        KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                                                     KC_TRNS,
                                   KC_TRNS, KC_TRNS, KC_TRNS,
     // right hand
-       KC_F15 ,  LGUI(KC_W),    LGUI(LSFT(KC_GRV)), LGUI(KC_GRV),   LALT(LSFT(KC_TAB)),     LALT(KC_TAB),   KC_PWR,
-       KC_TRNS,  LGUI(KC_RBRC), LGUI(LALT(KC_UP)),  KC_UP  ,        LGUI(LALT(KC_DOWN)),    KC_TRNS,        KC_TRNS,
-                 LGUI(KC_LBRC), KC_LEFT,            KC_DOWN,        KC_RGHT,                KC_TRNS,        KC_MPLY,
-       KC_TRNS,  LSFT(KC_SPC),  KC_SPC ,            KC_MPRV,        KC_MNXT,                KC_TRNS,        KC_TRNS,
-                                KC_VOLU,            KC_VOLD,        KC_MUTE,                KC_TRNS,        KC_TRNS,
+       LGUI(KC_Q),  LGUI(KC_W),     LGUI(LSFT(KC_GRV)), LGUI(KC_GRV),   LALT(LSFT(KC_TAB)),     LALT(KC_TAB),   KC_PWR,
+       KC_TRNS,     LGUI(KC_RBRC),  LGUI(LALT(KC_UP)),  KC_UP  ,        LGUI(LALT(KC_DOWN)),    KC_TRNS,        KC_TRNS,
+                    LGUI(KC_LBRC),  KC_LEFT,            KC_DOWN,        KC_RGHT,                KC_TRNS,        KC_MPLY,
+       KC_TRNS,     LSFT(KC_SPC),   KC_SPC ,            KC_MPRV,        KC_MNXT,                KC_TRNS,        KC_TRNS,
+                                    KC_VOLU,            KC_VOLD,        KC_MUTE,                KC_TRNS,        KC_TRNS,
        KC_TRNS, KC_TRNS,
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS
diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex
index 3e313c3724e7b5d37fb688cd68a2a680af8ba60f..b76c3ec8e84d0c5b703c8753d0a88873afb7aeae 100644
GIT binary patch
delta 88
zcmdlpg?Y~u<_)oIOlFpo<JrWx%p4623=9nnTudj|v(-+vVdKy@H|OQD0ty*f0HweH
W$br#@CI%KD^)SAP>t<ti&cguGL==Jm

delta 89
zcmdlpg?Y~u<_)oIlb^5&PR?UvpPb9a!Q^N*xt^`o+|1Izz`ziQ-FUgIfV7bXkPQYP
VK@b4aW{waV#y2q7Y|PGi7yv;G6~6!g