]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Merge pull request #300 from Twey/tweymap-momentary
authorErez Zukerman <bulk@ezuk.org>
Tue, 3 May 2016 01:04:13 +0000 (21:04 -0400)
committerErez Zukerman <bulk@ezuk.org>
Tue, 3 May 2016 01:04:13 +0000 (21:04 -0400)
Swap steno/media layers to allow using media keys in the Plover layer…

keyboard/ergodox_ez/keymaps/twey/keymap.c

index 75d264bdbeedf7377573a763179893dedaf9f3da..dec9f92f145847c56bf922dc9db2e5c9fb460303 100644 (file)
@@ -5,8 +5,8 @@
 
 #define BASE 0 // default layer
 #define SYMB 1 // symbols
-#define MDIA 2 // media keys
-#define STEN 3 // steno
+#define STEN 2 // steno
+#define MDIA 3 // media keys
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -17,19 +17,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |--------+------+------+------+-------+-------------|           |-------+------+------+------+------+------+--------|
  * | Del    |   '  |   ,  |   .  |   P   |   Y  |  Esc |           | Caps  |   F  |   G  |   C  |   R  |   L  |   /    |
  * |--------+------+------+------+-------+------|      |           |       |------+------+------+------+------+--------|
- * | BkSp   |   A  |   O  |   E  |   U   |   I  |------|           |-------|   D  |   H  |   T  |   N  |S / L2|- / Cmd |
+ * | BkSp   |   A  |   O  |   E  |   U   |   I  |------|           |-------|   D  |   H  |   T  |   N  |   S  |   -    |
  * |--------+------+------+------+-------+------|  Tab |           | Enter |------+------+------+------+------+--------|
  * | LShift |   ;  |   Q  |   J  |   K   |   X  |      |           |       |   B  |   M  |   W  |   V  |   Z  | RShift |
  * `--------+------+------+------+-------+-------------'           `--------------+------+------+------+------+--------'
- *   |Grv/L1|  '"  |AltShf| Left | Right |                                        |  Up  | Down |   [  |   ]  | ~L1  |
+ *   |  L1  | NONE |  Grv | Left | Right |                                        |  Up  | Down |   [  |   ]  |  L1  |
  *   `-----------------------------------'                                        `----------------------------------'
- *                                        ,-------------.         ,---------------.
- *                                        | PgUp | PgDn |         | Home  |  End  |
- *                                 ,------|------|------|         |-------+-------+------.
- *                                 |      |      | NONE |         | NONE  |       |      |
- *                                 | Alt  | NONE |------|         |-------| Space | Ctrl |
- *                                 |      |      | Supr |         | AltGr |       |      |
- *                                 `--------------------'         `----------------------'
+ *                                        ,--------------.         ,---------------.
+ *                                        |  PgUp | PgDn |         | Home  |  End  |
+ *                                 ,------|-------|------|         |-------+-------+------.
+ *                                 |      |       | NONE |         | AltGr |       |      |
+ *                                 | Alt  | Enter |------|         |-------| Space | Ctrl |
+ *                                 |      |       | Supr |         | ~MDIA |       |      |
+ *                                 `---------------------'         `----------------------'
  */
 // If it accepts an argument (i.e, is a function), it doesn't need KC_.
 // Otherwise, it needs KC_*
@@ -39,19 +39,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_DELT,        KC_QUOT,      KC_COMM,KC_DOT, KC_P,   KC_Y,   KC_ESC,
         KC_BSPC,        KC_A,         KC_O,   KC_E,   KC_U,   KC_I,
         KC_LSFT,        KC_SCLN,      KC_Q,   KC_J,   KC_K,   KC_X,   KC_TAB,
-        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,
+        MO(SYMB),       KC_NO,        KC_GRV, KC_LEFT,KC_RGHT,
                                                       KC_PGUP,KC_PGDN,
                                                               KC_NO,
                                               KC_LALT,KC_ENT ,KC_LGUI,
         // right hand
-             KC_NO,       KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_BSLS,
-             KC_CAPS,     KC_F,   KC_G,   KC_C,   KC_R,   KC_L,             KC_SLSH,
-                          KC_D,   KC_H,   KC_T,   KC_N,   LT(MDIA, KC_S),   GUI_T(KC_MINS),
-             KC_ENT,      KC_B,   KC_M,   KC_W,   KC_V,   KC_Z   ,          KC_RSFT,
-                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC,          KC_FN1,
+             KC_NO,       KC_6,   KC_7,   KC_8,   KC_9,   KC_0,    KC_BSLS,
+             KC_CAPS,     KC_F,   KC_G,   KC_C,   KC_R,   KC_L,    KC_SLSH,
+                          KC_D,   KC_H,   KC_T,   KC_N,   KC_S,    KC_MINS,
+             KC_ENT,      KC_B,   KC_M,   KC_W,   KC_V,   KC_Z   , KC_RSFT,
+                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB),
              KC_HOME,KC_END,
-             KC_NO,
-             KC_RALT,KC_SPC,KC_RCTL
+             KC_RALT,
+             KC_FN1,KC_SPC,KC_RCTL
     ),
 /* Keymap 1: Symbol Layer
  *
@@ -95,7 +95,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS
 ),
-/* Keymap 2: Media and mouse keys
+
+[STEN] = KEYMAP(  // layout: layer 2: Steno for Plover
+        // left hand
+        KC_NO,  KC_NO,  KC_NO,  KC_NO,   KC_NO,  KC_NO,   KC_TRNS,
+        KC_NO,  PV_NUM, PV_NUM, PV_NUM,  PV_NUM, PV_NUM,  PV_STAR,
+        KC_NO,  PV_LS,  PV_LT,  PV_LP,   PV_LH,  PV_STAR,
+        KC_NO,  PV_LS,  PV_LK,  PV_LW,   PV_LR,  PV_STAR, PV_STAR,
+        KC_NO,  KC_NO,  KC_NO,  KC_TRNS, KC_TRNS,
+                                          KC_NO, KC_NO,
+                                                 KC_NO,
+                                   PV_A,  PV_O,  KC_NO,
+        // right hand
+          KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
+        PV_STAR,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,
+                 PV_STAR,   PV_RF,   PV_RP,   PV_RL,   PV_RT,   PV_RD,
+        PV_STAR, PV_STAR,   PV_RR,   PV_RB,   PV_RG,   PV_RS,   PV_RZ,
+                          KC_TRNS, KC_TRNS,   KC_NO,   KC_NO,   KC_NO,
+        KC_NO,  KC_NO,
+        KC_NO,
+        KC_FN1, PV_E,    PV_U
+),
+
+/* Keymap 3: Media and mouse keys
  *
  * ,--------------------------------------------------.           ,--------------------------------------------------.
  * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
@@ -136,31 +158,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_TRNS,
        KC_TRNS, KC_TRNS, KC_WBAK
 ),
-
-[STEN] = KEYMAP(  // layout: layer 4: Steno for Plover
-        // left hand
-        KC_NO,  KC_NO,  KC_NO,  KC_NO,   KC_NO,  KC_NO,   KC_TRNS,
-        KC_NO,  PV_NUM, PV_NUM, PV_NUM,  PV_NUM, PV_NUM,  PV_STAR,
-        KC_NO,  PV_LS,  PV_LT,  PV_LP,   PV_LH,  PV_STAR,
-        KC_NO,  PV_LS,  PV_LK,  PV_LW,   PV_LR,  PV_STAR, PV_STAR,
-        KC_NO,  KC_NO,  KC_NO,  KC_TRNS, KC_TRNS,
-                                          KC_NO, KC_NO,
-                                                 KC_NO,
-                                   PV_A,  PV_O,  KC_NO,
-        // right hand
-          KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
-        PV_STAR,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,
-                 PV_STAR,   PV_RF,   PV_RP,   PV_RL,   PV_RT,   PV_RD,
-        PV_STAR, PV_STAR,   PV_RR,   PV_RB,   PV_RG,   PV_RS,   PV_RZ,
-                          KC_TRNS, KC_TRNS,   KC_NO,   KC_NO,   KC_NO,
-        KC_NO, KC_NO,
-        KC_NO,
-        KC_NO, PV_E,    PV_U
-),
 };
 
 const uint16_t PROGMEM fn_actions[] = {
-    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+    [1] = ACTION_LAYER_TAP_TOGGLE(MDIA)                // FN1 - Momentary Layer 3 (Media)
 };
 
 void toggle_steno(int pressed)
@@ -200,26 +201,17 @@ void matrix_init_user(void) {
 
 // Runs constantly in the background, in a loop.
 void matrix_scan_user(void) {
-    uint8_t layer = biton32(layer_state);
+    uint32_t layer0 = layer_state & (1UL << 0),
+             layer1 = layer_state & (1UL << 1),
+             layer2 = layer_state & (1UL << 2),
+             layer3 = layer_state & (1UL << 3);    
 
     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;
-        case 3:
-            ergodox_right_led_3_on();
-            break;
-        default:
-            // none
-            break;
-    }
 
+    if (layer1) ergodox_right_led_1_on();
+    if (layer2) ergodox_right_led_2_on();
+    if (layer3) ergodox_right_led_3_on();
 };