]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/iris/keymaps/edvorakjp/keymap.c
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / keyboards / iris / keymaps / edvorakjp / keymap.c
1 #include QMK_KEYBOARD_H
2 #include "action_layer.h"
3 #include "eeconfig.h"
4
5 #include "edvorakjp.h"
6
7 extern edvorakjp_config_t edvorakjp_config;
8
9 enum custom_keycodes {
10   KC_LOCK = NEW_SAFE_RANGE,
11 };
12
13 #define KC_ KC_TRNS
14
15 #define KC_TMB1 LGUI_T(KC_TAB)
16 #define KC_TMB2 LSFT_T(KC_SPC)
17 #define KC_TMB3 LOWER // act as LOWER when hold, as KC_LANG2(=English) when tapped
18 #define KC_TMB4 LCTL_T(KC_ESC)
19 #define KC_TMB5 RSFT_T(KC_DEL)
20 #define KC_TMB6 RAISE // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
21 #define KC_TMB7 RCTL_T(KC_BSPC)
22 #define KC_TMB8 RALT_T(KC_ENT)
23 #define KC_TMB9 LGUI(KC_TAB)
24
25 #define KC_RST  RESET
26 #define KC_DBUG DEBUG
27 #define KC_RTOG RGB_TOG
28 #define KC_EDJP EDVORAK
29 #define KC_QWER QWERTY
30
31 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33   [_EDVORAK] = LAYOUT_kc(
34   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
35      GRV ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
36   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
37      LBRC,RBRC,COMM,DOT , P  , Y  ,                F  , G  , R  , W  , Q  ,BSLS,
38   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
39      EQL , A  , O  , E  , I  , U  ,                D  , T  , N  , S  , M  ,MINS,
40   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
41      QUOT,SCLN, X  , C  , V  , Z  ,TMB4,     TMB5, B  , H  , J  , K  , L  ,SLSH,
42   //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
43                        TMB1,TMB2,TMB3,         TMB6,TMB7,TMB8
44   //                  `----+----+----'        `----+----+----'
45   ),
46
47   [_EDVORAKJ1] = LAYOUT_kc(
48   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
49          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
50   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
51          , AI , OU , EI ,    ,    ,                   ,    ,    ,    ,    ,    ,
52   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
53          ,    ,    ,    ,    ,    ,                   ,    ,    , Y  ,    ,    ,
54   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
55          ,ANN ,ONN ,ENN ,INN ,UNN ,    ,         ,    ,    ,    ,    ,    ,    ,
56   //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
57                            ,    ,    ,             ,    ,
58   //                  `----+----+----'        `----+----+----'
59   ),
60
61   [_EDVORAKJ2] = LAYOUT_kc(
62   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
63          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
64   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
65          , AI , OU , EI ,    ,    ,                   ,    ,    ,    ,    ,    ,
66   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
67          ,    ,    ,    ,    ,    ,                   , Y  ,    ,    ,    ,    ,
68   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
69          ,ANN ,ONN ,ENN ,INN ,UNN ,    ,         ,    ,    ,    ,    ,    ,    ,
70   //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
71                            ,    ,    ,             ,    ,
72   //                  `----+----+----'        `----+----+----'
73   ),
74
75   [_QWERTY] = LAYOUT_kc(
76   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
77      GRV ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
78   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
79      EQL , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,MINS,
80   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
81      LBRC, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
82   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
83      RBRC, Z  , X  , C  , V  , B  ,    ,         , N  , M  ,COMM,DOT ,SLSH,BSLS,
84   //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
85                            ,    ,    ,             ,    ,
86   //                  `----+----+----'        `----+----+----'
87   ),
88
89   [_LOWER] = LAYOUT_kc(
90   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
91          ,    ,    ,    ,    ,    ,                   ,    ,SLSH,ASTR,    ,    ,
92   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
93          ,    ,BTN4,WH_U,BTN5,    ,                   , 7  , 8  , 9  ,MINS,    ,
94   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
95          ,    ,WH_L,WH_D,WH_R,    ,                   , 4  , 5  , 6  ,PLUS,    ,
96   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
97          ,    ,BTN1,BTN3,BTN2,    ,    ,         ,    , 1  , 2  , 3  ,    ,    ,
98   //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
99                            ,    ,    ,             , 0  ,
100   //                  `----+----+----'        `----+----+----'
101   ),
102
103   [_RAISE] = LAYOUT_kc(
104   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
105          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
106   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
107       F1 , F2 , F3 , F4 , F5 ,LCBR,               RCBR,    ,    ,    ,    ,    ,
108   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
109       F6 , F7 , F8 , F9 ,F10 ,LPRN,               RPRN,HOME,PGDN,PGUP,END ,    ,
110   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
111      F11 ,F12 ,PSCR,SLCK,PAUS,LBRC,LOCK,         ,RBRC,LEFT,DOWN, UP ,RGHT,    ,
112   //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
113                        TMB9,    ,    ,             ,    ,
114   //                  `----+----+----'        `----+----+----'
115   ),
116
117   [_ADJUST] = LAYOUT_kc(
118   //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
119          ,    ,    ,    ,    ,    ,                   ,    ,    ,    ,    ,    ,
120   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
121          ,    ,    ,   ,EXTOFF,   ,                   ,EXTON,   ,    ,    ,    ,
122   //|----+----+----+----+----+----|              |----+----+----+----+----+----|
123          ,RST ,DBUG,RTOG,WIN ,    ,                   ,MAC ,QWER,EDJP,    ,    ,
124   //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
125          ,    ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,    ,
126   //`----+----+----+----+----+----+----/    \----+----+----+----+----+----+----'
127                            ,    ,    ,             ,    ,
128   //                  `----+----+----'        `----+----+----'
129   )
130 };
131
132 void matrix_init_keymap() {
133 }
134
135 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
136   switch(keycode) {
137     case KC_LOCK:
138       if (record->event.pressed) {
139         if (edvorakjp_config.enable_kc_lang) {
140           SEND_STRING( SS_LCTRL(SS_LSFT(SS_TAP(X_POWER))) );
141         } else {
142           SEND_STRING( SS_LGUI("L") );
143         }
144       }
145       return false;
146   }
147   return true;
148 }
149
150 uint32_t layer_state_set_keymap(uint32_t state) {
151   switch (biton32(state)) {
152     case _EDVORAKJ1:
153     case _EDVORAKJ2:
154       // _EDVORAKJ1 & J2 are same colored
155       rgblight_setrgb (0xFF, 0xFF, 0xFF);
156       break;
157     case _LOWER:
158       rgblight_setrgb (0xFF, 0x00, 0x00);
159       break;
160     case _RAISE:
161       rgblight_setrgb (0x00, 0x00, 0xFF);
162       break;
163     case _ADJUST:
164       rgblight_setrgb (0x00, 0xFF, 0x00);
165       break;
166     default: //  for any other layers, or the default layer
167       rgblight_mode(28);
168       break;
169   }
170   return state;
171 }