]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/hhkb/keymaps/blakedietz/keymap.c
Merge pull request #1427 from blakedietz/master
[qmk_firmware.git] / keyboards / hhkb / keymaps / blakedietz / keymap.c
1 #include "hhkb.h"
2
3 // Layer names
4 #define BASE 0
5 #define DEV 1
6 #define MOUSE 2
7 #define MEDIA 3
8
9 // Required for leader function. Measured in ms
10 // #define LEADER_TIMEOUT 300
11
12 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13
14     /* BASE Level: Default Layer
15      |-----------+-------+--------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+----|
16      |     `     |  1    | 2      | 3     |   4   |   5   |   6   | 7     | 8     | 9     | 0     | -     | =     | Bksp |Lead|
17      |-----------+-------+--------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+----|
18      |    Tab    |  Q    | W      | E     |   R   |   T   |   Y   |  U    | I     | O     | P     | [     | ]     |      | \  |
19      |-----------+-------+--------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+----|
20      | Esc/Hyper |   A   | S      | D     |   F   |   G   |   H   |  J    | K     | L     |;/Media| '     | Enter |      |    |
21      |-----------+-------+--------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+----|
22      |   Shift   | Z/Ctl | X/Alt  | C/Gui |   V   |   B   |   N   |  M    | ,/Gui | ./Alt | //Ctl | Shift | Dev   |      |    |
23      |-----------+-------+--------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+----|
24      TODO: Maybe add a photoshop layer for when I need to hold spacebar down. Maybe just make it a layer that you
25                  |------+------+-----------------------+------+------|
26                  | Dev  |Mouse | ******* Space ******* | Dev  |Mouse |
27                  |------+------+-----------------------+------+------|
28     */
29
30   [BASE] = KEYMAP(  //  default layer
31   KC_GRV,        KC_1,  KC_2,  KC_3,  KC_4,  KC_5,  KC_6,  KC_7,  KC_8,  KC_9,     KC_0,     KC_MINS,  KC_EQL,    KC_BSPC,  KC_LEAD,                          \
32   KC_TAB,        KC_Q,  KC_W,  KC_E,  KC_R,  KC_T,  KC_Y,  KC_U,  KC_I,  KC_O,     KC_P,     KC_LBRC,  KC_RBRC,   KC_BSLS,                                    \
33   ALL_T(KC_ESC), KC_A,  KC_S,  KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,  KC_L,     LT(MEDIA, KC_SCLN),  KC_QUOT,  ALL_T(KC_ENT),                              \
34   KC_LSFT,       CTL_T(KC_Z),  ALT_T(KC_X),  GUI_T(KC_C),  KC_V,  KC_B,  KC_N,     KC_M,  GUI_T(KC_COMM),  ALT_T(KC_DOT),  CTL_T(KC_SLSH), KC_RSFT,  TG(DEV), \
35       TG(DEV), TG(MOUSE),                              LT(DEV, KC_SPC), TG(MOUSE),              TG(DEV)),
36
37     /* Layer DEV: DEV mode (DEV Fn)
38       TODO: Add a cmd/tab function to the developer layer for quick switching between different applications when debugging
39       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
40       |      |     |     |     |    |    |        |                |              |           |             |     |       |       |     |
41       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
42       |      |     |     |     |    |    |        |                |              |           |             |     |       |       |     |
43       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
44       |      | F1  | F2  | F3  | F4 | F5 | Left   |  Down          | Up           | Right     |             |     |       |       |     |
45       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
46       |      |     |     |     |    |    |        |                |              |           |             |     |       |       |     |
47       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
48
49                  |------+------+----------------------+------+------+
50                  | **** | **** | ******************** | **** | **** |
51                  |------+------+----------------------+------+------+
52      */
53
54   [DEV] = KEYMAP(
55   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, \
56   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,          \
57   KC_TRNS,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_LEFT, KC_DOWN,  KC_UP,   KC_RIGHT, KC_TRNS,  KC_TRNS,  KC_TRNS,                    \
58   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS, TG(DEV),                 \
59                      KC_TRNS, KC_TRNS,           KC_TRNS,              KC_TRNS, KC_TRNS),
60
61     /* Layer MOUSE: MOUSE mode (MOUSE Fn)
62       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
63       |      |     |     |     |    |    |        |                |              |           |             |     |       |       |     |
64       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
65       |      |     |     |     |    |    |        |                |              |           |             |     |       |       |     |
66       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
67       |      |     |     |     |    |    |        |                |              |           |             |     |       |       |     |
68       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
69       |      |     |     |     |    |    |        |                |              |           |             |     |       |       |     |
70       |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
71
72                  |------+------+----------------------+------+------+
73                  | **** | **** | ******************** | **** | **** |
74                  |------+------+----------------------+------+------+
75      */
76
77   [MOUSE] = KEYMAP(
78   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,  \
79   KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,            \
80   KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                        \
81   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(DEV),                    \
82                      KC_TRNS, KC_TRNS,           KC_TRNS,                KC_TRNS, KC_TRNS),
83
84     /* Layer MEDIA: mode (Hold Semi-colon)
85       |------+-----+-----+-----+----+----+----+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
86       |      |     |     |     |    |    |    |                |              |           |             |     |       |       |     |
87       |------+-----+-----+-----+----+----+----+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
88       |      |     |     |     |    |    |    |                |              |           |             |     |       |       |     |
89       |------+-----+-----+-----+----+----+----+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
90       |      |     |     |     |    |    |    |  Previous      | Next         |           |  Play/Pause |     |       |       |     |
91       |------+-----+-----+-----+----+----+----+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
92       |      |     |     |     |    |    |    |  Volume Down   | Volume Up    | Mute      |             |     |       |       |     |
93       |------+-----+-----+-----+----+----+----+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
94
95                  |------+------+----------------------+------+------+
96                  | **** | **** | ******************** | **** | **** |
97                  |------+------+----------------------+------+------+
98
99      */
100
101   [MEDIA] = KEYMAP(
102   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,  \
103   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,          \
104   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_MPRV,  KC_MNXT,  KC_MUTE,  KC_TRNS,  KC_MPLY,  KC_TRNS,                    \
105   KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_VOLD,  KC_VOLU,   KC_TRNS,  KC_TRNS,  KC_TRNS, TG(DEV),                    \
106                      KC_TRNS, KC_TRNS,           KC_TRNS,                KC_TRNS, KC_TRNS)
107 };
108
109 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
110 {
111   // MACRODOWN only works in this function
112       switch(id) {
113         case 0:
114           if (record->event.pressed) {
115             register_code(KC_RSFT);
116           } else {
117             unregister_code(KC_RSFT);
118           }
119         break;
120       }
121     return MACRO_NONE;
122 };