aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/kyria/keymaps/tessachka/config.h29
-rw-r--r--keyboards/kyria/keymaps/tessachka/keymap.c241
-rw-r--r--keyboards/kyria/keymaps/tessachka/rules.mk3
3 files changed, 273 insertions, 0 deletions
diff --git a/keyboards/kyria/keymaps/tessachka/config.h b/keyboards/kyria/keymaps/tessachka/config.h
new file mode 100644
index 000000000..a5529128d
--- /dev/null
+++ b/keyboards/kyria/keymaps/tessachka/config.h
@@ -0,0 +1,29 @@
1/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
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#pragma once
18
19#ifdef OLED_DRIVER_ENABLE
20 #define OLED_DISPLAY_128X64
21#endif
22
23#ifdef RGBLIGHT_ENABLE
24 #define RGBLIGHT_ANIMATIONS
25 #define RGBLIGHT_HUE_STEP 8
26 #define RGBLIGHT_SAT_STEP 8
27 #define RGBLIGHT_VAL_STEP 8
28 #define RGBLIGHT_SLEEP
29#endif
diff --git a/keyboards/kyria/keymaps/tessachka/keymap.c b/keyboards/kyria/keymaps/tessachka/keymap.c
new file mode 100644
index 000000000..38307f964
--- /dev/null
+++ b/keyboards/kyria/keymaps/tessachka/keymap.c
@@ -0,0 +1,241 @@
1/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
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#include QMK_KEYBOARD_H
17
18
19enum layers {
20 QWERTY = 0,
21 LOWER,
22 RAISE,
23 ADJUST
24};
25
26enum custom_keycodes {
27 RGBRST = SAFE_RANGE,
28 KC_RACL
29};
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32/*
33 * Base Layer: QWERTY
34 *
35 * ,-------------------------------------------. ,-------------------------------------------.
36 * | ESC | Q | W | E | R | T | | Y | U | I | O | P | BSPC |
37 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
38 * | TAB/ADJ| A | S | D | F | G | | H | J | K | L | ; : | ENTER |
39 * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
40 * | LSHIFT | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | F16 |
41 * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
42 * | | | | | Space| | MYCM | Calc | F15 | | |
43 * | | | Ctrl | LAlt | Lower| | Raise| | | | |
44 * `----------------------------------' `----------------------------------'
45 */
46 [QWERTY] = LAYOUT(
47 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
48 LT(ADJUST,KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
49 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_F16,
50 XXXXXXX, XXXXXXX, KC_LCTL, KC_LALT, LT(LOWER,KC_SPC), LT(RAISE,KC_MYCM), KC_CALC, KC_F15, XXXXXXX, XXXXXXX
51 ),
52/*
53 * Lower Layer: Numbers and symbols
54 *
55 * ,-------------------------------------------. ,-------------------------------------------.
56 * | ` | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | DEL |
57 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
58 * | CAPS | - _ | = + | [ { | ] } | | | | | | | ' " | |
59 * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
60 * | LSHIFT | TAB | | | | | | | | | | Home | PgDn | PgUp | End | \ | | |
61 * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
62 * | | | | | Space| | Space| | | | |
63 * | | | Ctrl | LAlt | Lower| | | | | | |
64 * `----------------------------------' `----------------------------------'
65 */
66 [LOWER] = LAYOUT(
67 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
68 KC_CAPS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_QUOT, KC_NO,
69 KC_LSFT, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_BSLS, KC_NO,
70 _______, _______, _______, _______, _______, KC_SPC, KC_NO, KC_NO, _______, _______
71 ),
72/*
73 * Raise Layer: Function Keys
74 *
75 * ,-------------------------------------------. ,-------------------------------------------.
76 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
77 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
78 * | | |EEPRST| | | | | | | | | | F12 |
79 * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
80 * | LSHIFT | TAB | RESET| | | | | | | | | Play | | | | | |
81 * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
82 * | | | | | Space| | MYCM | Prev | Next | | |
83 * | | | Ctrl | LAlt | | | Raise| | | | |
84 * `----------------------------------' `----------------------------------'
85 */
86 [RAISE] = LAYOUT(
87 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
88 KC_NO, KC_NO, EEP_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
89 KC_LSFT, KC_TAB, RESET, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, KC_MPLY, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
90 _______, _______, _______, _______, KC_SPC , KC_MPRV, KC_MNXT, _______, _______, _______
91 ),
92/*
93 * Adjust Layer: Arrow keys, RGB
94 *
95 * ,-------------------------------------------. ,-------------------------------------------.
96 * | | BTN2 | Up | BTN1 |RGBMOD|RGBTOG| | | | | | | |
97 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
98 * | | Left | Down | Right|RGBSAI|RGBHUI| | | | | | | |
99 * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
100 * | RGBRST | |RGBVAI|RGBVAD|RGBSAD|RGBHUD| | | | | | | | | | | |
101 * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
102 * | | | WBAK | BTN3 | WFWD | | MYCM | Calc | F15 | | |
103 * | | | | | | | Raise| | | | |
104 * `----------------------------------' `----------------------------------'
105 */
106 [ADJUST] = LAYOUT(
107 KC_NO, KC_BTN2, KC_UP, KC_BTN1, RGB_MOD, RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
108 KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_SAI, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
109 RGBRST, KC_NO, RGB_VAI, RGB_VAD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
110 _______, _______, KC_WBAK, KC_BTN3, KC_WFWD, _______, _______, _______, _______, _______
111 ),
112// /*
113// * Layer template
114// *
115// * ,-------------------------------------------. ,-------------------------------------------.
116// * | | | | | | | | | | | | | |
117// * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
118// * | | | | | | | | | | | | | |
119// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
120// * | | | | | | | | | | | | | | | | | |
121// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
122// * | | | | | | | | | | | |
123// * | | | | | | | | | | | |
124// * `----------------------------------' `----------------------------------'
125// */
126// [LAYERINDEX] = LAYOUT(
127// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
128// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
129// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
130// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
131// ),
132};
133
134layer_state_t layer_state_set_user(layer_state_t state) {
135 return update_tri_layer_state(state, LOWER, RAISE, ADJUST);
136}
137
138// bool process_record_user(uint16_t keycode, keyrecord_t *record) {
139// switch (keycode) {
140// case MyCustomKeycode:
141// if (record->event.pressed) {
142// // What to do if the button was pressed
143// } else {
144// // What to do if the button was released
145// }
146// break;
147// }
148// return true;
149// }
150
151#ifdef OLED_DRIVER_ENABLE
152oled_rotation_t oled_init_user(oled_rotation_t rotation) {
153 return OLED_ROTATION_180;
154}
155
156static void render_kyria_logo(void) {
157 static const char PROGMEM kyria_logo[] = {
158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
159 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
160 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
161 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
162 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
163 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
164 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 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
166 };
167 oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
168}
169
170static void render_tessachka_logo(void) {
171 static const char PROGMEM Tessachka_OLED_Logo_Inverted[] =
172 {
173 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 192, 192, 192, 192, 192, 192, 192,
174 192, 192, 192, 64, 0, 0, 128, 128, 192, 192, 192, 192, 192, 192, 64, 0, 0,
175 128, 192, 192, 192, 192, 192, 192, 192, 192, 192, 64, 0, 0, 128, 192, 192, 192,
176 192, 192, 192, 192, 192, 192, 64, 0, 0, 0, 0, 0, 0, 192, 192, 0, 0,
177 0, 0, 0, 0, 0, 128, 192, 192, 192, 192, 192, 192, 192, 192, 128, 0, 0,
178 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 128, 192, 0, 192, 128, 0, 0,
179 0, 0, 128, 192, 192, 128, 0, 0, 0, 0, 0, 0, 0, 192, 192, 0, 0,
180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
181 1, 1, 1, 1, 255, 255, 255, 127, 1, 1, 1, 0, 24, 126, 255, 255, 219,
182 219, 153, 153, 153, 137, 128, 128, 0, 135, 143, 159, 153, 153, 153, 153, 153, 153,
183 249, 240, 224, 0, 135, 143, 159, 153, 153, 153, 153, 153, 153, 249, 240, 224, 0,
184 0, 192, 240, 252, 159, 135, 135, 159, 124, 240, 192, 0, 60, 255, 255, 231, 195,
185 129, 0, 0, 0, 129, 195, 195, 195, 0, 255, 255, 255, 24, 24, 24, 24, 24,
186 24, 255, 255, 255, 0, 255, 255, 255, 28, 62, 127, 247, 227, 193, 128, 0, 0,
187 0, 192, 240, 252, 159, 135, 135, 159, 124, 240, 192, 0, 0, 0, 0, 0, 0,
188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0,
189 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 3, 1, 0, 0,
190 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 1, 3, 3,
191 3, 3, 3, 3, 3, 3, 1, 0, 0, 3, 3, 3, 3, 3, 3, 1, 0,
192 0, 1, 3, 3, 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0,
193 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 1, 3,
194 0, 0, 0, 0, 1, 3, 3, 1, 0, 3, 3, 3, 3, 3, 3, 1, 0,
195 0, 1, 3, 3, 0, 0, 0, 0, 0, 0
196 };
197 oled_write_raw_P(Tessachka_OLED_Logo_Inverted, sizeof(Tessachka_OLED_Logo_Inverted));
198 oled_advance_page(false);
199 oled_advance_page(false);
200 oled_advance_page(false);
201}
202
203static void render_status(void) {
204 // Logo and version information
205 render_tessachka_logo();
206 oled_write_P(PSTR("Kyria rev1.0\n\n"), false);
207
208 // Host Keyboard Layer Status
209 oled_write_P(PSTR("Layer: "), false);
210 switch (get_highest_layer(layer_state)) {
211 case QWERTY:
212 oled_write_P(PSTR("Default\n"), false);
213 break;
214 case LOWER:
215 oled_write_P(PSTR("Lower\n"), false);
216 break;
217 case RAISE:
218 oled_write_P(PSTR("Raise\n"), false);
219 break;
220 case ADJUST:
221 oled_write_P(PSTR("Adjust\n"), false);
222 break;
223 default:
224 oled_write_P(PSTR("Undefined\n"), false);
225 }
226
227 // Host Keyboard LED Status
228 uint8_t led_usb_state = host_keyboard_leds();
229 oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
230 oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
231 oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
232}
233
234void oled_task_user(void) {
235 if (is_keyboard_master()) {
236 render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
237 } else {
238 render_kyria_logo();
239 }
240}
241#endif
diff --git a/keyboards/kyria/keymaps/tessachka/rules.mk b/keyboards/kyria/keymaps/tessachka/rules.mk
new file mode 100644
index 000000000..b7d691efd
--- /dev/null
+++ b/keyboards/kyria/keymaps/tessachka/rules.mk
@@ -0,0 +1,3 @@
1OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
2RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
3MOUSEKEY_ENABLE = yes