1 #include QMK_KEYBOARD_H
3 #include "split_util.h"
12 * enum custom_keycodes {
13 * KC_LOCK = NEW_SAFE_RANGE,
19 #define KC_TMB1 LGUI_T(KC_TAB)
20 #define KC_TMB2 LSFT_T(KC_SPC)
21 #define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
22 #define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
23 #define KC_TMB5 RCTL_T(KC_BSPC)
24 #define KC_TMB6 RALT_T(KC_ENT)
25 #define KC_TMB7 KC_DEL
26 #define KC_TMB8 RALT(KC_ENT)
27 #define KC_TMB9 LGUI(KC_TAB)
31 #define KC_RTOG RGB_TOG
32 #define KC_EDJP EDVORAK
33 #define KC_QWER QWERTY
35 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37 [_EDVORAK] = LAYOUT_kc(
38 //|----+----+----+----+----+----| |----+----+----+----+----+----|
39 ESC ,QUOT,COMM,DOT , Y , P , F , G , R , W , Q ,BSLS,
40 //|----+----+----+----+----+----| |----+----+----+----+----+----|
41 EQL , A , O , E , I , U , D , T , N , S , M ,MINS,
42 //|----+----+----+----+----+----| |----+----+----+----+----+----|
43 GRV ,SCLN, X , C , V , Z , B , H , J , K , L ,SLSH,
44 //`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
45 TMB1,TMB2,TMB3, TMB4,TMB5,TMB6
46 // `----+----+----' `----+----+----'
49 [_EDVORAKJ1] = LAYOUT_kc(
50 //|----+----+----+----+----+----| |----+----+----+----+----+----|
51 , AI , OU , EI , , , , , , , , ,
52 //|----+----+----+----+----+----| |----+----+----+----+----+----|
53 , , , , , , , , , Y , , ,
54 //|----+----+----+----+----+----| |----+----+----+----+----+----|
55 ,ANN ,ONN ,ENN ,INN ,UNN , , , , , , ,
56 //`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
58 // `----+----+----' `----+----+----'
61 [_EDVORAKJ2] = LAYOUT_kc(
62 //|----+----+----+----+----+----| |----+----+----+----+----+----|
63 , AI , OU , EI , , , , , , , , ,
64 //|----+----+----+----+----+----| |----+----+----+----+----+----|
65 , , , , , , , Y , , , , ,
66 //|----+----+----+----+----+----| |----+----+----+----+----+----|
67 ,ANN ,ONN ,ENN ,INN ,UNN , , , , , , ,
68 //`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
70 // `----+----+----' `----+----+----'
73 [_QWERTY] = LAYOUT_kc(
74 //|----+----+----+----+----+----| |----+----+----+----+----+----|
75 TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS,
76 //|----+----+----+----+----+----| |----+----+----+----+----+----|
77 EQL , A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
78 //|----+----+----+----+----+----| |----+----+----+----+----+----|
79 GRV , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,BSLS,
80 //`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
82 // `----+----+----' `----+----+----'
86 //|----+----+----+----+----+----| |----+----+----+----+----+----|
87 , , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , , ,
88 //|----+----+----+----+----+----| |----+----+----+----+----+----|
89 , 1 ,EXLM, AT ,HASH,DLR , PERC,CIRC,AMPR,ASTR, 0 , ,
90 //|----+----+----+----+----+----| |----+----+----+----+----+----|
91 , , LT ,LCBR,LPRN,LBRC, RBRC,RPRN,RCBR, GT , , ,
92 //`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
94 // `----+----+----' `----+----+----'
98 //|----+----+----+----+----+----| |----+----+----+----+----+----|
99 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , ,
100 //|----+----+----+----+----+----| |----+----+----+----+----+----|
101 ,F11 ,F12 ,PSCR,SLCK,PAUS, ,HOME,PGDN,PGUP,END , ,
102 //|----+----+----+----+----+----| |----+----+----+----+----+----|
103 , , , , , , ,LEFT,DOWN, UP ,RGHT, ,
104 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
106 // `----+----+----' `----+----+----'
109 [_ADJUST] = LAYOUT_kc(
110 //|----+----+----+----+----+----| |----+----+----+----+----+----|
111 , , , ,EXTOFF, , ,EXTON, , , , ,
112 //|----+----+----+----+----+----| |----+----+----+----+----+----|
113 , , ,QWER,WIN ,RST , RTOG,MAC ,EDJP, , , ,
114 //|----+----+----+----+----+----| |----+----+----+----+----+----|
115 , , , , , , , , , , , ,
116 //`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
118 // `----+----+----' `----+----+----'
123 void matrix_init_keymap(void) {
124 //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
125 iota_gfx_init(!has_usb()); // turns on the display
128 void matrix_scan_user(void) {
129 iota_gfx_task(); // this is what updates the display continuously
133 #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
134 uint32_t layer_state_set_keymap(uint32_t state) {
135 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
136 switch (biton32(state)) {
139 // _EDVORAKJ1 & J2 are same colored
140 rgblight_sethsv_noeeprom_white();
143 rgblight_sethsv_noeeprom_red();
146 rgblight_sethsv_noeeprom_blue();
149 rgblight_sethsv_noeeprom_green();
151 default: // for any other layers, or the default layer
152 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
153 rgblight_sethsv_noeeprom_red();