aboutsummaryrefslogtreecommitdiff
path: root/keyboards/lily58/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/lily58/keymaps')
-rw-r--r--keyboards/lily58/keymaps/chuan/config.h64
-rw-r--r--keyboards/lily58/keymaps/chuan/keymap.c230
-rw-r--r--keyboards/lily58/keymaps/chuan/rules.mk11
-rw-r--r--keyboards/lily58/keymaps/default/config.h4
-rw-r--r--keyboards/lily58/keymaps/default/keymap.c58
-rw-r--r--keyboards/lily58/keymaps/default/rules.mk4
-rw-r--r--keyboards/lily58/keymaps/yuchi/keymap.c47
-rw-r--r--keyboards/lily58/keymaps/yuchi/rules.mk5
8 files changed, 348 insertions, 75 deletions
diff --git a/keyboards/lily58/keymaps/chuan/config.h b/keyboards/lily58/keymaps/chuan/config.h
new file mode 100644
index 000000000..fa93060db
--- /dev/null
+++ b/keyboards/lily58/keymaps/chuan/config.h
@@ -0,0 +1,64 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23// #define USE_MATRIX_I2C
24
25// #define USE_I2C
26
27/* Select hand configuration */
28
29#define MASTER_LEFT
30// #define MASTER_RIGHT
31// #define EE_HANDS
32
33// #define SSD1306OLED
34
35#define USE_SERIAL_PD2
36
37#define TAPPING_FORCE_HOLD
38
39/* define tapping term */
40#define TAPPING_TERM 200
41
42
43#undef RGBLED_NUM
44#define RGBLIGHT_ANIMATIONS
45#define RGBLED_NUM 27
46#define RGBLIGHT_LIMIT_VAL 120
47#define RGBLIGHT_HUE_STEP 10
48#define RGBLIGHT_SAT_STEP 17
49#define RGBLIGHT_VAL_STEP 17
50
51#define ENCODERS_PAD_A { F4 }
52#define ENCODERS_PAD_B { F5 }
53
54
55 /* Set 0 if debouncing isn't needed */
56#define DEBOUNCE 5
57
58// Underglow
59/*
60#undef RGBLED_NUM
61#define RGBLED_NUM 14 // Number of LEDs
62#define RGBLIGHT_ANIMATIONS
63#define RGBLIGHT_SLEEP
64*/
diff --git a/keyboards/lily58/keymaps/chuan/keymap.c b/keyboards/lily58/keymaps/chuan/keymap.c
new file mode 100644
index 000000000..da49e67a0
--- /dev/null
+++ b/keyboards/lily58/keymaps/chuan/keymap.c
@@ -0,0 +1,230 @@
1#include QMK_KEYBOARD_H
2
3#ifdef RGBLIGHT_ENABLE
4//Following line allows macro to read current RGB settings
5extern rgblight_config_t rgblight_config;
6#endif
7
8extern uint8_t is_master;
9
10#define _QWERTY 0
11#define _LOWER 1
12#define _RAISE 2
13#define _ADJUST 3
14
15enum custom_keycodes {
16 QWERTY = SAFE_RANGE,
17 LOWER,
18 RAISE,
19 ADJUST,
20};
21
22
23const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
24
25/* QWERTY
26 * ,-----------------------------------------. ,-----------------------------------------.
27 * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
28 * |------+------+------+------+------+------| |------+------+------+------+------+------|
29 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
30 * |------+------+------+------+------+------| |------+------+------+------+------+------|
31 * |HYPER | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
32 * |------+------+------+------+------+------| - | | + |------+------+------+------+------+------|
33 * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
34 * `-----------------------------------------/ / \ \-----------------------------------------'
35 * | LCtl | LGUI |LALT | /Space / \Space \ |RAISE | [ | ] |
36 * | | | |/ LOWER / \ \ | ' | | |
37 * `----------------------------' '------''--------------------'
38 */
39
40 [_QWERTY] = LAYOUT(
41 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
42 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \
43 ALL_T(KC_GRV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, \
44 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MINS, MEH_T(KC_EQL), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
45 KC_LCTRL, KC_LGUI, KC_LALT,LT(_LOWER, KC_SPC), KC_SPC, LT(2,KC_QUOT), KC_LBRC, KC_RBRC \
46),
47/* LOWER
48 * ,-----------------------------------------. ,-----------------------------------------.
49 * | | | | | | | | | | | | | |
50 * |------+------+------+------+------+------| |------+------+------+------+------+------|
51 * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
52 * |------+------+------+------+------+------| |------+------+------+------+------+------|
53 * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - |
54 * |------+------+------+------+------+------| cmd spc| | |------+------+------+------+------+------|
55 * | | | |ctrl c| | |-------| |-------| | - | _ | [ | ] | | |
56 * `-----------------------------------------/ / \ \-----------------------------------------'
57 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE | { | } |
58 * | | | |/ / \ \ | | | |
59 * `----------------------------' '------''--------------------'
60 */
61[_LOWER] = LAYOUT(
62 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, \
63 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
64 _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,\
65 _______, _______, _______, C(KC_C), _______, _______, LGUI(KC_SPC), _______, _______, KC_MINS, KC_UNDS , KC_LBRC, KC_RBRC, KC_PIPE, \
66 _______, _______, _______, _______, _______, RAISE, KC_LCBR, KC_RCBR\
67),
68/* RAISE
69 * ,-----------------------------------------. ,-----------------------------------------.
70 * | | | | | | | | | | | | | |
71 * |------+------+------+------+------+------| |------+------+------+------+------+------|
72 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
73 * |------+------+------+------+------+------| |------+------+------+------+------+------|
74 * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | |
75 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
76 * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ |
77 * `-----------------------------------------/ / \ \-----------------------------------------'
78 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
79 * | | | |/ / \ \ | | | |
80 * `----------------------------' '------''--------------------'
81 */
82
83[_RAISE] = LAYOUT(
84 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, _______, \
85 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_6, LCTL(LSFT(KC_TAB)),KC_UP,LCTL(KC_TAB), KC_0, _______, \
86 _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_RGHT, XXXXXXX, \
87 _______, _______, _______, _______, _______, _______, _______, TG(_ADJUST),KC_PLUS, KC_MUTE ,KC_VOLD ,KC_VOLU, _______, _______, \
88 _______, _______, _______, _______, _______, _______, _______, _______ \
89),
90/* ADJUST
91 * ,-----------------------------------------. ,-----------------------------------------.
92 * | | | | | | | | | 7 | 8 | 9 |RGB ON| HUE+ |
93 * |------+------+------+------+------+------| |------+------+------+------+------+------|
94 * | | | | | | | | | 4 | 5 | 6 | MODE | HUE- |
95 * |------+------+------+------+------+------| |------+------+------+------+------+------|
96 * | | | | | | |-------. ,-------| | 1 | 2 | 3 | SAT+ | VAL+ |
97 * |------+------+------+------+------+------| | |DEFAULT|------+------+------+------+------+------|
98 * | | | | | | |-------| |-------| | 0 | 0 | . | SAT- | VAL- |
99 * `-----------------------------------------/ / \ \-----------------------------------------'
100 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
101 * | | | |/ / \ \ | | | |
102 * `----------------------------' '------''--------------------'
103 */
104 [_ADJUST] = LAYOUT(
105 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7 , KC_8 , KC_9 , RGB_TOG, RGB_HUI, \
106 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4 , KC_5 , KC_6 , RGB_MOD, RGB_HUD, \
107 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1 , KC_2 , KC_3 , RGB_SAI, RGB_VAI, \
108 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(_ADJUST), XXXXXXX, KC_0 , KC_0 , KC_DOT, RGB_SAD, RGB_VAD,\
109 _______, _______, _______, _______, _______, _______,KC_BSPC, _______ \
110 )
111};
112
113int RGB_current_mode;
114
115int counter = 0;
116int lastIndex = 9;
117
118// Setting ADJUST layer RGB back to default
119void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
120 if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
121 layer_on(layer3);
122 } else {
123 layer_off(layer3);
124 }
125}
126
127void matrix_init_user(void) {
128 #ifdef RGBLIGHT_ENABLE
129 RGB_current_mode = rgblight_config.mode;
130 #endif
131}
132
133#ifdef OLED_DRIVER_ENABLE
134
135oled_rotation_t oled_init_user(oled_rotation_t rotation) {
136 if (!is_keyboard_master())
137 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
138 return rotation;
139}
140
141// When add source files to SRC in rules.mk, you can use functions.
142const char *read_layer_state(void);
143const char *read_logo(void);
144void set_keylog(uint16_t keycode, keyrecord_t *record);
145const char *read_keylog(void);
146const char *read_keylogs(void);
147
148const char *read_mode_icon(bool swap);
149const char *read_host_led_state(void);
150void set_timelog(void);
151const char *read_timelog(void);
152
153char encoder_debug[24];
154
155void oled_task_user(void) {
156 // Host Keyboard Layer Status
157 snprintf(encoder_debug, sizeof(encoder_debug), "%i %i", counter, lastIndex );
158 if (is_keyboard_master()) {
159 // If you want to change the display of OLED, you need to change here
160 oled_write_ln(read_layer_state(), false);
161 // oled_write_ln(read_keylog(), false);
162 // oled_write_ln(read_keylogs(), false);
163 // oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
164 oled_write_ln(read_host_led_state(), false);
165 oled_write_ln(encoder_debug, false);
166 // oled_write_ln(read_timelog(), false);
167 } else {
168 oled_write(read_logo(), false);
169 // oled_write_ln(encoder_debug, false);
170 }
171}
172#endif //OLED_DRIVER_ENABLE
173
174bool process_record_user(uint16_t keycode, keyrecord_t *record) {
175 if (record->event.pressed) {
176#ifdef SSD1306OLED
177 // set_keylog(keycode, record);
178#endif
179 // set_timelog();
180 }
181
182 switch (keycode) {
183 case QWERTY:
184 if (record->event.pressed) {
185 set_single_persistent_default_layer(_QWERTY);
186 }
187 return false;
188 break;
189 case LOWER:
190 if (record->event.pressed) {
191 layer_on(_LOWER);
192 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
193 } else {
194 layer_off(_LOWER);
195 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
196 }
197 return false;
198 break;
199 case RAISE:
200 if (record->event.pressed) {
201 layer_on(_RAISE);
202 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
203 } else {
204 layer_off(_RAISE);
205 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
206 }
207 return false;
208 break;
209 case ADJUST:
210 if (record->event.pressed) {
211 layer_on(_ADJUST);
212 } else {
213 layer_off(_ADJUST);
214 }
215 return false;
216 break;
217 }
218 return true;
219}
220
221void encoder_update_user(uint8_t index, bool clockwise) {
222 lastIndex = index;
223 if (clockwise) {
224 counter++;
225 tap_code(KC_PGDN);
226 } else {
227 counter--;
228 tap_code(KC_PGUP);
229 }
230}
diff --git a/keyboards/lily58/keymaps/chuan/rules.mk b/keyboards/lily58/keymaps/chuan/rules.mk
new file mode 100644
index 000000000..3e05cb7d9
--- /dev/null
+++ b/keyboards/lily58/keymaps/chuan/rules.mk
@@ -0,0 +1,11 @@
1EXTRAKEY_ENABLE = yes
2NKRO_ENABLE = yes
3ENCODER_ENABLE = yes
4# If you want to change the display of OLED, you need to change here
5SRC += ./lib/rgb_state_reader.c \
6 ./lib/layer_state_reader.c \
7 ./lib/logo_reader.c \
8 ./lib/mode_icon_reader.c \
9 ./lib/host_led_state_reader.c \
10 ./lib/timelogger.c \
11 ./lib/keylogger.c \
diff --git a/keyboards/lily58/keymaps/default/config.h b/keyboards/lily58/keymaps/default/config.h
index 58bbdc5e9..6b9e52c05 100644
--- a/keyboards/lily58/keymaps/default/config.h
+++ b/keyboards/lily58/keymaps/default/config.h
@@ -28,8 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28// #define MASTER_RIGHT 28// #define MASTER_RIGHT
29// #define EE_HANDS 29// #define EE_HANDS
30 30
31#define SSD1306OLED
32
33#define USE_SERIAL_PD2 31#define USE_SERIAL_PD2
34 32
35#define TAPPING_FORCE_HOLD 33#define TAPPING_FORCE_HOLD
@@ -49,4 +47,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
49#define RGBLED_NUM 14 // Number of LEDs 47#define RGBLED_NUM 14 // Number of LEDs
50#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
51#define RGBLIGHT_SLEEP 49#define RGBLIGHT_SLEEP
52*/ \ No newline at end of file 50*/
diff --git a/keyboards/lily58/keymaps/default/keymap.c b/keyboards/lily58/keymaps/default/keymap.c
index f36248e12..f0fbaa8b0 100644
--- a/keyboards/lily58/keymaps/default/keymap.c
+++ b/keyboards/lily58/keymaps/default/keymap.c
@@ -8,8 +8,6 @@
8 #include "ssd1306.h" 8 #include "ssd1306.h"
9#endif 9#endif
10 10
11
12
13#ifdef RGBLIGHT_ENABLE 11#ifdef RGBLIGHT_ENABLE
14//Following line allows macro to read current RGB settings 12//Following line allows macro to read current RGB settings
15extern rgblight_config_t rgblight_config; 13extern rgblight_config_t rgblight_config;
@@ -135,16 +133,18 @@ void matrix_init_user(void) {
135 #ifdef RGBLIGHT_ENABLE 133 #ifdef RGBLIGHT_ENABLE
136 RGB_current_mode = rgblight_config.mode; 134 RGB_current_mode = rgblight_config.mode;
137 #endif 135 #endif
138 //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
139 #ifdef SSD1306OLED
140 iota_gfx_init(!has_usb()); // turns on the display
141 #endif
142} 136}
143 137
144//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h 138//SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk
145#ifdef SSD1306OLED 139#ifdef OLED_DRIVER_ENABLE
146 140
147// When add source files to SRC in rules.mk, you can use functions. 141oled_rotation_t oled_init_user(oled_rotation_t rotation) {
142 if (!is_keyboard_master())
143 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
144 return rotation;
145}
146
147// When you add source files to SRC in rules.mk, you can use functions.
148const char *read_layer_state(void); 148const char *read_layer_state(void);
149const char *read_logo(void); 149const char *read_logo(void);
150void set_keylog(uint16_t keycode, keyrecord_t *record); 150void set_keylog(uint16_t keycode, keyrecord_t *record);
@@ -156,42 +156,24 @@ const char *read_keylogs(void);
156// void set_timelog(void); 156// void set_timelog(void);
157// const char *read_timelog(void); 157// const char *read_timelog(void);
158 158
159void matrix_scan_user(void) { 159void oled_task_user(void) {
160 iota_gfx_task(); 160 if (is_keyboard_master()) {
161}
162
163void matrix_render_user(struct CharacterMatrix *matrix) {
164 if (is_master) {
165 // If you want to change the display of OLED, you need to change here 161 // If you want to change the display of OLED, you need to change here
166 matrix_write_ln(matrix, read_layer_state()); 162 oled_write_ln(read_layer_state(), false);
167 matrix_write_ln(matrix, read_keylog()); 163 oled_write_ln(read_keylog(), false);
168 matrix_write_ln(matrix, read_keylogs()); 164 oled_write_ln(read_keylogs(), false);
169 //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); 165 //oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
170 //matrix_write_ln(matrix, read_host_led_state()); 166 //oled_write_ln(read_host_led_state(), false);
171 //matrix_write_ln(matrix, read_timelog()); 167 //oled_write_ln(read_timelog(), false);
172 } else { 168 } else {
173 matrix_write(matrix, read_logo()); 169 oled_write(read_logo(), false);
174 }
175}
176
177void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
178 if (memcmp(dest->display, source->display, sizeof(dest->display))) {
179 memcpy(dest->display, source->display, sizeof(dest->display));
180 dest->dirty = true;
181 } 170 }
182} 171}
183 172#endif // OLED_DRIVER_ENABLE
184void iota_gfx_task_user(void) {
185 struct CharacterMatrix matrix;
186 matrix_clear(&matrix);
187 matrix_render_user(&matrix);
188 matrix_update(&display, &matrix);
189}
190#endif//SSD1306OLED
191 173
192bool process_record_user(uint16_t keycode, keyrecord_t *record) { 174bool process_record_user(uint16_t keycode, keyrecord_t *record) {
193 if (record->event.pressed) { 175 if (record->event.pressed) {
194#ifdef SSD1306OLED 176#ifdef OLED_DRIVER_ENABLE
195 set_keylog(keycode, record); 177 set_keylog(keycode, record);
196#endif 178#endif
197 // set_timelog(); 179 // set_timelog();
diff --git a/keyboards/lily58/keymaps/default/rules.mk b/keyboards/lily58/keymaps/default/rules.mk
index b39305767..a5b6303a1 100644
--- a/keyboards/lily58/keymaps/default/rules.mk
+++ b/keyboards/lily58/keymaps/default/rules.mk
@@ -15,13 +15,13 @@ UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. 16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17SWAP_HANDS_ENABLE = no # Enable one-hand typing 17SWAP_HANDS_ENABLE = no # Enable one-hand typing
18OLED_DRIVER_ENABLE= yes # OLED display
18 19
19# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 20# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 21SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
21 22
22# If you want to change the display of OLED, you need to change here 23# If you want to change the display of OLED, you need to change here
23SRC += ./lib/glcdfont.c \ 24SRC += ./lib/rgb_state_reader.c \
24 ./lib/rgb_state_reader.c \
25 ./lib/layer_state_reader.c \ 25 ./lib/layer_state_reader.c \
26 ./lib/logo_reader.c \ 26 ./lib/logo_reader.c \
27 ./lib/keylogger.c \ 27 ./lib/keylogger.c \
diff --git a/keyboards/lily58/keymaps/yuchi/keymap.c b/keyboards/lily58/keymaps/yuchi/keymap.c
index 13b6cb168..d258fbcbc 100644
--- a/keyboards/lily58/keymaps/yuchi/keymap.c
+++ b/keyboards/lily58/keymaps/yuchi/keymap.c
@@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
112 * |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE | 112 * |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
113 * | | | |/ / \ \ | | | | 113 * | | | |/ / \ \ | | | |
114 * `----------------------------' '------''--------------------' 114 * `----------------------------' '------''--------------------'
115 */ 115 */
116 [_ADJUST] = LAYOUT( \ 116 [_ADJUST] = LAYOUT( \
117 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 117 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
118 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 118 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
@@ -137,14 +137,16 @@ void matrix_init_user(void) {
137 #ifdef RGBLIGHT_ENABLE 137 #ifdef RGBLIGHT_ENABLE
138 RGB_current_mode = rgblight_config.mode; 138 RGB_current_mode = rgblight_config.mode;
139 #endif 139 #endif
140 //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
141 #ifdef SSD1306OLED
142 iota_gfx_init(!has_usb()); // turns on the display
143 #endif
144} 140}
145 141
146//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h 142//SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk
147#ifdef SSD1306OLED 143#ifdef OLED_DRIVER_ENABLE
144
145oled_rotation_t oled_init_user(oled_rotation_t rotation) {
146 if (!is_keyboard_master())
147 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
148 return rotation;
149}
148 150
149// When add source files to SRC in rules.mk, you can use functions. 151// When add source files to SRC in rules.mk, you can use functions.
150const char *read_layer_state(void); 152const char *read_layer_state(void);
@@ -165,35 +167,22 @@ void matrix_scan_user(void) {
165void matrix_render_user(struct CharacterMatrix *matrix) { 167void matrix_render_user(struct CharacterMatrix *matrix) {
166 if (is_master) { 168 if (is_master) {
167 // If you want to change the display of OLED, you need to change here 169 // If you want to change the display of OLED, you need to change here
168 matrix_write_ln(matrix, read_layer_state()); 170 oled_write_ln(read_layer_state(), false);
169 matrix_write_ln(matrix, read_keylog()); 171 oled_write_ln(read_keylog(), false);
170 matrix_write_ln(matrix, read_keylogs()); 172 oled_write_ln(read_keylogs(), false);
171 //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); 173 //oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
172 //matrix_write_ln(matrix, read_host_led_state()); 174 //oled_write_ln(read_host_led_state(), false);
173 //matrix_write_ln(matrix, read_timelog()); 175 //oled_write_ln(read_timelog(), false);
174 } else { 176 } else {
175 matrix_write(matrix, read_logo()); 177 oled_write(read_logo(), false);
176 } 178 }
177} 179}
178 180
179void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
180 if (memcmp(dest->display, source->display, sizeof(dest->display))) {
181 memcpy(dest->display, source->display, sizeof(dest->display));
182 dest->dirty = true;
183 }
184}
185
186void iota_gfx_task_user(void) {
187 struct CharacterMatrix matrix;
188 matrix_clear(&matrix);
189 matrix_render_user(&matrix);
190 matrix_update(&display, &matrix);
191}
192#endif//SSD1306OLED 181#endif//SSD1306OLED
193 182
194bool process_record_user(uint16_t keycode, keyrecord_t *record) { 183bool process_record_user(uint16_t keycode, keyrecord_t *record) {
195 if (record->event.pressed) { 184 if (record->event.pressed) {
196#ifdef SSD1306OLED 185#ifdef OLED_DRIVER_ENABLE
197 set_keylog(keycode, record); 186 set_keylog(keycode, record);
198#endif 187#endif
199 // set_timelog(); 188 // set_timelog();
@@ -236,4 +225,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
236 break; 225 break;
237 } 226 }
238 return true; 227 return true;
239} \ No newline at end of file 228}
diff --git a/keyboards/lily58/keymaps/yuchi/rules.mk b/keyboards/lily58/keymaps/yuchi/rules.mk
index 922fac6b6..0db9ac50f 100644
--- a/keyboards/lily58/keymaps/yuchi/rules.mk
+++ b/keyboards/lily58/keymaps/yuchi/rules.mk
@@ -13,15 +13,14 @@ MIDI_ENABLE = no # MIDI controls
13AUDIO_ENABLE = no # Audio output on port C6 13AUDIO_ENABLE = no # Audio output on port C6
14UNICODE_ENABLE = no # Unicode 14UNICODE_ENABLE = no # Unicode
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. 16RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
17SWAP_HANDS_ENABLE = no # Enable one-hand typing 17SWAP_HANDS_ENABLE = no # Enable one-hand typing
18 18
19# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 19# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
21 21
22# If you want to change the display of OLED, you need to change here 22# If you want to change the display of OLED, you need to change here
23SRC += ./lib/glcdfont.c \ 23SRC += ./lib/rgb_state_reader.c \
24 ./lib/rgb_state_reader.c \
25 ./lib/layer_state_reader.c \ 24 ./lib/layer_state_reader.c \
26 ./lib/logo_reader.c \ 25 ./lib/logo_reader.c \
27 ./lib/keylogger.c \ 26 ./lib/keylogger.c \