]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergo42/keymaps/hdbx/keymap.c
Add new keymap for Ergo42 (#2891)
[qmk_firmware.git] / keyboards / ergo42 / keymaps / hdbx / keymap.c
1 #include "ergo42.h"
2 #include "action_layer.h"
3 #include "eeconfig.h"
4 #include "keymap_jp.h"       // qmk_firmware-master/quantum/keymap_extras/keymap_jp.h \93ú\96{\8cê\83L\81[\83{\81[\83h\90Ý\92è\97p
5 #include <sendstring_jis.h>  // macro sendstring for jis keyboard \83}\83N\83\8d\95\8e\9a\97ñ\91\97\90M\8e\9e\82É\93ú\96{\8cê\83L\81[\83{\81[\83h\90Ý\92è\82Å\82Ì\95\8e\9a\89»\82¯\89ñ\94ð
6
7 extern keymap_config_t keymap_config;
8
9 #define _QWERTY 0
10 #define _LOWER 1
11 #define _RAISE 2
12 #define _GAME 3
13 #define _ADJUST 4
14
15 enum custom_keycodes {
16   QWERTY = SAFE_RANGE,
17   MCR1,
18   MCR2,
19   MCR3,
20   DYNAMIC_MACRO_RANGE,
21   WN_SCLN,          // \83^\83b\83v\82ÅJIS\82Ì\81u:\81v  \83V\83t\83g\82ÅJIS\82Ì\81u;\81v (Windows)
22 };
23
24 // Use Dynamic macro
25 #include "dynamic_macro.h"
26
27 // Fillers to make layering more clear
28 #define _______ KC_TRNS
29 #define XXXXXXX KC_NO
30 #define KC_LOWR LT(_LOWER, KC_MHEN)    // \83^\83b\83v\82Å\96³\95Ï\8a·   \83z\81[\83\8b\83h\82ÅLower
31 #define KC_RASE LT(_RAISE, KC_HENK)    // \83^\83b\83v\82Å\95Ï\8a·     \83z\81[\83\8b\83h\82ÅRaise
32 #define KC_ALPS LALT(KC_PSCR)          // Alt + PrintScreen
33 #define KC_LSLP MT(MOD_LSFT, JP_LPRN)  // \83^\83b\83v\82Å(        \83z\81[\83\8b\83h\82Å\8d¶Shift
34 #define KC_RSRP MT(MOD_RSFT, JP_RPRN)  // \83^\83b\83v\82Å)        \83z\81[\83\8b\83h\82Å\89EShift
35 #define KC_ALTB MT(MOD_LALT, KC_TAB)   // \83^\83b\83v\82ÅTAB      \83z\81[\83\8b\83h\82Å\8d¶ALT
36 #define KC_ESCA LT(_ADJUST,KC_ESC)     // \83^\83b\83v\82ÅESC      \83z\81[\83\8b\83h\82ÅADJUST\83\8c\83C\83\84\81[on
37
38
39 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40
41 /* QWERTY
42  * ,-------------------------------------------------------.   ,-------------------------------------------------------.
43  * |Tab/Alt|   Q   |   W   |   E   |   R   |   T   |   -   |   |   ~   |   Y   |   U   |   I   |   O   |   P   | BSPC  |
44  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
45  * | Ctrl  |   A   |   S   |   D   |   F   |   G   |   [   |   |   ]   |   H   |   J   |   K   |   L   |   :   |   '   |
46  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
47  * | (/Sft |   Z   |   X   |   C   |   V   |   B   |  F2   |   |  Home |   N   |   M   |   ,   |   .   |   /   | )/Sft |
48  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
49  * |  TT   |  GUI  |   \   | Esc/  | LOWER | Enter |  Del  |   |  End  | Space | RAISE | Left  | Down  |   Up  | Right |
50  * |(_GAME)|       |       |_ADJUST| \96³\95Ï\8a·|       |       |   |       |       | \95Ï\8a·  |       |       |       |       |
51  * `-------------------------------------------------------'   `-------------------------------------------------------'
52  */
53
54 [_QWERTY] = KEYMAP( \
55   KC_ALTB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_MINS,       JP_TILD, KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC, \
56   KC_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    JP_LBRC,       JP_RBRC, KC_H,    KC_J,    KC_K,    KC_L,    WN_SCLN, JP_QUOT, \
57   KC_LSLP,  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_F2,         KC_HOME, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSRP, \
58   TT(_GAME),KC_LGUI, JP_YEN,  KC_ESCA, KC_LOWR, KC_ENT,  KC_DEL,        KC_END,  KC_SPC,  KC_RASE, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT \
59 ),
60
61 /* LOWER
62  * ,-------------------------------------------------------.   ,-------------------------------------------------------.
63  * |Tab/Alt|   1   |   2   |   3   |   4   |   5   |   6   |   |  Esc  |   7   |   8   |   9   |   O   |   =   | BSPC  |
64  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
65  * | Ctrl  |  F1   |  F2   |  F3   |  F4   |  F5   |  F6   |   |  F2   |   4   |   5   |   6   |   -   |   /   | Enter |
66  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
67  * | Shift |  F7   |  F8   |  F9   |  F10  |  F11  |  F12  |   |  Home |   1   |   2   |   3   |   +   |   *   | Shift |
68  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
69  * |XXXXXXX|  GUI  |XXXXXXX|  Esc  |       | Enter |  Del  |   |  End  |   0   |   .   | Left  | Down  |   Up  | Right |
70  * `-------------------------------------------------------'   `-------------------------------------------------------'
71  */
72
73 [_LOWER] = KEYMAP( \
74   _______, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,          KC_ESC,  KC_7,    KC_8,    KC_9,    KC_0,    JP_EQL,  _______, \
75   _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,         KC_F2,   KC_P4,   KC_P5,   KC_P6,   KC_PMNS, KC_PSLS, KC_ENT,  \
76   KC_LSFT, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,        _______, KC_P1,   KC_P2,   KC_P3,   KC_PPLS, KC_PAST, KC_RSFT, \
77   _______, _______, XXXXXXX, KC_ESC,  _______, _______, _______,       _______, KC_P0,   KC_PDOT, _______, _______, _______, _______ \
78 ),
79
80 /* RAISE
81  * ,-------------------------------------------------------.   ,-------------------------------------------------------.
82  * |Tab/Alt|   !   |   @   |   #   |   $   |   %   |   _   |   |   `   |   ^   |   &   |  Ins  |   \   |PrntScr| BSPC  |
83  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
84  * | Ctrl  |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|   {   |   |   }   | Left  | Down  |   Up  | Right |   ;   |   "   |
85  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
86  * | Shift |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|   |PageUp |XXXXXXX|XXXXXXX|   <   |   >   |   ?   | Shift |
87  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
88  * |XXXXXXX|  GUI  |   |   |  Esc  |XXXXXXX| Enter |  Del  |   |PageDwn| Space |       | Left  | Down  |   Up  | Right |
89  * `-------------------------------------------------------'   `-------------------------------------------------------'
90  */
91
92 [_RAISE] = KEYMAP( \
93   _______, KC_EXLM, JP_AT,   KC_HASH, KC_DLR,  KC_PERC, JP_UNDS,       JP_GRV,  JP_CIRC, JP_AMPR, KC_INS,  JP_YEN,  KC_ALPS, _______, \
94   _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_LBRC,       JP_RBRC, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, KC_SCLN, JP_DQT,  \
95   KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,       KC_PGUP, XXXXXXX, XXXXXXX, KC_LT,   KC_GT,   KC_QUES, KC_RSFT, \
96   _______, _______, KC_PIPE, KC_ESC,  XXXXXXX, _______, _______,       KC_PGDN, _______, _______, _______, _______, _______, _______ \
97 ),
98
99 /* GAME
100  * ,-------------------------------------------------------.   ,-------------------------------------------------------.
101  * |  Esc  |   Q   |   W   |   E   |   R   |   T   |PrntScr|   |       |       |       |       |       |       |       |
102  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
103  * | Ctrl  |   A   |   S   |   D   |   F   |   G   |  F5   |   |       |       |       |       |       |       |       |
104  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
105  * | Shift |   Z   |   X   |   C   |   V   |   B   |  F2   |   |PageUp |       |       |       |       |       |       |
106  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
107  * |       |  GUI  |  Tab  |  Alt  | Space | Enter |  Del  |   |PageDwn| Space |XXXXXXX| Left  | Down  |   Up  | Right |
108  * `-------------------------------------------------------'   `-------------------------------------------------------'
109  */
110 [_GAME] = KEYMAP( \
111   KC_ESC,   KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_ALPS,       _______, _______, _______, _______, _______, _______, _______, \
112   KC_LCTL,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    JP_LBRC,       _______, _______, _______, _______, _______, _______, _______, \
113   KC_LSFT,  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_F2,         KC_PGUP, _______, _______, _______, _______, _______, _______, \
114   _______,  KC_LGUI, KC_TAB,  KC_LALT, KC_SPC,  KC_ENT,  KC_DEL,        KC_PGDN, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT \
115 ),
116
117 /* ADJUST
118  * ,-------------------------------------------------------.   ,-------------------------------------------------------.
119  * |RGB_TOG| MCR1  | MCR2  | MCR3  |XXXXXXX|XXXXXXX|XXXXXXX|   |XXXXXXX|PLAY_M1|PLAY_M2|REC_M1 |REC_M2 |STP_REC| BSPC  |
120  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
121  * | RESET |RGB_MOD|_PLAIN |_BREATH|RGB_HuI|RGB_SaI|RGB_VaI|   |XXXXXXX|QWERTY |XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|XXXXXXX|
122  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
123  * | Shift |_RAINBW|_SNAKE |_GRADIE|RGB_HuD|RGB_SaD|RGB_VaD|   |XXXXXXX| M-PLAY|M-MUTE |VOL_DWN|VOL_UP |PREV_TR|NEXT_TR|
124  * |-------+-------+-------+-------+-------+-------+-------|   |-------+-------+-------+-------+-------+-------+-------|
125  * | DEBUG |XXXXXXX|XXXXXXX|       |XXXXXXX|XXXXXXX|XXXXXXX|   |XXXXXXX|XXXXXXX|XXXXXXX| Left  | Down  |   Up  | Right |
126  * `-------------------------------------------------------'   `-------------------------------------------------------'
127  */
128 [_ADJUST] = KEYMAP( \
129   RGB_TOG,  MCR1,    MCR2,    MCR3,    XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, DYN_REC_START1, DYN_REC_START2, DYN_REC_STOP, KC_BSPC, \
130   RESET,    RGB_MOD, RGB_M_P, RGB_M_B, RGB_HUI, RGB_SAI, RGB_VAI,       XXXXXXX, QWERTY,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
131   KC_LSFT,  RGB_M_R, RGB_M_SN,RGB_M_G, RGB_HUD, RGB_SAD, RGB_VAD,       XXXXXXX, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, \
132   DEBUG,    XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT \
133 ),
134
135 };
136
137 void persistent_default_layer_set(uint16_t default_layer) {
138   eeconfig_update_default_layer(default_layer);
139   default_layer_set(default_layer);
140 }
141
142 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
143     static bool     lshift = false;
144   if (!process_record_dynamic_macro(keycode, record)) {
145       return false;
146   }
147   switch (keycode) {
148     case QWERTY:
149       if (record->event.pressed) {
150         persistent_default_layer_set(1UL<<_QWERTY);
151       }
152       return false;
153       break;
154     case WN_SCLN: // \83R\83\8d\83\93\81u;:\81v
155       if (record->event.pressed) {
156         lshift = keyboard_report->mods & MOD_BIT(KC_LSFT);
157         if (lshift) {
158           unregister_code(KC_LSFT);
159           register_code(JP_SCLN);
160           unregister_code(JP_SCLN);
161         } else {
162           register_code(JP_COLN);
163           unregister_code(JP_COLN);
164         }
165       }
166       return false;
167       break;
168     case MCR1:
169       if (record->event.pressed) {
170         SEND_STRING("hogehoge"); // \91\97\90M\95\8e\9a\97ñ
171       }
172       return false;
173       break;
174     case MCR2:
175       if (record->event.pressed) {
176         SEND_STRING("hogehogehoge"SS_TAP(X_ENTER)); // \91\97\90M\95\8e\9a\97ñ
177       }
178       return false;
179       break;
180     case MCR3:
181       if (record->event.pressed) {
182                 SEND_STRING("hoge@hoge.co.jp"); // \91\97\90M\95\8e\9a\97ñ
183       }
184       return false;
185       break;
186   }
187   return true;
188 }