]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboard/ergodox_ez/keymaps/bepo/keymap.c
adds backlight levels to the satan keyboard (#431)
[qmk_firmware.git] / keyboard / ergodox_ez / keymaps / bepo / keymap.c
index a3a11c9980bc5c1bb3383a2c202d791e78ada2ad..921a94d63a62c0dc7756f7efb458c1d1af2bd0ee 100644 (file)
 #include "ergodox_ez.h"
 #include "debug.h"
 #include "action_layer.h"
-#include "keymap_extras/keymap_bepo.h"
+#include "keymap_bepo.h"
 
 #define BASE 0 // default layer
-#define FNX 1 // function keys
-#define NUM 2 // numeric keypad keys
-#define NAV 3 // navigation keys
+#define QWER 1 // qwerty compat layer
+#define SQWER 2 // shifted qwerty compat layer
+#define AQWER 3 // alted qwerty compat layer
+#define FNAV 4 // function / navigation keys
+#define NUM 5 // numeric keypad keys
+#define MSE 6 // mouse keys
 
 #define KP_00 0
+#define CA_Fx 1
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 /* Keymap 0: Base layer
  *
  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
- * |   $    |   "  |   <  |   >  |   (  |   )  |      |                                  |ScroLo|   @  |   +  |   -  |   /  |   *  |   =    |
+ * |   $    |   "  |   <  |   >  |   (  |   )  |Delete|                                  |ScroLo|   @  |   +  |   -  |   /  |   *  |   =    |
  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
- * |   %    |   B  |E_ACUT|   P  |   O  |E_GRAV|  Esc |                                  |CapsLo|   ^  |   V  |   D  |   L  |   J  |   Z    |
- * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
+ * |   %    |   B  |E_ACUT|   P  |   O  |E_GRAV|Backsp|                                  |CapsLo|   ^  |   V  |   D  |   L  |   J  |   Z    |
+ * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
  * |   W    |   A  |   U  |   I  |   E  |   ,  |------|                                  |------|   C  |   T  |   S  |   R  |   N  |   M    |
  * |--------+------+------+------+------+------|  Tab |                                  | NumLo|------+------+------+------+------+--------|
  * | E_CIRC |A_GRAV|   Y  |   X  |   .  |   K  |      |                                  |      |   '  |   Q  |   G  |   H  |   F  | C_CEDIL|
  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
- *   |      | L_Fx | L_Num| L_Nav| LCtrl|             |Delete|LSuper|      |RSuper|Insert|             | AltGr|      |      |PrntSc| Pause|
+ *   |QWERTY|      |LSuper| LCtrl|  LAlt|             |Escape| L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
- *                                             |      |      | LCtrl|      | RCtrl|      |      |
- *                                             | Space|Backsp|------|      |------|RShift|Enter |
- *                                             |      |ace   |  LAlt|      | AltGr|      |      |
+ *                                             |      |      | L_Num|      | CA_Fx|      |      |
+ *                                             | Space|LShift|------|      |------|RShift|Enter |
+ *                                             |      |      |L_FNav|      |L_FNav|      |      |
  *                                             `--------------------'      `--------------------'
  */
 [BASE] = KEYMAP(
 // Left hand
-BP_DOLLAR,     BP_DQOT,        BP_LGIL,        BP_RGIL,        BP_LPRN,        BP_RPRN,        KC_NO,
-BP_PERCENT,    BP_B,           BP_E_ACUTE,     BP_P,           BP_O,           BP_E_GRAVE,     KC_ESC,
+BP_DOLLAR,     BP_DQOT,        BP_LGIL,        BP_RGIL,        BP_LPRN,        BP_RPRN,        KC_DEL,
+BP_PERCENT,    BP_B,           BP_E_ACUTE,     BP_P,           BP_O,           BP_E_GRAVE,     KC_BSPC,
 BP_W,          BP_A,           BP_U,           BP_I,           BP_E,           BP_COMMA,
 BP_ECRC,       BP_A_GRAVE,     BP_Y,           BP_X,           BP_DOT,         BP_K,           KC_TAB,
-KC_NO,         MO(FNX),        MO(NUM),        MO(NAV),        KC_LCTL,
-                                                                                                               KC_DEL,         KC_LGUI,
-                                                                                                                               KC_LCTL,
-                                                                                               KC_SPC,         KC_BSPC,        KC_LALT,
+TG(QWER),      KC_NO,          KC_LGUI,        KC_LCTL,        KC_LALT,
+                                                                                                               KC_ESC,         MO(MSE),
+                                                                                                                               MO(NUM),
+                                                                                               KC_SPC,         KC_LSHIFT,      MO(FNAV),
 // Right hand
                                KC_SLCK,        BP_AT,          BP_PLUS,        BP_MINUS,       BP_SLASH,       BP_ASTR,        BP_EQUAL,
                                KC_CAPSLOCK,    BP_DCRC,        BP_V,           BP_D,           BP_L,           BP_J,           BP_Z,
                                                BP_C,           BP_T,           BP_S,           BP_R,           BP_N,           BP_M,
                                KC_NUMLOCK,     BP_APOS,        BP_Q,           BP_G,           BP_H,           BP_F,           BP_CCED,
-                                                               BP_ALGR,        KC_NO,          KC_NO,          KC_PSCREEN,     KC_PAUSE,
-KC_RGUI,       KC_INS,
-KC_RCTL,
-BP_ALGR,       KC_RSHIFT,      KC_ENTER),
-/* Keymap 1: function layer
+                                                               BP_ALGR,        KC_RCTL,        KC_RGUI,        KC_PSCREEN,     KC_PAUSE,
+KC_NO,         KC_INS,
+M(CA_Fx),
+MO(FNAV),      KC_RSHIFT,      KC_ENTER),
+/* Keymap 1: QWERTY system compatibility layer
  *
  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
- * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |                                  |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |   $    |   "  |   <  |   >  |   (  |   )  |Delete|                                  |ScroLo|   @  |   +  |   -  |   /  |   *  |   =    |
  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
- * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |   F12  |
- * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
- * |        |      |      |      |      |      |------|                                  |------|      |      |      |      |      |        |
+ * |   %    |   b  |   e  |   p  |   o  |   e  |Backsp|                                  |CapsLo|   ^  |   v  |   d  |   l  |   j  |   z    |
+ * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
+ * |   w    |   a  |   u  |   i  |   e  |   ,  |------|                                  |------|   c  |   t  |   s  |   r  |   n  |   m    |
+ * |--------+------+------+------+------+------|  Tab |                                  | NumLo|------+------+------+------+------+--------|
+ * |   e    |   a  |   y  |   x  |   .  |   k  |      |                                  |      |   '  |   q  |   g  |   h  |   f  |   c    |
+ * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
+ *   | BEPO |      |LSuper| LCtrl|  LAlt|             |Escape| L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
+ *                                             |      |      | L_Num|      |      |      |      |
+ *                                             | Space|LShift|------|      |------|RShift|Enter |
+ *                                             |      |      |L_FNav|      |L_FNav|      |      |
+ *                                             `--------------------'      `--------------------'
+ */
+[QWER] = KEYMAP(
+// Left hand
+KC_DOLLAR,     S(KC_QUOT),     S(KC_COMM),     S(KC_DOT),      KC_LPRN,        KC_RPRN,        KC_DEL,
+KC_PERCENT,    KC_B,           KC_E,           KC_P,           KC_O,           KC_E,           KC_BSPC,
+KC_W,          KC_A,           KC_U,           KC_I,           KC_E,           KC_COMMA,
+KC_E,          KC_A,           KC_Y,           KC_X,           KC_DOT,         KC_K,           KC_TAB,
+KC_TRNS,       KC_NO,          KC_LGUI,        KC_LCTL,        KC_LALT,
+                                                                                                               KC_ESC,         MO(MSE),
+                                                                                                                               MO(NUM),
+                                                                                               KC_SPC,         MO(SQWER),      MO(FNAV),
+// Right hand
+                               KC_SLCK,        KC_AT,          KC_PLUS,        KC_MINUS,       KC_SLASH,       KC_ASTR,        KC_EQUAL,
+                               KC_CAPSLOCK,    KC_CIRC,        KC_V,           KC_D,           KC_L,           KC_J,           KC_Z,
+                                               KC_C,           KC_T,           KC_S,           KC_R,           KC_N,           KC_M,
+                               KC_NUMLOCK,     KC_QUOT,        KC_Q,           KC_G,           KC_H,           KC_F,           KC_C,
+                                                               MO(AQWER),      KC_RCTL,        KC_RGUI,        KC_PSCREEN,     KC_PAUSE,
+KC_NO,         KC_INS,
+KC_TRNS,
+MO(FNAV),      MO(SQWER),      KC_ENTER),
+/* Keymap 2: QWERTY shifted system compatibility layer
+ *
+ * ,--------------------------------------------------.                                  ,--------------------------------------------------.
+ * |   #    |   1  |   2  |   3  |   4  |   5  |Delete|                                  |ScroLo|   6  |   7  |   8  |   9  |   0  |   =    |
+ * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
+ * |   `    |   B  |   E  |   P  |   O  |   E  |Backsp|                                  |CapsLo|   !  |   V  |   D  |   L  |   J  |   Z    |
+ * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
+ * |   W    |   A  |   U  |   I  |   E  |   ;  |------|                                  |------|   C  |   T  |   S  |   R  |   N  |   M    |
+ * |--------+------+------+------+------+------|  Tab |                                  | NumLo|------+------+------+------+------+--------|
+ * |   E    |   A  |   Y  |   X  |   :  |   K  |      |                                  |      |   ?  |   Q  |   G  |   H  |   F  |   C    |
+ * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
+ *   | BEPO |      |LSuper| LCtrl|  LAlt|             |Escape| L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
+ *                                             |      |      | L_Num|      |      |      |      |
+ *                                             | Space|LShift|------|      |------|RShift|Enter |
+ *                                             |      |      |L_FNav|      |L_FNav|      |      |
+ *                                             `--------------------'      `--------------------'
+ */
+[SQWER] = KEYMAP(
+// Left hand
+KC_HASH,       KC_1,           KC_2,           KC_3,           KC_4,           KC_5,           KC_TRNS,
+KC_GRV,                S(KC_B),        S(KC_E),        S(KC_P),        S(KC_O),        S(KC_E),        KC_TRNS,
+S(KC_W),       S(KC_A),        S(KC_U),        S(KC_I),        S(KC_E),        KC_SCOLON,
+S(KC_E),       S(KC_A),        S(KC_Y),        S(KC_X),        KC_COLON,       S(KC_K),        S(KC_TAB),
+KC_TRNS,       KC_TRNS,        S(KC_LGUI),     S(KC_LCTL),     S(KC_LALT),
+                                                                                                               KC_TRNS,        KC_TRNS,
+                                                                                                                               KC_TRNS,
+                                                                                               KC_TRNS,        KC_TRNS,        KC_TRNS,
+// Right hand
+                               KC_TRNS,        KC_6,           KC_7,           KC_8,           KC_9,           KC_0,           KC_TRNS,
+                               KC_TRNS,        KC_EXLM,        S(KC_V),        S(KC_D),        S(KC_L),        S(KC_J),        S(KC_Z),
+                                               S(KC_C),        S(KC_T),        S(KC_S),        S(KC_R),        S(KC_N),        S(KC_M),
+                               KC_TRNS,        S(KC_SLASH),    S(KC_Q),        S(KC_G),        S(KC_H),        S(KC_F),        S(KC_C),
+                                                               S(KC_RALT),     S(KC_RCTL),     S(KC_RGUI),     KC_TRNS,        KC_TRNS,
+KC_TRNS,       KC_TRNS,
+KC_TRNS,
+KC_TRNS,       KC_TRNS,        KC_TRNS),
+/* Keymap 3: QWERTY alted system compatibility layer
+ *
+ * ,--------------------------------------------------.                                  ,--------------------------------------------------.
+ * |   $    |   "  |   <  |   >  |   [  |   ]  |Delete|                                  |ScroLo|   @  |   +  |   -  |   /  |   *  |   =    |
+ * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
+ * |   %    |   |  |   e  |   &  |   o  |   e  |Backsp|                                  |CapsLo|   ^  |   v  |   d  |   l  |   j  |   z    |
+ * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
+ * |   w    |   a  |   u  |   i  |   â‚¬  |   ,  |------|                                  |------|   c  |   t  |   s  |   r  |   n  |   m    |
+ * |--------+------+------+------+------+------|  Tab |                                  | NumLo|------+------+------+------+------+--------|
+ * |   e    |   \  |   {  |   }  |   .  |   ~  |      |                                  |      |   '  |   q  |   g  |   h  |   f  |   c    |
+ * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
+ *   | BEPO |      |LSuper| LCtrl|  LAlt|             |Escape| L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
+ *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
+ *                                             |      |      | L_Num|      |      |      |      |
+ *                                             |   _  |LShift|------|      |------|RShift|Enter |
+ *                                             |      |      |L_FNav|      |L_FNav|      |      |
+ *                                             `--------------------'      `--------------------'
+ */
+[AQWER] = KEYMAP(
+// Left hand
+KC_DOLLAR,     S(KC_QUOT),     S(KC_COMM),     S(KC_DOT),      KC_LBRC,        KC_RBRC,        KC_DEL,
+KC_PERCENT,    KC_PIPE,        KC_E,           KC_AMPR,        KC_O,           KC_E,           KC_BSPC,
+KC_W,          KC_A,           KC_U,           KC_I,           RALT(KC_5),     KC_COMMA,
+KC_E,          KC_BSLASH,      KC_LCBR,        KC_RCBR,        KC_DOT,         KC_TILDE,       KC_TAB,
+KC_TRNS,       KC_NO,          KC_LGUI,        KC_LCTL,        KC_LALT,
+                                                                                                               KC_ESC,         MO(MSE),
+                                                                                                                               MO(NUM),
+                                                                                               KC_UNDS,        MO(SQWER),      MO(FNAV),
+// Right hand
+                               KC_SLCK,        KC_AT,          KC_PLUS,        KC_MINUS,       KC_SLASH,       KC_ASTR,        KC_EQUAL,
+                               KC_CAPSLOCK,    KC_CIRC,        KC_V,           KC_D,           KC_L,           KC_J,           KC_Z,
+                                               KC_C,           KC_T,           KC_S,           KC_R,           KC_N,           KC_M,
+                               KC_NUMLOCK,     KC_QUOT,        KC_Q,           KC_G,           KC_H,           KC_F,           KC_C,
+                                                               KC_TRNS,        KC_RCTL,        KC_RGUI,        KC_PSCREEN,     KC_PAUSE,
+KC_NO,         KC_INS,
+KC_TRNS,
+MO(FNAV),      MO(SQWER),      KC_ENTER),
+/* Keymap 4: function / navigation layer
+ *
+ * ,--------------------------------------------------.                                  ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |VolMut|                                  |      |  F6  |  F7  |  F8  |  F9  |  F10 |        |
+ * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |VolDwn|                                  |      | PgUp | Home |  Up  |  End |  F11 |        |
  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
- * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |        |
+ * |        |      |      |      |      |      |------|                                  |------| PgDn | Left | Down | Right|  F12 |        |
+ * |--------+------+------+------+------+------| VolUp|                                  |      |------+------+------+------+------+--------|
+ * |        | Undo |  Cut | Copy | Paste|      |      |                                  |      |      |      |      |      |      |        |
  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
  *   |      |      |      |      |      |             |      |      |      |      |      |             |      |      |      |      |      |
  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
@@ -66,26 +181,26 @@ BP_ALGR,   KC_RSHIFT,      KC_ENTER),
  *                                             |      |      |      |      |      |      |      |
  *                                             `--------------------'      `--------------------'
  */
-[FNX] = KEYMAP(
+[FNAV] = KEYMAP(
 // Left hand
-KC_NO,         KC_F1,          KC_F2,          KC_F3,          KC_F4,          KC_F5,          KC_NO,
-KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
+KC_NO,         KC_F1,          KC_F2,          KC_F3,          KC_F4,          KC_F5,          KC_MUTE,
+KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_VOLU,
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
-KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
-KC_NO,         KC_TRNS,        KC_NO,          KC_NO,          KC_NO,
+KC_NO,         KC_UNDO,        KC_CUT,         KC_COPY,        KC_PASTE,       KC_NO,          KC_VOLD,
+KC_NO,         KC_NO,          KC_TRNS,        KC_TRNS,        KC_TRNS,
                                                                                                                KC_NO,          KC_NO,
                                                                                                                                KC_NO,
-                                                                                               KC_NO,          KC_NO,          KC_NO,
+                                                                                               KC_NO,          KC_TRNS,        KC_TRNS,
 // Right hand
-                               KC_NO,          KC_F6,          KC_F7,          KC_F8,          KC_F9,          KC_F10,         KC_F11,
-                               KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_F12,
-                                               KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
+                               KC_NO,          KC_F6,          KC_F7,          KC_F8,          KC_F9,          KC_F10,         KC_NO,
+                               KC_NO,          KC_PGUP,        KC_HOME,        KC_UP,          KC_END,         KC_F11,         KC_NO,
+                                               KC_PGDOWN,      KC_LEFT,        KC_DOWN,        KC_RIGHT,       KC_F12,         KC_NO,
                                KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
-                                                               KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
+                                                               KC_TRNS,        KC_TRNS,        KC_TRNS,        KC_NO,          KC_NO,
 KC_NO,         KC_NO,
-KC_NO,
-KC_NO,         KC_NO,          KC_NO),
-/* Keymap 2: numeric layer, sends keypad codes
+KC_TRNS,
+KC_TRNS,       KC_TRNS,        KC_NO),
+/* Keymap 5: numeric layer, sends keypad codes
  *
  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
  * |        |      |      |      |      |      |      |                                  |      |      |   +  |   -  |   /  |   *  |        |
@@ -109,10 +224,10 @@ KC_NO,            KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
-KC_NO,         KC_NO,          KC_TRNS,        KC_NO,          KC_NO,
+KC_NO,         KC_NO,          KC_TRNS,        KC_TRNS,        KC_TRNS,
                                                                                                                KC_NO,          KC_NO,
-                                                                                                                               KC_NO,
-                                                                                               KC_NO,          KC_NO,          KC_NO,
+                                                                                                                               KC_TRNS,
+                                                                                               KC_NO,          KC_TRNS,        KC_NO,
 // Right hand
                                KC_NO,          KC_NO,          KC_KP_PLUS,     KC_KP_MINUS,    KC_KP_SLASH,    KC_KP_ASTERISK, KC_NO,
                                KC_NO,          KC_NO,          KC_KP_7,        KC_KP_8,        KC_KP_9,        KC_NO,          KC_NO,
@@ -121,15 +236,15 @@ KC_NO,            KC_NO,          KC_TRNS,        KC_NO,          KC_NO,
                                                                KC_KP_0,        M(KP_00),       KC_KP_COMMA,    KC_NO,          KC_NO,
 KC_NO,         KC_NO,
 KC_NO,
-KC_NO,         KC_NO,          KC_KP_ENTER),
-/* Keymap 3: navigation layer
+KC_NO,         KC_TRNS,        KC_KP_ENTER),
+/* Keymap 6: mouse layer
  *
  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |        |
  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
- * |        |      |      |      |      |      |      |                                  |      |      | Home |  Up  |  End | PgUp |        |
+ * |        |      |      |      |      |      |      |                                  |      |      |LClick|  Up  |RClick| WhUp |        |
  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
- * |        |      |      |      |      |      |------|                                  |------|      | Left | Down | Right| PgDn |        |
+ * |        |      |      |      |      |      |------|                                  |------|      | Left | Down | Right|WhDown|        |
  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |        |
  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
@@ -140,25 +255,25 @@ KC_NO,            KC_NO,          KC_KP_ENTER),
  *                                             |      |      |      |      |      |      |      |
  *                                             `--------------------'      `--------------------'
  */
-[NAV] = KEYMAP(
+[MSE] = KEYMAP(
 // Left hand
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
 KC_NO,         KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
-KC_NO,         KC_NO,          KC_NO,          KC_TRNS,        KC_NO,
-                                                                                                               KC_NO,          KC_NO,
+KC_NO,         KC_NO,          KC_TRNS,        KC_TRNS,        KC_TRNS,
+                                                                                                               KC_NO,          KC_TRNS,
                                                                                                                                KC_NO,
-                                                                                               KC_NO,          KC_NO,          KC_NO,
+                                                                                               KC_NO,          KC_TRNS,        KC_NO,
 // Right hand
                                KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
-                               KC_NO,          KC_NO,          KC_HOME,        KC_UP,          KC_END,         KC_PGUP,        KC_NO,
-                                               KC_NO,          KC_LEFT,        KC_DOWN,        KC_RIGHT,       KC_PGDOWN,      KC_NO,
+                               KC_NO,          KC_NO,          KC_MS_BTN1,     KC_MS_UP,       KC_MS_BTN2,     KC_MS_WH_UP,    KC_NO,
+                                               KC_NO,          KC_MS_LEFT,     KC_MS_DOWN,     KC_MS_RIGHT,    KC_MS_WH_DOWN,  KC_NO,
                                KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
-                                                               KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
+                                                               KC_TRNS,        KC_TRNS,        KC_TRNS,        KC_NO,          KC_NO,
 KC_NO,         KC_NO,
 KC_NO,
-KC_NO,         KC_NO,          KC_NO)
+KC_NO,         KC_TRNS,        KC_NO)
 };
 
 const uint16_t PROGMEM fn_actions[] = {
@@ -169,7 +284,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
   switch(id) {
     case KP_00:
       if (record->event.pressed) {
-        return MACRO( D(KP_0), U(KP_0), D(KP_0), U(KP_0), END );
+        return MACRO( T(KP_0), D(KP_0), END );
+      } else {
+        return MACRO( U(KP_0), END );
+      }
+      break;
+    case CA_Fx:
+      if (record->event.pressed) {
+        layer_on(FNAV);
+        return MACRO( D(LALT), D(LCTL), END );
+      } else {
+        layer_off(FNAV);
+        return MACRO( U(LCTL), U(LALT), END );
       }
       break;
   }