]> git.donarmstrong.com Git - tmk_firmware.git/blobdiff - keyboard/hhkb/keymap.c
Merge branch 'macro_mediakey'(Fix issue #42)
[tmk_firmware.git] / keyboard / hhkb / keymap.c
index 094d33af113e010085bad1237ffbcbb626b4f32c..faa62dd7e1d63d152bf3f94162b9b217b7a301cc 100644 (file)
@@ -67,7 +67,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
            TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSPC, \
            LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   FN3, QUOT,FN4, \
             FN5,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, FN2, RSFT,FN1, \
-                LGUI,LALT,          FN6,                RALT,FN7),
+                LGUI,LALT,          FN6,                RALT,RGUI),
 
     /* Layer 1: HHKB mode (HHKB Fn)
      * ,-----------------------------------------------------------.
@@ -150,7 +150,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * ,-----------------------------------------------------------.
      * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
      * |-----------------------------------------------------------|
-     * |Tab  |   |   |   |   |   |MwL|MwD|MwU|MwR|   |   |   |Backs|
+     * |Tab  |   |   |   |   |   |MwL|MwD|MwU|MwR|   |Wbk|Wfr|Close|
      * |-----------------------------------------------------------|
      * |Contro|   |   |   |   |   |McL|McD|McU|McR|Fn0|   |Return  |
      * |-----------------------------------------------------------|
@@ -161,7 +161,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel 
      */
     KEYMAP(ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, INS, DEL, \
-           TAB, NO,  NO,  NO,  NO,  NO,  WH_L,WH_D,WH_U,WH_R,NO,  NO,  NO,  BSPC, \
+           TAB, NO,  NO,  NO,  NO,  NO,  WH_L,WH_D,WH_U,WH_R,WSTP,WBAK,WFWD,FN8, \
            LCTL,NO,  ACL0,ACL1,ACL2,NO,  MS_L,MS_D,MS_U,MS_R,NO,  NO,  ENT, \
            LSFT,NO,  NO,  NO,  NO,  BTN3,BTN2,BTN1,BTN4,BTN5,NO,  RSFT,NO, \
                 LGUI,LALT,          TRNS,               RALT,RGUI),
@@ -179,6 +179,7 @@ enum macro_id {
     LSHIFT_PAREN,
     RSHIFT_PAREN,
     HELLO,
+    VOLUP,
 };
 
 
@@ -186,17 +187,15 @@ enum macro_id {
  * Fn action definition
  */
 static const uint16_t PROGMEM fn_actions[] = {
-    [0] = ACTION_DEFAULT_LAYER,                        // Default layer(not used)
-//  [1] = ACTION_KEYMAP(1),                            // HHKB layer
-    [1] = ACTION_KEYMAP_TAP_TOGGLE(1),                 // HHKB layer(toggle with 5 taps)
-    [2] = ACTION_KEYMAP_TAP_KEY(2, KC_SLASH),          // Cursor layer with Slash*
-    [3] = ACTION_KEYMAP_TAP_KEY(3, KC_SCLN),           // Mousekey layer with Semicolon*
-    [4] = ACTION_RMOD_TAP_KEY(KC_RCTL, KC_ENT),        // RControl with tap Enter*
-    [5] = ACTION_LMOD_ONESHOT(KC_LSFT),                // Oneshot Shift*
-//  [6] = ACTION_KEYMAP_TAP_KEY(4, KC_SPC),            // Half-qwerty layer with Space
-    [6] = ACTION_KEYMAP_TAP_KEY(5, KC_SPC),            // Mousekey layer with Space
-//  [7] = ACTION_KEYMAP(3),                            // Mousekey layer
-    [7] = ACTION_KEYMAP_TOGGLE(3),                     // Mousekey layer(toggle)
+    [0] = ACTION_DEFAULT_LAYER_SET(0),                // Default layer(not used)
+    [1] = ACTION_LAYER_TAP_TOGGLE(1),                 // HHKB layer(toggle with 5 taps)
+    [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH),          // Cursor layer with Slash*
+    [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN),           // Mousekey layer with Semicolon*
+    [4] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT),      // RControl with tap Enter*
+    [5] = ACTION_MODS_ONESHOT(MOD_LSFT),              // Oneshot Shift*
+    [6] = ACTION_LAYER_TAP_KEY(5, KC_SPC),            // Mousekey layer with Space
+    [7] = ACTION_LAYER_TOGGLE(3),                     // Mousekey layer(toggle)
+    [8] = ACTION_MODS_KEY(MOD_LCTL, KC_W),            // Close Tab
 
 //  [8] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC),       // LControl with tap Backspace
 //  [9] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC),        // LControl with tap Esc
@@ -205,13 +204,14 @@ static const uint16_t PROGMEM fn_actions[] = {
 //  [13] = ACTION_MACRO_TAP(LSHIFT_PAREN),             // Macro: LShift with tap '('
 //  [14] = ACTION_MACRO_TAP(RSHIFT_PAREN),             // Macro: RShift with tap ')'
 //  [15] = ACTION_MACRO(HELLO),                        // Macro: say hello
+//  [9] = ACTION_MACRO(VOLUP),                         // Macro: media key
 };
 
 
 /*
  * Macro definition
  */
-const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 {
     keyevent_t event = record->event;
     tap_t tap = record->tap;
@@ -220,23 +220,27 @@ const prog_macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t op
         case LSHIFT_PAREN:
             if (tap.count > 0 && !tap.interrupted) {
                 return (event.pressed ?
-                        MACRO( MD(LSHIFT), D(9), U(9), MU(LSHIFT), END ) : MACRO_NONE);
+                        MACRO( D(LSHIFT), D(9), U(9), U(LSHIFT), END ) : MACRO_NONE);
             } else {
                 return (event.pressed ?
-                        MACRO( MD(LSHIFT), END ) : MACRO( MU(LSHIFT), END ) );
+                        MACRO( D(LSHIFT), END ) : MACRO( U(LSHIFT), END ) );
             }
         case RSHIFT_PAREN:
             if (tap.count > 0 && !tap.interrupted) {
                 return (event.pressed ?
-                        MACRO( MD(RSHIFT), D(0), U(0), MU(RSHIFT), END ) : MACRO_NONE);
+                        MACRO( D(RSHIFT), D(0), U(0), U(RSHIFT), END ) : MACRO_NONE);
             } else {
                 return (event.pressed ?
-                        MACRO( MD(RSHIFT), END ) : MACRO( MU(RSHIFT), END ) );
+                        MACRO( D(RSHIFT), END ) : MACRO( U(RSHIFT), END ) );
             }
         case HELLO:
             return (event.pressed ?
                     MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :
                     MACRO_NONE );
+        case VOLUP:
+            return (event.pressed ?
+                    MACRO( D(VOLU), U(VOLU), END ) :
+                    MACRO_NONE );
     }
     return MACRO_NONE;
 }