aboutsummaryrefslogtreecommitdiff
path: root/users/talljoe
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 /users/talljoe
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.
Diffstat (limited to 'users/talljoe')
-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
5 files changed, 251 insertions, 0 deletions
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