aboutsummaryrefslogtreecommitdiff
path: root/keyboards/lily58/keymaps
diff options
context:
space:
mode:
authorNaoki Katahira <kata0510.com@gmail.com>2020-11-16 02:36:05 +0900
committerGitHub <noreply@github.com>2020-11-15 09:36:05 -0800
commit5edce6ba26b474ca53f0bf10bfdb4d8f50de43aa (patch)
tree9acff775d357d720a79f580df2f967d8895e0b8a /keyboards/lily58/keymaps
parent91b44016f9eb18d9d597708b2ff9d66b4da530cb (diff)
downloadqmk_firmware-5edce6ba26b474ca53f0bf10bfdb4d8f50de43aa.tar.gz
qmk_firmware-5edce6ba26b474ca53f0bf10bfdb4d8f50de43aa.zip
[Keyboard] Add Lily58 via keymap (#10178)
* Add Lily58 VIA keymap * Update keyboards/lily58/keymaps/via/keymap.c Co-authored-by: Drashna Jaelre <drashna@live.com> * Update keyboards/lily58/keymaps/via/keymap.c Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/lily58/keymaps/via/keymap.c Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/lily58/keymaps/via/rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> * update via keymap * fix keymap.c * add licence to keymap.c Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/lily58/keymaps')
-rw-r--r--keyboards/lily58/keymaps/via/config.h42
-rw-r--r--keyboards/lily58/keymaps/via/keymap.c229
-rw-r--r--keyboards/lily58/keymaps/via/rules.mk2
3 files changed, 273 insertions, 0 deletions
diff --git a/keyboards/lily58/keymaps/via/config.h b/keyboards/lily58/keymaps/via/config.h
new file mode 100644
index 000000000..a3f0fb0a1
--- /dev/null
+++ b/keyboards/lily58/keymaps/via/config.h
@@ -0,0 +1,42 @@
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/* Select hand configuration */
26
27#define MASTER_LEFT
28// #define MASTER_RIGHT
29// #define EE_HANDS
30
31#define USE_SERIAL_PD2
32
33#define TAPPING_FORCE_HOLD
34#define TAPPING_TERM 100
35
36// Underglow
37/*
38#undef RGBLED_NUM
39#define RGBLED_NUM 14 // Number of LEDs
40#define RGBLIGHT_ANIMATIONS
41#define RGBLIGHT_SLEEP
42*/
diff --git a/keyboards/lily58/keymaps/via/keymap.c b/keyboards/lily58/keymaps/via/keymap.c
new file mode 100644
index 000000000..bf46fb8e1
--- /dev/null
+++ b/keyboards/lily58/keymaps/via/keymap.c
@@ -0,0 +1,229 @@
1 /* Copyright 2020 Naoki Katahira
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//extern uint8_t is_master;
21
22enum layer_number {
23 _QWERTY = 0,
24 _LOWER,
25 _RAISE,
26 _ADJUST,
27};
28
29#define RAISE MO(_RAISE)
30#define LOWER MO(_LOWER)
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33
34/* QWERTY
35 * ,-----------------------------------------. ,-----------------------------------------.
36 * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ~ |
37 * |------+------+------+------+------+------| |------+------+------+------+------+------|
38 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
39 * |------+------+------+------+------+------| |------+------+------+------+------+------|
40 * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
41 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
42 * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
43 * `-----------------------------------------/ / \ \-----------------------------------------'
44 * |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
45 * | | | |/ / \ \ | | | |
46 * `-------------------''-------' '------''--------------------'
47 */
48
49 [_QWERTY] = LAYOUT(
50 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
51 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
52 KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
53 KC_LSFT, 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_RSFT,
54 LOWER, KC_LGUI, KC_LALT, KC_SPC, KC_ENT, KC_BSPC, KC_RGUI, RAISE
55),
56/* LOWER
57 * ,-----------------------------------------. ,-----------------------------------------.
58 * | | | | | | | | | | | | | |
59 * |------+------+------+------+------+------| |------+------+------+------+------+------|
60 * | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
61 * |------+------+------+------+------+------| |------+------+------+------+------+------|
62 * | | 1 | 2 | 3 | 4 | 5 |-------. ,-------| 6 | 7 | 8 | 9 | 0 | |
63 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
64 * | | | | | | |-------| |-------| | | ` | + | { | } | |
65 * `-----------------------------------------/ / \ \-----------------------------------------'
66 * |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
67 * | | | |/ / \ \ | | | |
68 * `-------------------''-------' '------''--------------------'
69 */
70[_LOWER] = LAYOUT(
71 _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
72 _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
73 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
74 _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_GRAVE, KC_PLUS, KC_LCBR, KC_RCBR, _______,
75 _______, _______, _______, _______, _______, _______, _______, _______
76),
77/* RAISE
78 * ,-----------------------------------------. ,-----------------------------------------.
79 * | | | | | | | | | | | | | |
80 * |------+------+------+------+------+------| |------+------+------+------+------+------|
81 * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
82 * |------+------+------+------+------+------| |------+------+------+------+------+------|
83 * | | | | | | |-------. ,-------| | Left | Down | Up |Right | |
84 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
85 * | | | | | | |-------| |-------| + | = | [ | ] | \ | |
86 * `-----------------------------------------/ / \ \-----------------------------------------'
87 * |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
88 * | | | |/ / \ \ | | | |
89 * `-------------------''-------' '------''--------------------'
90 */
91
92[_RAISE] = LAYOUT(
93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
94 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
95 _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
96 _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______,
97 _______, _______, _______, _______, _______, _______, _______, _______
98),
99
100/* ADJUST
101 * ,-----------------------------------------. ,-----------------------------------------.
102 * | | | | | | | | | | | | | |
103 * |------+------+------+------+------+------| |------+------+------+------+------+------|
104 * | | | | | | | | | | | | | |
105 * |------+------+------+------+------+------| |------+------+------+------+------+------|
106 * | | | | | | |-------. ,-------| | | | | | |
107 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
108 * | | | | | | |-------| |-------| | | | | | |
109 * `-----------------------------------------/ / \ \-----------------------------------------'
110 * |LOWER | LGUI | Alt | /Space / \Enter \ |BackSP| RGUI |RAISE |
111 * | | | |/ / \ \ | | | |
112 * `----------------------------' '------''--------------------'
113 */
114 [_ADJUST] = LAYOUT(
115 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
116 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, XXXXXXX, XXXXXXX,
119 _______, _______, _______, _______, _______, _______, _______, _______
120 )
121};
122
123#ifdef OLED_DRIVER_ENABLE
124
125oled_rotation_t oled_init_user(oled_rotation_t rotation) {
126 if (!is_keyboard_master())
127 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
128 return rotation;
129}
130
131layer_state_t layer_state_set_user(layer_state_t state) {
132 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
133 return state;
134}
135
136static void render_logo(void) {
137 static const char PROGMEM logo[] = {
138 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
139 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
140 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
141 };
142
143 oled_write_P(logo, false);
144}
145char keylog_str[24] = {};
146char keylogs_str[21] = {};
147int keylogs_str_idx = 0;
148
149const char code_to_name[60] = {
150 ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
151 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
152 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
153 '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
154 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
155 '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
156
157void set_keylog(uint16_t keycode, keyrecord_t *record) {
158 char name = ' ';
159 if (keycode < 60) {
160 name = code_to_name[keycode];
161 }
162
163 // update keylog
164 snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
165 record->event.key.row, record->event.key.col,
166 keycode, name);
167
168 // update keylogs
169 if (keylogs_str_idx == sizeof(keylogs_str) - 1) {
170 keylogs_str_idx = 0;
171 for (int i = 0; i < sizeof(keylogs_str) - 1; i++) {
172 keylogs_str[i] = ' ';
173 }
174 }
175
176 keylogs_str[keylogs_str_idx] = name;
177 keylogs_str_idx++;
178}
179
180const char *read_keylog(void) {
181 return keylog_str;
182}
183
184const char *read_keylogs(void) {
185 return keylogs_str;
186}
187//new
188
189void oled_task_user(void) {
190 if (is_keyboard_master()) {
191 // Host Keyboard Layer Status
192 oled_write_P(PSTR("Layer: "), false);
193
194 switch (get_highest_layer(layer_state)) {
195 case _QWERTY:
196 oled_write_ln_P(PSTR("Default"), false);
197 break;
198 case _RAISE:
199 oled_write_ln_P(PSTR("Raise"), false);
200 break;
201 case _LOWER:
202 oled_write_ln_P(PSTR("Lower"), false);
203 break;
204 case _ADJUST:
205 oled_write_ln_P(PSTR("Adjust"), false);
206 break;
207 default:
208 oled_write_ln_P(PSTR("Undefined"), false);
209 }
210
211 oled_write_ln(read_keylog(), false);
212 oled_write_ln(read_keylogs(), false);
213
214 } else {
215 render_logo();
216 }
217}
218#endif // OLED_DRIVER_ENABLE
219
220
221bool process_record_user(uint16_t keycode, keyrecord_t *record) {
222 if (record->event.pressed) {
223#ifdef OLED_DRIVER_ENABLE
224 set_keylog(keycode, record);
225#endif
226 // set_timelog();
227 }
228 return true;
229}
diff --git a/keyboards/lily58/keymaps/via/rules.mk b/keyboards/lily58/keymaps/via/rules.mk
new file mode 100644
index 000000000..1df2dc4b7
--- /dev/null
+++ b/keyboards/lily58/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2OLED_DRIVER_ENABLE = yes