]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Update keymap.c
authorSteve Holt <jaksco@users.noreply.github.com>
Wed, 23 Aug 2017 03:45:16 +0000 (21:45 -0600)
committerJack Humbert <jack.humb@gmail.com>
Wed, 23 Aug 2017 03:53:41 +0000 (23:53 -0400)
keyboards/lets_split/keymaps/xk/keymap.c

index 4d89a67f7f05ae581400c488df23101e121d03c3..77db0abb74dda57600bf9c736109cb5fcc925a92 100755 (executable)
@@ -13,6 +13,7 @@ extern keymap_config_t keymap_config;
 #define _NINEKEY  6
 #define _NAVIGAT  7
 #define _QWERTY   8
+#define _MLAYER   9
 #define _GRVTABL  15
 
 enum custom_keycodes {
@@ -25,58 +26,65 @@ enum custom_keycodes {
   NINEKEY,
   NAVIGAT,
   QWERTY,
+  MLAYER,
   GRVTABL,
 };
 
 //TD Declarations
 enum {
-  VOM = 0,
-  PRN,
-  EGT,
-  HRD,
-  DSH,
-  QUT,
-  ESC,
-  EQE,
-  PGN,
-  UND,
-  BSDEL,
-  bsdel_mods,
-  BOOTME,
+VOM = 0,
+PRN,
+EGT,
+HRD,
+XRD,
+DSH,
+ESC,
+EQE,
+PGN,
+HND,
+COD,
+UND,
+F11,
+F12,
+F13,
+F14,
+F15,
+F16,
+F17,
+F18,
+F19,
+F20,
+//unicode_inputctl
+LINUX,
+WIN,
+WINSH,
+OSX,
 };
 
 #define _______     KC_TRNS
 #define XXXXXXX     KC_NO
 
-// action-TAP for key/mod behavior LT(layer, kc)
+// action-TAP for key/mod behavior LT(layer, KC)
 #define XK_TAB      LT(_FNCTION, KC_TAB)
-#define XK_BSP      LT(_KAMELOC, M(3))
+#define XK_BSP      LT(_KAMELOC, KC_BSPC)
+#define XK_APO      LT(_KAMELOC, KC_QUOT)
 
-#define XK_HARD     LT(_FNCTION, M(1))
-#define XK_SPC      LT(_IKAPILA, KC_SPC)
+#define XK_SPC    LT(_IKAPILA, KC_SPC)
 #define XK_ENT      LT(_IKAPILA, KC_ENT)
-#define XK_PGDN     LT(_NAVIGAT, TD(PGN))
-#define XK_PREN     LT(_IKASHFT, M(0))
+#define XK_PGDN     LT(_IKASHFT, KC_PGDN)
+#define XK_PGUP     LT(_IKASHFT, KC_PGUP)
 #define PIPBOY      LT(_FNCTION, KC_BSLS)
-
-#define XK_DEL      LT(_KAMELOC, KC_DEL)
+#define XK_DEL      LT(_IKASHFT, KC_DEL)
 #define XK_GRV      LT(_GRVTABL, KC_GRV)
 
-// mod-TAP for mod/key behavior MT(modkey, kc)
-#define ESC_IT      MT(MOD_MEH, TD(ESC))
-
-#define ALT_IT      MT(MOD_LALT, KC_SCLN)
-#define CTL_IT      MT(MOD_LCTL, KC_SLSH)
-#define XK_EGPT     MT((MOD_LCTL | MOD_LALT | MOD_LGUI), M(2))
-
-#define SFT_IT      MT(MOD_RSFT, TG(_NAVIGAT))
+// mod-TAP for mod/key behavior MT(modkey, KC)
+#define ALT_IT      MT(MOD_RALT, KC_SCLN)
+#define CTL_IT      MT(MOD_RCTL, KC_DOT)
 #define SFT_ENT            MT(MOD_RSFT, KC_ENT)
 
 //sticky modifiers
 #define KYCTL       OSM(MOD_LCTL)
-#define KYGUI       OSM(MOD_LGUI)
 #define KYSFT       OSM(MOD_LSFT)
-#define KYALT       OSM(MOD_LALT)
 #define CAKY        OSM(MOD_LCTL | MOD_LALT)
 
 //shortcuts
@@ -97,12 +105,8 @@ enum {
 #define NAVGL       LGUI(KC_LEFT)
 #define NAVGR       LGUI(KC_RGHT)
 
-#define KC_NDSH        LCTL(KC_PMNS)
-#define KC_MDSH        LALT(LCTL(KC_PMNS))
-
-//!not sure if this old TMK code will work
-//#define BOOTME      ACTION_FUNCTION(BOOTLOADER)
-#define LCLEAR      ACTION_LAYER_SET_CLEAR(0)
+#define KC_NDSH     LCTL(KC_PMNS)
+#define KC_MDSH     LALT(LCTL(KC_PMNS))
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
@@ -113,9 +117,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │BKSP│ A  │ R  │ S  │ T  │ G  │    │ M  │ N  │ E  │ I  │ O  │ '  │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │OSFT│ X  │ C  │ D  │ V  │ Z  │    │ K  │ H  │ ,  │ .  │ /  │LNAV
+  │OSFT│ X  │ C  │ D  │ V  │ Z  │    │ K  │ H  │ ,  │    │ .  │ /  
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │OCTL│OALT│L9KY│ [] │OGUI│SPC │    │ENT │PGDN│ () │ {} │ \  │ `  │
+  │OCTL│GUI │ESC │ALT │PGUP│SPC │    │ENT │PGDN│ () │ {} │ \  │ `  │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
    HOLD
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
@@ -125,80 +129,85 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │SFT │    │    │    │    │    │    │    │    │    │    │CTL │SFT │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │CTL │ALT │L9KY│L!@#│GUI │L123│    │L123│LNAV│L!@#│MEH │L FN│LGRV│
+  │CTL │GUI │ESC │ALT │L!@#│L123│    │L123│L!@#│L  M│    │L FN│LGRV│
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
    DOUBLETAP
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
-  │    │!F4 │    │    │    │    │    │    │    │    │    │    │    │
+  │    │    │    │    │    │    │    │    │    │    │    │    │    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │    │    │    │    │    │    │    │    │    │    │    │    │    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │OSML│    │    │    │    │UNDO│    │    │    │    │    │    │    │
+  │OSML│    │    │    │    │    │    │    │    │    │    │    │    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │OSML│OSML│ESC │    │OSML│    │    │    │PGUP│    │    │    │    │
+  │OSML│OSML│!F4 │    │    │    │    │    │    │    │    │    │    │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
   Switch type
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
-  │Br  │Z   │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │Z   │Br  │G   │
+  │Br  │mxC │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │Z   │Br  │G   │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │G   │Z   │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │Z   │Z   │Z   │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │Y   │Z   │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │Z   │B   │Y   │
+  │Y   │Z   │Z   │Z   │Z   │Z   │    │Z   │Z   │Z   │B   │B   │Y   │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │Y   │Y   │C   │Z   │BLK │BLK │    │BLK │BLK │Z   │Z   │B   │G   │
+  │Y   │Y   │mxC │Z   │BLK │BLK │    │BLK │BLK │Z   │Z   │B   │G   │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
+  with DCS keycaps
+  Top Row   R1 (reversed?)
+  M Row1    R3 (with reversed pointer finger)
+  M Row2    R4
+  B Row     R2 (reversed)
 */
 
 // Colemak PB&J (Mod-DH)
 [_COLEMAK] = KEYMAP( \
-   XK_TAB, TD(QUT),    KC_W,    KC_F,    KC_P,    KC_B,            KC_J,    KC_L,    KC_U,    KC_Y, ALT_IT,  XK_GRV,  \
-   XK_BSP,    KC_A,    KC_R,    KC_S,    KC_T,    KC_G,            KC_M,    KC_N,    KC_E,    KC_I,    KC_O,  XK_DEL, \
-    KYSFT,    KC_X,    KC_C,    KC_D,    KC_V, TD(UND),            KC_K,    KC_H, KC_COMM,  KC_DOT,  CTL_IT,  SFT_IT, \
-    KYCTL,   KYALT,  ESC_IT,  XK_HARD,  KYGUI,  XK_SPC,          XK_ENT, XK_PGDN, XK_PREN, XK_EGPT,  PIPBOY,  XK_GRV \
+   XK_TAB,    KC_Q,    KC_W,    KC_F,    KC_P,    KC_B,            KC_J,    KC_L,        KC_U,         KC_Y,  ALT_IT,         XK_DEL, \
+   XK_BSP,    KC_A,    KC_R,    KC_S,    KC_T,    KC_G,            KC_M,    KC_N,        KC_E,         KC_I,    KC_O,         XK_APO, \
+    KYSFT,    KC_X,    KC_C,    KC_D,    KC_V,    KC_Z,            KC_K,    KC_H,     TD(COD),       KC_DOT,  CTL_IT, SFT_T(KC_SLSH), \
+    KYCTL, KC_LGUI, TD(ESC), KC_LALT, XK_PGUP,  XK_SPC,          XK_ENT, XK_PGDN, MO(_MLAYER), TT(_NAVIGAT),  PIPBOY,         XK_GRV \
 ),
 
 // useful for one-handed typing
 [_KAMELOC] = KEYMAP( \
-  _______, KC_SCLN,    KC_Y,    KC_U,    KC_L,    KC_J,            KC_B,    KC_P,    KC_F,    KC_W, TD(QUT), _______, \
+   XK_DEL, KC_SCLN,    KC_Y,    KC_U,    KC_L,    KC_J,            KC_B,    KC_P,    KC_F,    KC_W,    KC_Q,  XK_TAB, \
   _______,    KC_O,    KC_I,    KC_E,    KC_N,    KC_M,            KC_G,    KC_T,    KC_S,    KC_R,    KC_A, _______, \
-  _______, KC_SLSH,  KC_DOT, KC_COMM,    KC_H,    KC_K,         TD(UND),    KC_V,    KC_D,    KC_C,    KC_X, _______, \
-  _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
+    KYSFT, KC_SLSH,  KC_DOT, KC_COMM,    KC_H,    KC_K,         TD(UND),    KC_V,    KC_D,    KC_C,    KC_X,   KYSFT, \
+   XK_GRV,  PIPBOY,    M(1), KC_BTN1, KC_HOME,  KC_ENT,          KC_ENT,  KC_END, KC_LGUI, TD(ESC), KC_LALT,   KYCTL \
 ),
 
 /*
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
-  │ ~  │ 1  │ 2  │ 3  │ 4  │ 5  │    │ 6  │ 7  │ 8  │ 9  │ 0  │    │
+  │    │ 1  │ 2  │ 3  │ 4  │ 5  │    │ 6  │ 7  │ 8  │ 9  │ 0  │    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │DASH│MV- │ V+ │NEXT│PLAY│    │ ←  │ ↓  │ ↑  │ →  │INS │    │
+  │    │ M  │ V- │ V+ │NEXT│PLAY│    │ ←  │ ↓  │ ↑  │ →  │DASH│INS │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │ -  │ =  │ [  │ ]  │ \  │    │HOME│PGDN│PGUP│END │ \  │    │
+  │    │ -  │ =  │TGL │    │    │    │HOME│END │HOME│    │ \  │ ~  │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │    │    │    │    │    │    │    │    │    │    │    │    │    │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
 */
 [_IKAPILA] = KEYMAP( \
-  KC_TILD,    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,            KC_6,    KC_7,    KC_8,    KC_9,    KC_0, _______, \
-  _______, TD(DSH), TD(VOM), KC_VOLU, KC_MNXT, KC_MPLY,         KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT,  KC_INS, _______, \
-  _______, KC_MINS,  KC_EQL, TD(HRD), KC_RBRC, KC_BSLS,         KC_HOME, KC_PGDN, KC_PGUP,  KC_END, KC_BSLS, _______, \
-  _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
+  _______,    KC_1,    KC_2,    KC_3,    KC_4,       KC_5,            KC_6,    KC_7,    KC_8,    KC_9,    KC_0, _______, \
+  _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT,    KC_MPLY,         KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT, TD(DSH),  KC_INS, \
+  _______, KC_MINS,  KC_EQL, XXXXXXX, XXXXXXX, LCTL(KC_Z),         KC_HOME, TD(HND), KC_HOME, XXXXXXX, KC_BSLS, KC_TILD, \
+  _______, _______, _______, _______, _______,    _______,         _______, _______, _______, _______, _______, _______ \
 ),
 
 /*
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
-  │    │ !  │ @  │ #  │ $  │ %  │    │ ^  │ &  │ *  │ (  │ )  │    
+  │    │ !  │ @  │ #  │ $  │ %  │    │ ^  │ &  │ *  │ (  │ )  │BSPC
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │DASH│MV- │ V+ │NEXT│PLAY│    │HOME│PGDN│PGUP│END │PSCR│    
+  │DEL │    │ ←  │ ↓  │ ↑  │ →  │    │NEXT│PGUP│ V+ │ V- │DASH│PSCR
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │ _  │ +  │ {  │ }  │ |  │    │ ←  │ ↓  │ ↑  │ →  │    │    │
+  │    │ _  │ +  │END │HOME│END │    │    │    │    │ [  │ ]  │    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │    │    │    │    │    │    │    │    │    │    │    │    │    │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
 */
 
 [_IKASHFT] =  KEYMAP( \
-  _______, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC,         KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \
-   KC_DEL, TD(DSH), TD(VOM), KC_VOLU, KC_MNXT, KC_MPLY,         KC_HOME, KC_PGDN, KC_PGUP,  KC_END, KC_PSCR, _______, \
-  _______, KC_UNDS, KC_PLUS, TD(EGT), KC_RCBR, KC_PIPE,         KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT, KC_PAUS, _______, \
+  _______, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC,         KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
+   KC_DEL, TD(PGN), KC_LEFT, KC_DOWN,   KC_UP, KC_RGHT,         KC_MNXT, KC_PGUP, KC_VOLU, TD(VOM), KC_MDSH, KC_PSCR, \
+  _______, KC_UNDS, KC_PLUS,  KC_END, KC_HOME,  KC_END,            M(1),    M(0),    M(2), KC_LBRC, KC_RBRC, _______, \
   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
 ),
 
@@ -210,14 +219,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤ >>init network SEQUENCE
   │    │ ↑  │ ←  │ ↓  │ →  │ ↑  │    │ ↓  │ ←  │ ↑  │ →  │ ←  │    │   sleep 11; echo "DONE\n"
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤   throttle INPUT 11001001 OUTPUT 010011001 ? FULL )); \
-  │    │    │    │ →  │ ←  │ ↓  │    │ →  │ ↑  │ ←  │ ↓  │ ↑  │    │ <<chkconfig cargoCode ==== "'1'"
-  └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘   up down left right kc_b kc_a GUI
+  │    │    │    │ →  │ ←  │ ↓  │    │ →  │ ↑  │ ←  │ ↓  │ ↑  │    │ <<chKConfig cargoCode ==== "'1'"
+  └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘   up down left right KC_b KC_a GUI
 */
 
 [_ARROWKY] =  KEYMAP( \
+
+
   _______, KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN, KC_RGHT,           KC_UP, KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP, _______, \
   _______, KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP, KC_LEFT,         KC_DOWN, KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN, _______, \
-  _______,   KC_UP, KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP,         KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP, KC_LEFT, _______, \
+  _______,   KC_UP, KC_LEFT, KC_DOWN, KC_RGHT,   KC_UP,         KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_LEFT, _______, \
   _______, _______, KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN,         KC_RGHT,   KC_UP, KC_LEFT, KC_DOWN, KC_RGHT, _______ \
 ),
 
@@ -225,56 +236,56 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
   │    │ F1 │ F2 │ F3 │ F4 │ F5 │    │ F6 │ F7 │ F8 │ F9 │ F10│    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │ F11│ F12│ F13│ F14│ F15│    │ F16│ F17│ F18│ F19│ F20│    
+  │    │ F21│ F22│ F23│ F24│PAUS│    │    │SCLK│BOOT│    │NKRO│CAPS
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │ F21│ F22│ F23│ F24│PAUS│    │    │    │BOOT│RSET│NKRO│CAPS
+  │    │    │    │    │    │    │    │    │    │    │    │    │    
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │    │    │    │    │    │    │    │    │    │    │    │    │    │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
 */
 
 [_FNCTION] =  KEYMAP( \
-  _______,   KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,           KC_F6,   KC_F7,   KC_F8,   KC_F9,  KC_F10, _______, \
-  _______,  KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,          KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20, _______, \
-  _______,  KC_F21,  KC_F22,  KC_F23,  KC_F24, _______,         _______, _______,M(BOOTME),   RESET,  TGNKRO, KC_CAPS, \
+  _______, TD(F11), TD(F12), TD(F13), TD(F14), TD(F15),         TD(F16), TD(F17), TD(F18), TD(F19), TD(F20), _______, \
+  _______,  KC_F21,  KC_F22,  KC_F23,  KC_F24, XXXXXXX,         XXXXXXX, KC_SLCK, XXXXXXX, XXXXXXX,  TGNKRO, XXXXXXX, \
+  _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, \
   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
 ),
 
 /*
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
-  │    │ →  │ F7 │ F8 │ F9 │ ↑  │    │NLCK│ P7 │ P8 │ P9 │ P- │BDEL│
+  │    │ →  │ F7 │ F8 │ F9 │ ↑  │    │ P7 │ P8 │ P9 │NLCK│ P- │BDEL│
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │ ←  │ F4 │ F5 │ F6 │ ↓  │    │^INS│ P4 │ P5 │ P6 │ P+ │ () │
+  │    │ ←  │ F4 │ F5 │ F6 │ ↓  │    │ P4 │ P5 │ P6 │^INS│ P+ │ () │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │CALT│ F1 │ F2 │ F3 │    │    │CALT│ P1 │ P2 │ P3 │ P* │ =  │
+  │    │CALT│ F1 │ F2 │ F3 │    │    │ P1 │ P2 │ P3 │    │ P* │ =  │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │    │ F0?│    │    │    │    │TGL │ P0 │ 0  │ P. │ P/ │    │
+  │    │    │ F0?│    │    │    │    │ P0 │ 0  │ P. │TGL │ P/ │    │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
 */
 
 [_NINEKEY] =  KEYMAP( \
-  _______, KC_RGHT,   KC_F7,   KC_F8,   KC_F9,   KC_UP,         KC_NLCK,   KC_P7,   KC_P8,   KC_P9, KC_PMNS, M(BSDEL), \
-  _______, KC_LEFT,   KC_F4,   KC_F5,   KC_F6, KC_DOWN,           CAINS,   KC_P4,   KC_P5,   KC_P6, KC_PPLS, XK_PREN, \
-  _______,    CAKY,   KC_F1,   KC_F2,   KC_F3, _______,            CAKY,   KC_P1,   KC_P2,   KC_P3, KC_PAST, TD(EQE), \
-  _______, _______, _______,  KC_F11, _______, _______,    TG(_NINEKEY),   KC_P0,    KC_0, KC_PDOT, KC_PSLS, _______ \
+  _______, KC_RGHT,   KC_F7,   KC_F8,   KC_F9,   KC_UP,       KC_P7,   KC_P8,   KC_P9,      KC_NLCK,KC_PMNS, KC_DEL, \
+  _______, KC_LEFT,   KC_F4,   KC_F5,   KC_F6, KC_DOWN,       KC_P4,   KC_P5,   KC_P6,        CAINS,KC_PPLS, M(0), \
+  _______,    CAKY,   KC_F1,   KC_F2,   KC_F3, XXXXXXX,       KC_P1,   KC_P2,   KC_P3,      XXXXXXX,KC_PAST, TD(EQE), \
+  _______, _______, _______,  KC_F11, _______, _______,       KC_P0,    KC_0, KC_PDOT,         CAKY,KC_PSLS, _______ \
 ),
 
 /*
   ┌────┬────┬────┬────┬────┬────┐    ┌────┬────┬────┬────┬────┬────┐
-  │ESC │^PGD│^UP │^PGU│^PGU│^HOM│    │    │MW_L│ MU │MW_R│ AC2│    │
+  │ESC │^HOM│^PGD│^UP │^PGU│^PGU│    │    │MW_L│ MU │MW_R│ AC2│    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │^LFT│^DWN│^RGT│^PGD│^END│    │    │ ML │ MD │ MR │ AC1│    │
+  │    │^END│^LFT│^DWN│^RGT│^PGD│    │    │ ML │ MD │ MR │ AC1│    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
-  │    │ M2 │ M4 │ M3 │ M1 │ M5 │    │    │MW_D│MW_U│SLCK│ AC0│    │
+  │    │ M5 │ M2 │ M4 │ M3 │ M1 │    │    │MW_D│MW_U│    │ AC0│    │
   ├────┼────┼────┼────┼────┼────┤    ├────┼────┼────┼────┼────┼────┤
   │    │    │    │    │    │    │    │    │    │    │    │    │    │
   └────┴────┴────┴────┴────┴────┘    └────┴────┴────┴────┴────┴────┘
 */
 
 [_NAVIGAT] =  KEYMAP( \
-   KC_ESC,  NAVCPD,   NAVCU,  NAVCPU,  NAVCPU,   NAVCH,         XXXXXXX, KC_WH_L, KC_MS_U, KC_WH_R, KC_ACL2, _______, \
-  _______,   NAVCL,   NAVCD,   NAVCR,  NAVCPD,   NAVCE,         XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL1, _______, \
-  _______, KC_BTN2, KC_BTN4, KC_BTN3, KC_BTN1, KC_BTN5,         XXXXXXX, KC_WH_D, KC_WH_U, KC_SLCK, KC_ACL0, _______, \
+   KC_ESC,   NAVCH,  NAVCPD,   NAVCU,  NAVCPU,  NAVCPU,         XXXXXXX, KC_WH_L, KC_MS_U, KC_WH_R, KC_ACL2, _______, \
+  _______,   NAVCE,   NAVCL,   NAVCD,   NAVCR,  NAVCPD,         XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL1, _______, \
+  _______, KC_BTN5, KC_BTN2, KC_BTN4, KC_BTN3, KC_BTN1,         XXXXXXX, KC_WH_D, KC_WH_U, XXXXXXX, KC_ACL0, _______, \
   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
 ),
 
@@ -286,68 +297,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______ \
 ),
 
-/*
-//add greek symbols
-//set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
+[_MLAYER] =  KEYMAP( \
+  _______,UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),       _______, _______, _______, _______, _______, _______, \
+  KC_QUOT,UC(0x251C),UC(0x253C),UC(0x2524),   _______,   _______,          M(1),    M(0),    M(2), _______, _______, _______, \
+  _______,UC(0x2514),UC(0x2534),UC(0x2518),   _______,   _______,       _______, _______, _______, _______, _______, _______, \
+  _______,     WINSH,       WIN,       OSX,   _______,   _______,       _______, _______, _______, _______, _______, _______ \
+),
 
-//UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502)
-//UC(0x251C),UC(0x253C),UC(0x2524),
-//UC(0x2514),UC(0x2534),UC(0x2518),
-*/
 [_GRVTABL] =  KEYMAP( \
-    TG(5), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   TG(3), \
-    TG(1), XXXXXXX, TD(VOM), KC_VOLU, KC_MNXT, KC_MPLY,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   TG(1), \
-  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,           TG(0), XXXXXXX,   TG(4), XXXXXXX,   TG(8),  LCLEAR, \
-  XXXXXXX, XXXXXXX,   TG(6),   TG(3), XXXXXXX,   TG(2),         TG(2),   TG(7),   TG(3), OSM(MOD_MEH), TG(5), _______ \
+    TG(5),LALT(KC_PSCR),    M(4),  KC_PWR,KC_POWER,   RESET,           RESET,    KC_R,    KC_E,    KC_I,LALT(KC_PSCR),TG(3), \
+    TG(1),        TG(6),   TG(7),   TG(9),   TG(3),   TG(2),           TG(2),    KC_S,    KC_U,    KC_B,   TG(6),   TG(1), \
+     M(3),        TG(8), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         KC_MYCM, KC_CALC, XXXXXXX, XXXXXXX,   TG(8),    M(3), \
+   TT(15),        TG(6),   TG(7),   TG(9),   TG(3),   TG(2),           TG(2),   TG(3),   TG(9),   TG(7),   TG(6), _______ \
 )};
 
+
 qk_tap_dance_action_t tap_dance_actions[] = {
  [VOM] = ACTION_TAP_DANCE_DOUBLE(KC_VOLD, KC_MUTE),
  [PRN] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN),
  [EGT] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
  [HRD] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
  [DSH] = ACTION_TAP_DANCE_DOUBLE(KC_NDSH, KC_MDSH),
- [QUT] = ACTION_TAP_DANCE_DOUBLE(KC_Q,    LALT(KC_F4)),
- [ESC] = ACTION_TAP_DANCE_DOUBLE(TT(_NINEKEY), KC_ESC),
+ [ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC,  LALT(KC_F4)),
  [EQE] = ACTION_TAP_DANCE_DOUBLE(KC_EQL,  KC_ENT),
- [PGN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN,  KC_PGUP),
- [UND] = ACTION_TAP_DANCE_DOUBLE(KC_Z, LCTL(KC_Z)),
+ [UND] = ACTION_TAP_DANCE_DOUBLE(KC_Z,    LCTL(KC_Z)),
+ [PGN] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, KC_PGUP),
+ [HND] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END),
+ [COD] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT),
+ [F11] = ACTION_TAP_DANCE_DOUBLE(KC_F1,   KC_F11),
+ [F12] = ACTION_TAP_DANCE_DOUBLE(KC_F2,   KC_F12),
+ [F13] = ACTION_TAP_DANCE_DOUBLE(KC_F3,   KC_F13),
+ [F14] = ACTION_TAP_DANCE_DOUBLE(KC_F4,   KC_F14),
+ [F15] = ACTION_TAP_DANCE_DOUBLE(KC_F5,   KC_F15),
+ [F16] = ACTION_TAP_DANCE_DOUBLE(KC_F6,   KC_F16),
+ [F17] = ACTION_TAP_DANCE_DOUBLE(KC_F7,   KC_F17),
+ [F18] = ACTION_TAP_DANCE_DOUBLE(KC_F8,   KC_F18),
+ [F19] = ACTION_TAP_DANCE_DOUBLE(KC_F9,   KC_F19),
+ [F20] = ACTION_TAP_DANCE_DOUBLE(KC_F10,  KC_F20),
 };
 
+void matrix_init_user(){
+  set_unicode_input_mode(UC_LNX);
+}
+
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
-       if (record->event.pressed) {
-               switch(id) {
-                       case 0:
-                               return MACRO(D(LSHIFT),T(9), T(0),U(LSHIFT), T(LEFT), END);
-                       case 1:
-                               return MACRO(T(LBRC), T(RBRC), T(LEFT), END);
-                        case 2:
-                                return MACRO(D(LSHIFT),T(LBRC), T(RBRC),U(LSHIFT), T(ENT), T(UP), END);
-            case 3:
-                                return MACRO(T(BSPC), END);
-/*                static bool bsdel_mods = false;
-                case BSDEL: {
-                  uint8_t kc = KC_BSPC;
-                if (record->event.pressed) {
-                  if (keyboard_report->mods) {
-                    kc = KC_DEL;
-                  }
-                register_code (kc);
-                bsdel_mods = keyboard_report->mods;
-                }
-                else {
-                if (bsdel_mods) {
-                  kc = KC_DEL;
-                }
-
-                unregister_code (kc);
-                }
-                }
-*/            case 4:
-                if (!record->event.pressed) {
-//                bootloader();
-                }
-        }
-       }
-       return MACRO_NONE;
+  if (record->event.pressed) {
+    switch(id) {
+  case 0:
+    return MACRO( D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), T(LEFT), END );
+  case 1:
+    return MACRO( D(LSFT), T(LBRC), U(LSFT), D(LSFT), T(RBRC), U(LSFT), T(LEFT), END );
+  case 2:
+    return MACRO( T(LBRC), T(RBRC), T(LEFT), END);
+  case 3:
+    clear_keyboard();
+  case 4:
+    return MACRO( D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(LBRACKET), U(LSFT), D(LSFT), T(9), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(0), U(LSFT), D(LSFT), T(BSLASH), U(LSFT), D(LSFT), T(SCOLON), U(LSFT), D(LSFT), T(7), U(LSFT), D(LSFT), T(RBRACKET), U(LSFT), T(SCOLON), D(LSFT), T(SCOLON), U(LSFT), END );
+  case WINSH:
+    set_unicode_input_mode(UC_WIN);
+    return false;
+    break;
+  case WIN:
+    set_unicode_input_mode(UC_WINC);
+    return false;
+    break;
+  case OSX:
+    set_unicode_input_mode(UC_OSX);
+    return false;
+    break;
+   }
+  }
+ return MACRO_NONE;
 };