aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Wasson <jwasson+github@gmail.com>2018-04-21 10:48:30 -0700
committerDrashna Jaelre <drashna@live.com>2018-04-21 10:48:30 -0700
commit5ca9aecfb4cb09cc002a5256939098132a40015f (patch)
tree820a45256a06f41983312707512f564f2f973c78
parent33fdd1d2551591a5c295c6dc68ccf52c4698b9c1 (diff)
downloadqmk_firmware-5ca9aecfb4cb09cc002a5256939098132a40015f.tar.gz
qmk_firmware-5ca9aecfb4cb09cc002a5256939098132a40015f.zip
Talljoe's layout with common keymap. (#2764)
* Add userspace to talljoe layout. * Move more authority to userspace and create Bananasplit layout. * Move more things into userspace. * Common Core example * More work on common layout. * Num layer. * talljoe-ansi layout * Updates for Zeal60 * Add Zeal60 to 60_ansi_split_bs_rshift * Swap Escape and Grave * Num-layer tweaks * More tweaks. * Add 1up60rgb to world of layouts. * Rename ansi_split_bs_rshift layout to hhkb. * Control RGB Backlight. * change capslock led * Remove obsolete line from rules.mk. * Add user-friendly userspace override. * Fix enter for 1uprgb60 * Revert "Rename ansi_split_bs_rshift layout to hhkb." This reverts commit 53133719db25c7cb6a199108bbf5d980481a45f4.
-rw-r--r--build_keyboard.mk6
-rw-r--r--docs/feature_userspace.md20
-rw-r--r--keyboards/1up60rgb/1up60rgb.h48
-rw-r--r--keyboards/1up60rgb/rules.mk4
-rw-r--r--keyboards/bananasplit/keymaps/talljoe/config.h22
-rw-r--r--keyboards/bananasplit/keymaps/talljoe/keymap.c1
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/config.h22
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/keymap.c1
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/rules.mk1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/config.h68
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c186
-rw-r--r--layouts/community/ortho_4x12/talljoe/config.h22
-rw-r--r--layouts/community/ortho_4x12/talljoe/keymap.c1
-rw-r--r--users/talljoe/config.h9
-rw-r--r--users/talljoe/readme.md7
-rw-r--r--users/talljoe/rules.mk3
-rw-r--r--users/talljoe/talljoe.c124
-rw-r--r--users/talljoe/talljoe.h108
18 files changed, 536 insertions, 117 deletions
diff --git a/build_keyboard.mk b/build_keyboard.mk
index 90a3df776..4781f4a5d 100644
--- a/build_keyboard.mk
+++ b/build_keyboard.mk
@@ -204,7 +204,11 @@ else
204endif 204endif
205 205
206# User space stuff 206# User space stuff
207USER_PATH := users/$(KEYMAP) 207ifeq ("$(USER_NAME)","")
208 USER_NAME := $(KEYMAP)
209endif
210USER_PATH := users/$(USER_NAME)
211
208-include $(USER_PATH)/rules.mk 212-include $(USER_PATH)/rules.mk
209ifneq ("$(wildcard users/$(KEYMAP)/config.h)","") 213ifneq ("$(wildcard users/$(KEYMAP)/config.h)","")
210 CONFIG_H += users/$(KEYMAP)/config.h 214 CONFIG_H += users/$(KEYMAP)/config.h
diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md
index 454481cb2..c8fa406cb 100644
--- a/docs/feature_userspace.md
+++ b/docs/feature_userspace.md
@@ -25,19 +25,19 @@ For example,
25 25
26Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`. 26Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`.
27 27
28Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `<name>.h` file. 28Additionally, `config.h` here will be processed like the same file in your keymap folder. This is handled separately from the `<name>.h` file.
29 29
30The reason for this, is that `<name>.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `<name.h>` file in any `config.h` files will result in compile issues. 30The reason for this, is that `<name>.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `<name.h>` file in any `config.h` files will result in compile issues.
31
32So you should use the `config.h` for QMK settings, and the `<name>.h` file for user or keymap specific settings.
31 33
32So you should use the `config.h` for QMK settings, and the `<name>.h` file for user or keymap specific settings.
33
34## Readme 34## Readme
35 35
36Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses). 36Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses).
37 37
38## `Config.h` 38## `Config.h`
39 39
40If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this: 40If you do add a `config,h` file, you want to make sure that it only gets processed once. So you may want to start off with something like this:
41 41
42```c 42```c
43#ifndef USERSPACE_CONFIG_H 43#ifndef USERSPACE_CONFIG_H
@@ -48,7 +48,7 @@ If you do add a `config,h` file, you want to make sure that it only gets process
48#endif // !USERSPACE_CONFIG_H 48#endif // !USERSPACE_CONFIG_H
49``` 49```
50 50
51You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md). 51You can use any option hre that you could use in your keymap's `config.h` file. You can find a list of vales [here](config_options.md).
52 52
53## Example 53## Example
54 54
@@ -115,3 +115,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
115This will add a new `KC_MAKE` keycode that can be used in any of your keymaps. And this keycode will output `make <keyboard>:<keymap">`, making frequent compiling easier. And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time. 115This will add a new `KC_MAKE` keycode that can be used in any of your keymaps. And this keycode will output `make <keyboard>:<keymap">`, making frequent compiling easier. And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time.
116 116
117Additionally, this should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems. AVRDUDE doesn't work on WSL, namely (and will dump the HEX in the ".build" folder instead). 117Additionally, this should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems. AVRDUDE doesn't work on WSL, namely (and will dump the HEX in the ".build" folder instead).
118
119## Override default userspace
120
121By default the userspace used will be the same as the keymap name. In some situations this isn't desirable. For instance, if you use the [layout](feature_layouts.md) feature you can't use the same name for different keymaps (e.g. ANSI and ISO). You can name your layouts `mylayout-ansi` and `mylayout-iso` and add the following line to your layout's `rules.mk`:
122
123```
124USER_NAME := mylayout
125``` \ No newline at end of file
diff --git a/keyboards/1up60rgb/1up60rgb.h b/keyboards/1up60rgb/1up60rgb.h
index a3d820f80..564a82caa 100644
--- a/keyboards/1up60rgb/1up60rgb.h
+++ b/keyboards/1up60rgb/1up60rgb.h
@@ -17,4 +17,50 @@
17 { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413, K414 } \ 17 { K400, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, K413, K414 } \
18} 18}
19 19
20#endif \ No newline at end of file 20
21/* ANSI variant. No extra keys for ISO */
22#define LAYOUT_60_ansi ( \
23 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \
24 K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
25 K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
26 K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
27 K400, K401, K403, K406, K410, K411, K413, K414 \
28) KEYMAP( \
29 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K013,\
30 K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
31 K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K214, \
32 K300, KC_NO,K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, KC_NO,\
33 K400, K401, K403, K406, K410, K411, K413, K414 \
34)
35
36/* ISO variant. Remove useless ANSI keys */
37#define LAYOUT_60_iso ( \
38 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \
39 K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
40 K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
41 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
42 K400, K401, K403, K406, K410, K411, K413, K414 \
43) KEYMAP( \
44 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K013,\
45 K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K214, \
46 K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
47 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, KC_NO,\
48 K400, K401, K403, K406, K410, K411, K413, K414 \
49)
50
51/* HHKB Variant */
52#define LAYOUT_60_ansi_split_bs_rshift ( \
53 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
54 K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
55 K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
56 K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
57 K400, K401, K403, K406, K410, K411, K413, K414 \
58) KEYMAP( \
59 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,\
60 K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
61 K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, K214, \
62 K300, KC_NO,K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314,\
63 K400, K401, K403, K406, K410, K411, K413, K414 \
64)
65
66#endif
diff --git a/keyboards/1up60rgb/rules.mk b/keyboards/1up60rgb/rules.mk
index c303af4bc..7363b3c3d 100644
--- a/keyboards/1up60rgb/rules.mk
+++ b/keyboards/1up60rgb/rules.mk
@@ -53,4 +53,6 @@ SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
53NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 53NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
54BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality 54BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
55AUDIO_ENABLE ?= no 55AUDIO_ENABLE ?= no
56RGBLIGHT_ENABLE ?= yes \ No newline at end of file 56RGBLIGHT_ENABLE ?= yes
57
58LAYOUTS = 60_ansi 60_iso 60_ansi_split_bs_rshift
diff --git a/keyboards/bananasplit/keymaps/talljoe/config.h b/keyboards/bananasplit/keymaps/talljoe/config.h
new file mode 100644
index 000000000..ce342bd7a
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/talljoe/config.h
@@ -0,0 +1,22 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include QMK_KEYBOARD_CONFIG_H
5
6#define SPACE_COUNT 3
7
8#define LAYOUT( \
9 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
10 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
11 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
12 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
13 K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
14) { \
15 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
16 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
17 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
18 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
19 { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, KC_NO, K4B, K4C, KC_NO }\
20}
21
22#endif
diff --git a/keyboards/bananasplit/keymaps/talljoe/keymap.c b/keyboards/bananasplit/keymaps/talljoe/keymap.c
new file mode 100644
index 000000000..7812add81
--- /dev/null
+++ b/keyboards/bananasplit/keymaps/talljoe/keymap.c
@@ -0,0 +1 @@
// This space intentionally left blank
diff --git a/layouts/community/60_ansi/talljoe-ansi/config.h b/layouts/community/60_ansi/talljoe-ansi/config.h
new file mode 100644
index 000000000..9e27b1b0a
--- /dev/null
+++ b/layouts/community/60_ansi/talljoe-ansi/config.h
@@ -0,0 +1,22 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include QMK_KEYBOARD_CONFIG_H
5
6#define ENABLE_GAME_LAYER
7
8#define LAYOUT( \
9 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
10 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
11 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
12 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
13 K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
14) LAYOUT_60_ansi( \
15 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
16 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
17 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
18 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
19 K40, K41, K42, K45, K48, K49, K4B, K4C \
20)
21
22#endif //CONFIG_USER_H
diff --git a/layouts/community/60_ansi/talljoe-ansi/keymap.c b/layouts/community/60_ansi/talljoe-ansi/keymap.c
new file mode 100644
index 000000000..7812add81
--- /dev/null
+++ b/layouts/community/60_ansi/talljoe-ansi/keymap.c
@@ -0,0 +1 @@
// This space intentionally left blank
diff --git a/layouts/community/60_ansi/talljoe-ansi/rules.mk b/layouts/community/60_ansi/talljoe-ansi/rules.mk
new file mode 100644
index 000000000..92007fe8a
--- /dev/null
+++ b/layouts/community/60_ansi/talljoe-ansi/rules.mk
@@ -0,0 +1 @@
USER_NAME := talljoe
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
index f5ab0c8dc..0eacbde33 100644
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
@@ -3,8 +3,70 @@
3 3
4#include QMK_KEYBOARD_CONFIG_H 4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define PREVENT_STUCK_MODIFIERS 6#define ENABLE_GAME_LAYER
7 7
8#define KM LAYOUT_60_ansi_split_bs_rshift 8#define LAYOUT( \
9 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
10 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
11 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
12 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
13 K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
14) LAYOUT_60_ansi_split_bs_rshift( \
15 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
16 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
17 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
18 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
19 K40, K41, K42, K45, K48, K49, K4B, K4C \
20)
9 21
10#endif //CONFIG_USER_H \ No newline at end of file 22/* Color Map */
23#define CM( \
24 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
27 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
28 K40, K41, K42, K47, K4A, K4B, K4C, K4D \
29) { \
30 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
31 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
32 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
33 { K30, {}, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
34 { K40, K41, K42, {}, {}, {}, {}, K47, {}, {}, K4A, K4B, K4C, K4D } \
35 }
36
37#ifdef KEYBOARD_zeal60
38
39 #define ZEAL_RGB
40
41 /* enable/disable LEDs based on layout */
42 #undef USE_SPLIT_BACKSPACE
43 #define USE_SPLIT_BACKSPACE 1
44
45 #undef USE_SPLIT_LEFT_SHIFT
46 #define USE_SPLIT_LEFT_SHIFT 0
47
48 #undef USE_SPLIT_RIGHT_SHIFT
49 #define USE_SPLIT_RIGHT_SHIFT 1
50
51 #undef USE_7U_SPACEBAR
52 #define USE_7U_SPACEBAR 0
53
54 #undef USE_ISO_ENTER
55 #define USE_ISO_ENTER 0
56
57 #undef TAPPING_TOGGLE
58 #define TAPPING_TOGGLE 2
59
60 #undef BACKLIGHT_MOD_LAYER_3
61 #define BACKLIGHT_MOD_LAYER_3 RESET_LAYER
62
63 #undef BACKLIGHT_ALPHAS_MODS_ROW_0
64 #undef BACKLIGHT_ALPHAS_MODS_ROW_1
65 #undef BACKLIGHT_ALPHAS_MODS_ROW_2
66 #define BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
67 #define BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
68 #define BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
69
70#endif //KEYBOARD_zeal60
71
72#endif //CONFIG_USER_H
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
index 7eff99930..b5dc54492 100644
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
@@ -1,113 +1,89 @@
1#include QMK_KEYBOARD_H 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"
2 8
3enum layers { 9// from zeal_backlight.c
4 _BASE = 0, 10// we want to be able to set indicators for the spacebar stabs
5 _WORKMAN, 11// but they are not represented by a row/index.
6 _NORMAN, 12extern zeal_backlight_config g_config;
7 _DVORAK, 13void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led );
8 _COLMAK,
9 _GAME,
10 _NAV,
11 _ADJUST,
12 _RESET,
13};
14 14
15#define _______ KC_TRNS 15void set_backlight_defaults(void) {
16#define XXXXXXX KC_NO 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();
17 45
18#define NV_SPC LT(_NAV, KC_SPC) 46 solarized_t* S = &solarized;
19#define AD_GRV LT(_ADJUST, KC_GRV) 47 HSV alphas = S->base2;
20 48 HSV custom_color_map[MATRIX_ROWS][MATRIX_COLS] = CM(
21#define MO_NAV MO(_NAV) 49 S->red, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->red,
22#define MO_ADJ MO(_ADJUST) 50 S->orange, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->orange,
23#define MO_RST MO(_RESET) 51 S->green, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->green,
24#define TG_ADJ TG(_ADJUST) 52 S->blue, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->blue, S->blue,
25#define TG_GAME TG(_GAME) 53 S->violet, S->magenta, S->yellow, alphas, S->yellow, S->magenta, S->violet, S->green
26#define LY_QWER DF(_BASE) 54 );
27#define LY_WORK DF(_WORKMAN) 55 for (uint8_t row = 0; row < MATRIX_ROWS; ++row) {
28#define LY_NRMN DF(_NORMAN) 56 for (uint8_t col = 0; col < MATRIX_COLS; ++col) {
29#define LY_DVRK DF(_DVORAK) 57 backlight_set_key_color(row, col, custom_color_map[row][col]);
30#define LY_CLMK DF(_COLMAK)
31#define TG_NKRO MAGIC_TOGGLE_NKRO
32#define KC_PTT KC_F24
33
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 [_BASE] = KM(
36 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV,
37 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC,
38 KC_LCTL, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
39 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, AD_GRV ,
40 KC_LCTL, KC_LGUI, KC_LALT, NV_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ),
41 [_WORKMAN] = KM(
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______,
44 _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______,
45 _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______),
47 [_NORMAN] = KM(
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______,
50 _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______,
51 _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______,
52 _______, _______, _______, _______, _______, _______, _______, _______),
53 [_DVORAK] = KM(
54 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______,
55 _______, KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_SLSH, KC_EQL , _______,
56 _______, KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS, _______,
57 _______, KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , _______, _______,
58 _______, _______, _______, _______, _______, _______, _______, _______),
59 [_COLMAK] = KM(
60 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
61 _______, KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, _______, _______, _______,
62 _______, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , _______, _______,
63 _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______,
64 _______, _______, _______, _______, _______, _______, _______, _______),
65 [_GAME] = KM(
66 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV,
67 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC,
68 MO_NAV , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
69 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO_ADJ ,
70 KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ),
71 [_NAV] = KM(
72 KC_GRV , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
73 XXXXXXX, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU, KC_INS , KC_PGUP, KC_UP , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL ,
74 XXXXXXX, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , XXXXXXX, TG_ADJ ,
75 KC_LSFT, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_END , KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT, XXXXXXX,
76 KC_LCTL, KC_LGUI, KC_LALT, _______, KC_RALT, KC_RGUI, KC_RCTL, _______),
77 // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards)
78 [_ADJUST] = KM(
79 MO_RST , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
80 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
81 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJ ,
82 TG_NKRO, LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_GAME, XXXXXXX, XXXXXXX,
83 MO_RST , AG_NORM, AG_SWAP, BL_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS),
84 // To Reset hit FN + ` + Esc
85 [_RESET] = KM(
86 RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
87 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
88 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
89 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
90 RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
91};
92
93void matrix_scan_user(void) {
94 #ifdef KEYBOARD_gh60
95 if (IS_LAYER_ON(_GAME)) {
96 gh60_wasd_leds_on();
97 } else {
98 gh60_wasd_leds_off();
99 } 58 }
100 #endif 59 }
101} 60}
102 61
103void matrix_init_user(void) { 62bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
104 if (!eeconfig_is_enabled()) { 63 static uint8_t last_effect;
105 eeconfig_init(); 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;
106 } 85 }
107}
108 86
109uint32_t default_layer_state_set_kb(uint32_t state) { 87 return true;
110 // persist changes to default layers 88}
111 eeconfig_update_default_layer(state); 89#endif
112 return state;
113} \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/talljoe/config.h b/layouts/community/ortho_4x12/talljoe/config.h
new file mode 100644
index 000000000..c2a9567bb
--- /dev/null
+++ b/layouts/community/ortho_4x12/talljoe/config.h
@@ -0,0 +1,22 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include QMK_KEYBOARD_CONFIG_H
5#define SPACE_COUNT 3
6
7#define LAYOUT( \
8 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
9 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
10 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
11 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
12 K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
13) \
14LAYOUT_ortho_4x12( \
15 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, \
16 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
17 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
18 K40, K41, K0D, K42, K44, K45, K45, K46, K48, K49, K4B, K4C \
19)
20
21
22#endif //CONFIG_USER_H
diff --git a/layouts/community/ortho_4x12/talljoe/keymap.c b/layouts/community/ortho_4x12/talljoe/keymap.c
new file mode 100644
index 000000000..7812add81
--- /dev/null
+++ b/layouts/community/ortho_4x12/talljoe/keymap.c
@@ -0,0 +1 @@
// This space intentionally left blank
diff --git a/users/talljoe/config.h b/users/talljoe/config.h
new file mode 100644
index 000000000..15bbde6bc
--- /dev/null
+++ b/users/talljoe/config.h
@@ -0,0 +1,9 @@
1#ifndef USERSPACE_CONFIG_H
2#define USERSPACE_CONFIG_H
3
4#define PREVENT_STUCK_MODIFIERS
5#define IGNORE_MOD_TAP_INTERRUPT
6
7#define RESET_LAYER 15
8
9#endif // !USERSPACE_CONFIG_H
diff --git a/users/talljoe/readme.md b/users/talljoe/readme.md
new file mode 100644
index 000000000..e70c5c6dc
--- /dev/null
+++ b/users/talljoe/readme.md
@@ -0,0 +1,7 @@
1Copyright 2018 Joe Wasson <info@talljoe.com> @talljoe
2
3Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
5The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
7THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/users/talljoe/rules.mk b/users/talljoe/rules.mk
new file mode 100644
index 000000000..fa2314960
--- /dev/null
+++ b/users/talljoe/rules.mk
@@ -0,0 +1,3 @@
1SRC += talljoe.c
2
3EXTRAFLAGS+=-flto
diff --git a/users/talljoe/talljoe.c b/users/talljoe/talljoe.c
new file mode 100644
index 000000000..e49a3060d
--- /dev/null
+++ b/users/talljoe/talljoe.c
@@ -0,0 +1,124 @@
1#include QMK_KEYBOARD_H
2
3#include "talljoe.h"
4
5const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
6 [_BASE] = LAYOUT(
7 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_ESC,
8 KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T , KC_Y, KC_U, KC_I, KC_O, KC_P , KC_LBRC, KC_RBRC, KC_BSPC,
9 US_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G , KC_H, KC_J, KC_K, KC_L, KC_SCLN, US_QUOT, US_ENT ,
10 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO_ADJ ,
11 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC2, KC_SPC1, KC_SPC3, KC_RALT, KC_APP , KC_RCTL, KC_PTT ),
12 [_WORKMAN] = LAYOUT(
13 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
14 _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN, _______, _______, _______,
15 _______, KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , _______, _______,
16 _______, KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH, _______, _______,
17 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
18 [_NORMAN] = LAYOUT(
19 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
20 _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , KC_SCLN, _______, _______, _______,
21 _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______,
22 _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______,
23 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
24 [_DVORAK] = LAYOUT(
25 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______,
26 _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y , KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL , _______,
27 _______, KC_A, KC_O, KC_E, KC_U, KC_I , KC_D, KC_H, KC_T, KC_N, KC_S, US_MINS, _______,
28 _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X , KC_B, KC_M, KC_W, KC_V, KC_Z, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
30 [_COLMAK] = LAYOUT(
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, KC_Q, KC_W, KC_F, KC_P, KC_G , KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______, _______, _______,
33 _______, KC_A, KC_R, KC_S, KC_T, KC_D , KC_H, KC_N, KC_E, KC_I, KC_O , _______, _______,
34 _______, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
36
37#ifdef ENABLE_GAME_LAYER
38 [_GAME] = LAYOUT(
39 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV,
40 KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC,
41 MO_NAV , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
42 KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO_ADJ ,
43 KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_PTT ),
44#endif
45 [_NAV] = LAYOUT(
46 KC_GRV , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
47 KC_TAB , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU, KC_INS , KC_PGUP, KC_UP , KC_PGDN, KC_BTN1, KC_BTN2, KC_BTN3, KC_DEL ,
48 US_CAPS, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , KC_RCTL, TG_ADJ ,
49 KC_LSFT, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_END , KC_PGDN, KC_WBAK, KC_WFWD, KC_WREF, KC_RSFT, XXXXXXX,
50 KC_LCTL, KC_LGUI, KC_LALT, NV_SPC2, NV_SPC1, NV_SPC3, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ),
51 [_NUM] = LAYOUT(
52 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
53 KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, XXXXXXX, KC_DEL ,
54 US_CAPS, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_PPLS, KC_PENT, XXXXXXX,
55 KC_LSFT, KC_EQL, KC_PLUS, KC_BSLS, KC_PIPE, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_PAST, KC_PSLS, XXXXXXX,
56 KC_LCTL, KC_LGUI, KC_LALT, NM_SPC2, NM_SPC1, NM_SPC3, KC_PDOT, KC_PCMM, KC_RCTL, KC_PTT ),
57 // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards)
58 [_ADJUST] = LAYOUT(
59 MO_RST , FX(1) , FX(2) , FX(3) , FX(4) , FX(5) , FX(6) , FX(7) , FX(8) , FX(9) , FX(10) , BR_DEC , BR_INC , XXXXXXX, MO_RST ,
60 XXXXXXX, H1_INC , S1_INC , H2_INC , S2_INC , EF_INC , RGB_HUI, RGB_SAI, RGB_MOD, RGB_M_P, DFAULTS, RGB_VAD, RGB_VAI, KC_DEL ,
61 XXXXXXX, H1_DEC , S1_DEC , H2_DEC , S2_DEC , EF_DEC , RGB_HUD, RGB_SAD, RGB_RMOD,RGB_M_K, RGB_M_B, RGB_M_G, TG_ADJ ,
62 TG_NKRO, LY_QWER, LY_WORK, LY_NRMN, LY_DVRK, LY_CLMK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, KC_CAPS, XXXXXXX,
63 MO_RST , AG_NORM, AG_SWAP, XXXXXXX, BL_TOGG, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, TG_GAME),
64 // To Reset hit FN + ` + Esc
65 [_RESET] = LAYOUT(
66 RESET , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET ,
67 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
68 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
69 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
70 RESET , XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
71};
72
73void matrix_scan_user(void) {
74 #ifdef KEYBOARD_gh60
75 if (IS_LAYER_ON(_GAME)) {
76 gh60_wasd_leds_on();
77 } else {
78 gh60_wasd_leds_off();
79 }
80 #endif
81}
82
83void matrix_init_user(void) {
84 if (!eeconfig_is_enabled()) {
85 eeconfig_init();
86 }
87}
88
89uint32_t default_layer_state_set_kb(uint32_t state) {
90 // persist changes to default layers
91 eeconfig_update_default_layer(state);
92 return state;
93}
94
95__attribute__ ((weak))
96bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
97 return true;
98}
99
100bool process_record_user(uint16_t keycode, keyrecord_t *record) {
101// If console is enabled, it will print the matrix position and status of each key pressed
102#ifdef CONSOLE_ENABLE
103 xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed);
104#endif //CONSOLE_ENABLE
105
106 switch (keycode) {
107 case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
108 if (!record->event.pressed) {
109 SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
110
111 #if defined(BOOTLOADER_HALFKAY)
112 ":teensy"
113 #elif defined(BOOTLOADER_CATERINA)
114 ":avrdude"
115 #else
116 ":dfu"
117 #endif
118 SS_TAP(X_ENTER));
119 }
120 return false;
121 break;
122 }
123 return process_record_keymap(keycode, record);
124}
diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h
new file mode 100644
index 000000000..17e54af69
--- /dev/null
+++ b/users/talljoe/talljoe.h
@@ -0,0 +1,108 @@
1#ifndef USERSPACE
2#define USERSPACE
3
4#include "quantum.h"
5
6enum userspace_custom_keycodes {
7 KC_MAKE = SAFE_RANGE, // can always be here
8 DFAULTS,
9 TOGGLE_BACKLIGHT,
10 EFFECT,
11 EFFECT_END = EFFECT + 10
12};
13
14#ifndef RESET_LAYER
15#define RESET_LAYER 15
16#endif
17
18enum layers {
19 _BASE = 0,
20 _WORKMAN,
21 _NORMAN,
22 _DVORAK,
23 _COLMAK,
24 _GAME,
25 _NAV,
26 _NUM,
27 _ADJUST,
28 _RESET = RESET_LAYER,
29};
30
31#define _______ KC_TRNS
32#define XXXXXXX KC_NO
33
34#define MO_NAV MO(_NAV)
35#define MO_ADJ MO(_ADJUST)
36#define MO_RST MO(_RESET)
37#define TG_ADJ TG(_ADJUST)
38#ifdef ENABLE_GAME_LAYER
39 #define TG_GAME TG(_GAME)
40#else
41 #define TG_GAME KC_NO
42#endif
43#define LY_QWER DF(_BASE)
44#define LY_WORK DF(_WORKMAN)
45#define LY_NRMN DF(_NORMAN)
46#define LY_DVRK DF(_DVORAK)
47#define LY_CLMK DF(_COLMAK)
48#define TG_NKRO MAGIC_TOGGLE_NKRO
49#define KC_PTT KC_F24
50#define MS_MID KC_MS_BTN3
51#define FX(x) (EFFECT + x)
52
53#define US_CAPS CTL_T(KC_ESC)
54#define US_QUOT RCTL_T(KC_QUOT)
55#define US_MINS RCTL_T(KC_QUOT)
56#define US_ENT LT(_NUM, KC_ENT)
57
58#ifndef SPACE_COUNT
59 #define SPACE_COUNT 1
60#endif
61#if (SPACE_COUNT == 1)
62 #define KC_SPC1 LT(_NAV, KC_SPC)
63 #define KC_SPC2 XXXXXXX
64 #define KC_SPC3 XXXXXXX
65
66 #define NV_SPC1 _______
67 #define NV_SPC2 _______
68 #define NV_SPC3 _______
69
70 #define NM_SPC1 _______
71 #define NM_SPC2 _______
72 #define NM_SPC3 _______
73#elif (SPACE_COUNT == 3)
74 #define KC_SPC1 KC_BSPC
75 #define KC_SPC2 LT(_NUM,KC_ENT)
76 #define KC_SPC3 LT(_NAV,KC_SPC)
77
78 #define NV_SPC1 KC_SPC
79 #define NV_SPC2 C_S_T(KC_ENT)
80 #define NV_SPC3 KC_SPC
81
82 #define NM_SPC2 XXXXXXX
83 #define NM_SPC1 KC_SPC
84 #define NM_SPC3 KC_0
85#else
86 #error "Unsupported space count:" SPACE_COUNT
87#endif
88
89#ifndef ZEAL_RGB
90 #define BR_INC KC_NO
91 #define BR_DEC KC_NO
92 #define EF_INC KC_NO
93 #define EF_DEC KC_NO
94 #define ES_INC KC_NO
95 #define ES_DEC KC_NO
96 #define H1_INC KC_NO
97 #define H1_DEC KC_NO
98 #define S1_INC KC_NO
99 #define S1_DEC KC_NO
100 #define H2_INC KC_NO
101 #define H2_DEC KC_NO
102 #define S2_INC KC_NO
103 #define S2_DEC KC_NO
104 #define FN_MO13 KC_NO
105 #define FN_MO2 KC_NO
106#endif
107
108#endif