diff options
author | Domantas <domantas@zyro.com> | 2021-01-14 21:04:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-14 11:04:30 -0800 |
commit | e9f73e54548a0eae05f62bebe25ea8cdd79dd991 (patch) | |
tree | da26cb357d7880ba56a1a833fa45579e36fe76e6 | |
parent | f325bd6eb28e6fb14c086e36ba09b66ea7041ce0 (diff) | |
download | qmk_firmware-e9f73e54548a0eae05f62bebe25ea8cdd79dd991.tar.gz qmk_firmware-e9f73e54548a0eae05f62bebe25ea8cdd79dd991.zip |
[Keymap] Add domnantas lily58 keymap (#10910)
* Initialize domnantas layout
* Update oled status display
* Layout and oled changes
* Updates to keymap
* Add F keys and page moves
* Add media keys, rearrange home and end
* Add instructions
* Swap backspace and enter
* Remove unnecesary Enter keymap
* - Change display timeout
- Update minus sign to work on both English and Lithuanian layouts
* Add copyright header
* Replace static strings with PSTR
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/lily58/keymaps/domnantas/rules.mk
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r-- | keyboards/lily58/keymaps/domnantas/config.h | 36 | ||||
-rw-r--r-- | keyboards/lily58/keymaps/domnantas/keymap.c | 284 | ||||
-rw-r--r-- | keyboards/lily58/keymaps/domnantas/readme.md | 21 | ||||
-rw-r--r-- | keyboards/lily58/keymaps/domnantas/rules.mk | 2 |
4 files changed, 343 insertions, 0 deletions
diff --git a/keyboards/lily58/keymaps/domnantas/config.h b/keyboards/lily58/keymaps/domnantas/config.h new file mode 100644 index 000000000..00104a136 --- /dev/null +++ b/keyboards/lily58/keymaps/domnantas/config.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | This is the c configuration file for the keymap | ||
3 | |||
4 | Copyright 2012 Jun Wako <wakojun@gmail.com> | ||
5 | Copyright 2015 Jack Humbert | ||
6 | |||
7 | This program is free software: you can redistribute it and/or modify | ||
8 | it under the terms of the GNU General Public License as published by | ||
9 | the Free Software Foundation, either version 2 of the License, or | ||
10 | (at your option) any later version. | ||
11 | |||
12 | This program is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | GNU General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU General Public License | ||
18 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
19 | */ | ||
20 | |||
21 | #pragma once | ||
22 | |||
23 | //#define USE_MATRIX_I2C | ||
24 | |||
25 | /* Select hand configuration */ | ||
26 | |||
27 | // #define MASTER_LEFT | ||
28 | // #define MASTER_RIGHT | ||
29 | #define EE_HANDS | ||
30 | |||
31 | // #define SSD1306OLED | ||
32 | |||
33 | #define USE_SERIAL_PD2 | ||
34 | |||
35 | #define TAPPING_FORCE_HOLD | ||
36 | #define TAPPING_TERM 100 \ No newline at end of file | ||
diff --git a/keyboards/lily58/keymaps/domnantas/keymap.c b/keyboards/lily58/keymaps/domnantas/keymap.c new file mode 100644 index 000000000..badc3bb63 --- /dev/null +++ b/keyboards/lily58/keymaps/domnantas/keymap.c | |||
@@ -0,0 +1,284 @@ | |||
1 | /* Copyright 2020 Domantas Petrauskas | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | |||
17 | #include QMK_KEYBOARD_H | ||
18 | #include <stdio.h> | ||
19 | |||
20 | #define LT_1 RALT(KC_1) | ||
21 | #define LT_2 RALT(KC_2) | ||
22 | #define LT_3 RALT(KC_3) | ||
23 | #define LT_4 RALT(KC_4) | ||
24 | #define LT_5 RALT(KC_5) | ||
25 | #define LT_6 RALT(KC_6) | ||
26 | #define LT_7 RALT(KC_7) | ||
27 | #define LT_8 RALT(KC_8) | ||
28 | #define LT_9 RALT(KC_9) | ||
29 | #define LT_0 RALT(KC_0) | ||
30 | |||
31 | // Naming according to Unicode specifications | ||
32 | #define LT_A_OG KC_1 | ||
33 | #define LT_C_CA KC_2 | ||
34 | #define LT_E_OG KC_3 | ||
35 | #define LT_E_DO KC_4 | ||
36 | #define LT_I_OG KC_5 | ||
37 | #define LT_S_CA KC_6 | ||
38 | #define LT_U_OG KC_7 | ||
39 | #define LT_U_MA KC_8 | ||
40 | #define LT_Z_CA KC_EQL | ||
41 | |||
42 | #define LT_EQL RALT(KC_EQL) | ||
43 | |||
44 | // OLED setup | ||
45 | #define IDLE_FRAMES 5 | ||
46 | #define IDLE_SPEED 30 | ||
47 | #define TAP_FRAMES 2 | ||
48 | #define TAP_SPEED 40 | ||
49 | #define ANIM_FRAME_DURATION 200 | ||
50 | #define ANIM_SIZE 512 | ||
51 | |||
52 | char wpm_str[10]; | ||
53 | uint32_t anim_timer = 0; | ||
54 | uint32_t anim_sleep = 0; | ||
55 | uint8_t current_idle_frame = 0; | ||
56 | uint8_t current_tap_frame = 0; | ||
57 | |||
58 | static long int oled_timeout = OLED_TIMEOUT; // 10 minutes | ||
59 | |||
60 | enum layer_number { | ||
61 | _QWERTY = 0, | ||
62 | _LOWER, | ||
63 | _RAISE, | ||
64 | _ADJUST, | ||
65 | }; | ||
66 | |||
67 | const bool *is_keyboard_left(void); | ||
68 | |||
69 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
70 | |||
71 | /* QWERTY | ||
72 | * ,-----------------------------------------. ,-----------------------------------------. | ||
73 | * | ESC | Ą | Č | Ę | Ė | Į | | Š | Ų | Ū | ( | ) | Ž | | ||
74 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
75 | * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | | ||
76 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
77 | * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | | ||
78 | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| | ||
79 | * |LCTRL | Z | X | C | V | B |-------| |-------| N | M | , | . | / | RAlt | | ||
80 | * `-----------------------------------------/ / \ \-----------------------------------------' | ||
81 | * | LGUI | LAlt |LOWER | / Space / \Enter \ | Bksp |RAISE | Del | | ||
82 | * | | | |/ / \ \ | | | | | ||
83 | * `----------------------------' '------''--------------------' | ||
84 | */ | ||
85 | [_QWERTY] = LAYOUT( | ||
86 | KC_ESC, LT_A_OG, LT_C_CA, LT_E_OG, LT_E_DO, LT_I_OG, LT_S_CA, LT_U_OG, LT_U_MA, KC_9, KC_0, LT_Z_CA, | ||
87 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, | ||
88 | KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
89 | KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RALT, | ||
90 | KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_ENT, KC_BSPC, MO(_RAISE), KC_DEL | ||
91 | ), | ||
92 | |||
93 | /* LOWER | ||
94 | * ,-----------------------------------------. ,-----------------------------------------. | ||
95 | * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | | ||
96 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
97 | * | Tab | 4 | 5 | 6 | | | | | | | | | | | ||
98 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
99 | * |LShift| 7 | 8 | 9 | 0 | |-------. ,-------| | | | | | | | ||
100 | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| | ||
101 | * |LCTRL | = | + | - | | | |-------| |-------| | | | | | | | ||
102 | * `-----------------------------------------/ / \ \-----------------------------------------' | ||
103 | * | LGUI | LAlt |LOWER | / Space / \ Enter\ | Bksp |RAISE | Del | | ||
104 | * | | ||||||||/ / \ \ | | | | | ||
105 | * `----------------------------' '------''--------------------' | ||
106 | */ | ||
107 | [_LOWER] = LAYOUT( | ||
108 | _______, LT_1, LT_2, LT_3, LT_4, LT_5, LT_6, LT_7, LT_8, LT_9, LT_0, KC_GRV, | ||
109 | _______, LT_4, LT_5, LT_6, _______, _______, _______, _______, _______, _______, _______, _______, | ||
110 | _______, LT_7, LT_8, LT_9, LT_0, _______, _______, _______, _______, _______, _______, _______, | ||
111 | _______, LT_EQL, KC_PPLS, KC_PMNS, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
112 | _______, _______, _______, _______, _______, _______, _______, _______ | ||
113 | ), | ||
114 | |||
115 | /* RAISE | ||
116 | * ,-----------------------------------------. ,-----------------------------------------. | ||
117 | * | ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |PrScr | | ||
118 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
119 | * | Tab | F11 | F12 | | | | | | PgUp | Home | Up | End | Vol+ | | ||
120 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
121 | * |LShift| | | | | |-------. ,-------| | PgDn | Left | Down |Right | Vol- | | ||
122 | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| | ||
123 | * |LCTRL | Undo | Cut | Copy |Paste | |-------| |-------| | |MPrev |MNext |MPlPa | | | ||
124 | * `-----------------------------------------/ / \ \-----------------------------------------' | ||
125 | * | LGUI | LAlt |LOWER | / Space / \ Enter\ | Bksp |RAISE | Del | | ||
126 | * | | | |/ / \ \ | |||||||| | | ||
127 | * `----------------------------' '------''--------------------' | ||
128 | */ | ||
129 | [_RAISE] = LAYOUT( | ||
130 | _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, | ||
131 | _______, KC_F11, KC_F12, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, | ||
132 | _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, | ||
133 | _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, | ||
134 | _______, _______, _______, _______, _______, _______, _______, _______ | ||
135 | ), | ||
136 | |||
137 | /* ADJUST | ||
138 | * ,-----------------------------------------. ,-----------------------------------------. | ||
139 | * | | | | | | | | | | | | | | | ||
140 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
141 | * | | | | | | | | | | | | | | | ||
142 | * |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
143 | * | CAPS | | | | | |-------. ,-------| | | | | | | | ||
144 | * |------+------+------+------+------+------| | | |------+------+------+------+------+------| | ||
145 | * | | | | | | |-------| |-------| | | | | | | | ||
146 | * `-----------------------------------------/ / \ \-----------------------------------------' | ||
147 | * | LGUI | LAlt |LOWER | /Space / \Enter \ | Bksp |RAISE | Del | | ||
148 | * | | ||||||||/ / \ \ | |||||||| | | ||
149 | * `----------------------------' '------''--------------------' | ||
150 | */ | ||
151 | [_ADJUST] = LAYOUT( | ||
152 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
153 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
154 | KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
155 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
156 | _______, _______, _______, _______, _______, _______, _______, _______ | ||
157 | ) | ||
158 | }; | ||
159 | |||
160 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
161 | if (is_keyboard_left()) return OLED_ROTATION_270; | ||
162 | return OLED_ROTATION_180; | ||
163 | } | ||
164 | |||
165 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
166 | return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); | ||
167 | } | ||
168 | |||
169 | static void render_bongo_cat(void) { | ||
170 | |||
171 | // Idle animation | ||
172 | static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { | ||
173 | |||
174 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 4, 4, 4, 8, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 100, 130, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
175 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 56, 4, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
176 | |||
177 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 4, 4, 4, 8, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 100, 130, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
178 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 56, 4, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
179 | |||
180 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 8, 4, 2, 2, 4, 24, 96, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 194, 1, 1, 2, 2, 4, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 96, 0, 129, 130, 130, 132, 8, 16, 32, 64, 128, 0, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
181 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 25, 6, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 27, 3, 0, 64, 160, 34, 36, 20, 18, 18, 18, 11, 8, 8, 8, 8, 5, 5, 9, 9, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
182 | |||
183 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
184 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
185 | |||
186 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 4, 2, 2, 2, 4, 56, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 226, 1, 1, 2, 2, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
187 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} | ||
188 | |||
189 | }; | ||
190 | |||
191 | // Prep animation | ||
192 | static const char PROGMEM prep[][ANIM_SIZE] = { | ||
193 | |||
194 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 129, 128, 128, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 0, 1, 225, 26, 6, 9, 49, 53, 1, 138, 124, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
195 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 24, 6, 5, 152, 153, 132, 195, 124, 65, 65, 64, 64, 32, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} | ||
196 | |||
197 | }; | ||
198 | |||
199 | // Typing animation | ||
200 | static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { | ||
201 | |||
202 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 248, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 129, 128, 128, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 0, 1, 1, 2, 4, 8, 16, 32, 67, 135, 7, 1, 0, 184, 188, 190, 159, 95, 95, 79, 76, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
203 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 24, 6, 5, 152, 153, 132, 67, 124, 65, 65, 64, 64, 32, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 61, 124, 252, 252, 252, 252, 252, 60, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | ||
204 | |||
205 | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 0, 1, 225, 26, 6, 9, 49, 53, 1, 138, 124, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, | ||
206 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 122, 122, 121, 121, 121, 121, 57, 49, 2, 2, 4, 4, 8, 8, 8, 136, 136, 135, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} | ||
207 | |||
208 | }; | ||
209 | |||
210 | void animation_phase(void) { | ||
211 | if (get_current_wpm() <= IDLE_SPEED) { | ||
212 | current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; | ||
213 | oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); | ||
214 | } | ||
215 | |||
216 | if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { | ||
217 | oled_write_raw_P(prep[0], ANIM_SIZE); | ||
218 | } | ||
219 | |||
220 | if (get_current_wpm() >= TAP_SPEED) { | ||
221 | current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; | ||
222 | oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); | ||
223 | } | ||
224 | } | ||
225 | |||
226 | if (get_current_wpm() != 000) { | ||
227 | oled_on(); | ||
228 | |||
229 | if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { | ||
230 | anim_timer = timer_read32(); | ||
231 | animation_phase(); | ||
232 | } | ||
233 | |||
234 | anim_sleep = timer_read32(); | ||
235 | } else { | ||
236 | if (timer_elapsed32(anim_sleep) > oled_timeout) { | ||
237 | oled_off(); | ||
238 | } else { | ||
239 | if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { | ||
240 | anim_timer = timer_read32(); | ||
241 | animation_phase(); | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | } | ||
246 | |||
247 | static void render_status(void) { | ||
248 | // WPM | ||
249 | oled_write_ln_P(PSTR("wpm"), false); | ||
250 | sprintf(wpm_str, "%03d", get_current_wpm()); | ||
251 | oled_write_ln(wpm_str, false); | ||
252 | oled_write_ln_P(PSTR(""), false); | ||
253 | |||
254 | // Layer display | ||
255 | switch (get_highest_layer(layer_state)) { | ||
256 | case _QWERTY: | ||
257 | oled_write_ln_P(PSTR("deflt"), false); | ||
258 | break; | ||
259 | case _RAISE: | ||
260 | oled_write_ln_P(PSTR("raise"), false); | ||
261 | break; | ||
262 | case _LOWER: | ||
263 | oled_write_ln_P(PSTR("lower"), false); | ||
264 | break; | ||
265 | case _ADJUST: | ||
266 | oled_write_ln_P(PSTR("adjst"), false); | ||
267 | break; | ||
268 | default: | ||
269 | oled_write_ln_P(PSTR("error"), false); | ||
270 | } | ||
271 | |||
272 | led_t led_state = host_keyboard_led_state(); | ||
273 | oled_write_ln_P(PSTR(""), false); | ||
274 | oled_write_ln_P(PSTR(""), false); | ||
275 | oled_write_ln_P(PSTR("caps"), led_state.caps_lock); | ||
276 | } | ||
277 | |||
278 | void oled_task_user(void) { | ||
279 | if (is_keyboard_left()) { | ||
280 | render_status(); | ||
281 | } else { | ||
282 | render_bongo_cat(); | ||
283 | } | ||
284 | } | ||
diff --git a/keyboards/lily58/keymaps/domnantas/readme.md b/keyboards/lily58/keymaps/domnantas/readme.md new file mode 100644 index 000000000..262f7ffad --- /dev/null +++ b/keyboards/lily58/keymaps/domnantas/readme.md | |||
@@ -0,0 +1,21 @@ | |||
1 | # Domnantas layout for Lily58 Pro | ||
2 | |||
3 | ## Features | ||
4 | |||
5 | - Optimised for lithuanian layout, but works on English too | ||
6 | - Backspace, Enter and Space are under thumbs, very little hand movement | ||
7 | - LShift swapped with LCtrl | ||
8 | - Numpad on Lower layer for left hand | ||
9 | - Navigation, media keys on Raise layer for right hand | ||
10 | - Status on the left OLED | ||
11 | - BONGOCAT on the right | ||
12 | |||
13 | ## Instructions | ||
14 | Since status is always on the left and Bongocat on the right, the keymap has to be flashed with different commands: | ||
15 | |||
16 | ```bash | ||
17 | # Right hand | ||
18 | qmk flash -kb lily58/rev1 -km domnantas -bl avrdude-split-left | ||
19 | # Left hand | ||
20 | qmk flash -kb lily58/rev1 -km domnantas -bl avrdude-split-right | ||
21 | ``` \ No newline at end of file | ||
diff --git a/keyboards/lily58/keymaps/domnantas/rules.mk b/keyboards/lily58/keymaps/domnantas/rules.mk new file mode 100644 index 000000000..2942e18ed --- /dev/null +++ b/keyboards/lily58/keymaps/domnantas/rules.mk | |||
@@ -0,0 +1,2 @@ | |||
1 | EXTRAKEY_ENABLE = yes | ||
2 | WPM_ENABLE = yes | ||