aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/tkl_ansi
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/community/tkl_ansi')
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/config.h25
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/keymap.c89
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/rules.mk1
3 files changed, 115 insertions, 0 deletions
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/config.h b/layouts/community/tkl_ansi/talljoe-tkl/config.h
new file mode 100644
index 000000000..90db04e7b
--- /dev/null
+++ b/layouts/community/tkl_ansi/talljoe-tkl/config.h
@@ -0,0 +1,25 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include QMK_KEYBOARD_CONFIG_H
5
6#define PREVENT_STUCK_MODIFIERS
7#define ENABLE_GAME_LAYER
8
9#define TEMPLATE_TKL(\
10 KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
11 KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
12 KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
13 KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
14 KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
15 KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
16) LAYOUT_tkl_ansi( \
17 KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
18 KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
19 KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
20 KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
21 KN2,KC_NO,KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
22 KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
23)
24
25#endif //CONFIG_USER_H
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/keymap.c b/layouts/community/tkl_ansi/talljoe-tkl/keymap.c
new file mode 100644
index 000000000..b5dc54492
--- /dev/null
+++ b/layouts/community/tkl_ansi/talljoe-tkl/keymap.c
@@ -0,0 +1,89 @@
1#ifdef KEYBOARD_zeal60
2#include "config.h"
3#include "zeal60.h"
4#include "zeal_backlight.h"
5#include "action_layer.h"
6#include "solarized.h"
7#include "talljoe.h"
8
9// from zeal_backlight.c
10// we want to be able to set indicators for the spacebar stabs
11// but they are not represented by a row/index.
12extern zeal_backlight_config g_config;
13void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led );
14
15void set_backlight_defaults(void) {
16 uint8_t space;
17 uint8_t caps_lock;
18 map_row_column_to_led(3, 12, &caps_lock);
19 map_row_column_to_led(4, 7, &space);
20 zeal_backlight_config default_values = {
21 .use_split_backspace = USE_SPLIT_BACKSPACE,
22 .use_split_left_shift = USE_SPLIT_LEFT_SHIFT,
23 .use_split_right_shift = USE_SPLIT_RIGHT_SHIFT,
24 .use_7u_spacebar = USE_7U_SPACEBAR,
25 .use_iso_enter = USE_ISO_ENTER,
26 .disable_when_usb_suspended = 1,
27 .disable_after_timeout = 0,
28 .brightness = 255,
29 .effect = 10,
30 .color_1 = solarized.base2,
31 .color_2 = solarized.base02,
32 .caps_lock_indicator = { .index = caps_lock, .color = solarized.red },
33 .layer_1_indicator = { .index = space, .color = solarized.blue },
34 .layer_2_indicator = { .index = space, .color = solarized.yellow },
35 .layer_3_indicator = { .index = 254, .color = solarized.red },
36 .alphas_mods = {
37 BACKLIGHT_ALPHAS_MODS_ROW_0,
38 BACKLIGHT_ALPHAS_MODS_ROW_1,
39 BACKLIGHT_ALPHAS_MODS_ROW_2,
40 BACKLIGHT_ALPHAS_MODS_ROW_3,
41 BACKLIGHT_ALPHAS_MODS_ROW_4 }
42 };
43 memcpy(&g_config, &default_values, sizeof(zeal_backlight_config));
44 backlight_config_save();
45
46 solarized_t* S = &solarized;
47 HSV alphas = S->base2;
48 HSV custom_color_map[MATRIX_ROWS][MATRIX_COLS] = CM(
49 S->red, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->red,
50 S->orange, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->orange,
51 S->green, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->green,
52 S->blue, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->blue, S->blue,
53 S->violet, S->magenta, S->yellow, alphas, S->yellow, S->magenta, S->violet, S->green
54 );
55 for (uint8_t row = 0; row < MATRIX_ROWS; ++row) {
56 for (uint8_t col = 0; col < MATRIX_COLS; ++col) {
57 backlight_set_key_color(row, col, custom_color_map[row][col]);
58 }
59 }
60}
61
62bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
63 static uint8_t last_effect;
64 switch (keycode) {
65 case DFAULTS:
66 if (IS_PRESSED(record->event)) set_backlight_defaults();
67 return false;
68 case BL_TOGG:
69 if (IS_PRESSED(record->event)) {
70 if (g_config.effect) {
71 last_effect = g_config.effect;
72 g_config.effect = 0;
73 } else {
74 g_config.effect = last_effect;
75 }
76 }
77 return false;
78 case EFFECT...EFFECT_END:
79 if (IS_PRESSED(record->event)) {
80 uint8_t effect = keycode - EFFECT;
81 g_config.effect = effect;
82 backlight_config_save();
83 }
84 return false;
85 }
86
87 return true;
88}
89#endif
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/rules.mk b/layouts/community/tkl_ansi/talljoe-tkl/rules.mk
new file mode 100644
index 000000000..92007fe8a
--- /dev/null
+++ b/layouts/community/tkl_ansi/talljoe-tkl/rules.mk
@@ -0,0 +1 @@
USER_NAME := talljoe