aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/ergodox
diff options
context:
space:
mode:
authorJames Kay <twey@twey.co.uk>2018-03-23 23:00:36 +0000
committerDrashna Jaelre <drashna@live.com>2018-03-23 16:00:36 -0700
commit4cf4fe80ecbfad1b5be2afa93f540793b01b7bba (patch)
tree63c803c3e44955f41c5a808d51567a2fd8700170 /layouts/community/ergodox
parentec5cc02bf01bc7094190024db84a686a82f2aa14 (diff)
downloadqmk_firmware-4cf4fe80ecbfad1b5be2afa93f540793b01b7bba.tar.gz
qmk_firmware-4cf4fe80ecbfad1b5be2afa93f540793b01b7bba.zip
Just personal layout tweaks :) (#2557)
* More ergonomic mousekeys * integrate some recent hardware changes by changing the Plover keymap * use TX Bolt support instead of Plover toggles * switching to steno is no longer as intrusive, so this can move back to BASE
Diffstat (limited to 'layouts/community/ergodox')
-rw-r--r--layouts/community/ergodox/twey/keymap.c102
-rw-r--r--layouts/community/ergodox/twey/readme.md15
-rw-r--r--layouts/community/ergodox/twey/rules.mk4
3 files changed, 68 insertions, 53 deletions
diff --git a/layouts/community/ergodox/twey/keymap.c b/layouts/community/ergodox/twey/keymap.c
index 70152864b..9ee318a5d 100644
--- a/layouts/community/ergodox/twey/keymap.c
+++ b/layouts/community/ergodox/twey/keymap.c
@@ -1,7 +1,7 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2#include "debug.h" 2#include "debug.h"
3#include "action_layer.h" 3#include "action_layer.h"
4#include "keymap_plover.h" 4#include "keymap_steno.h"
5 5
6#define BASE 0 // default layer 6#define BASE 0 // default layer
7#define SYMB 1 // symbols 7#define SYMB 1 // symbols
@@ -35,14 +35,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35// Otherwise, it needs KC_* 35// Otherwise, it needs KC_*
36[BASE] = LAYOUT_ergodox( // layer 0 : default 36[BASE] = LAYOUT_ergodox( // layer 0 : default
37 // left hand 37 // left hand
38 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, M(0), 38 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(STEN),
39 KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, 39 KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC,
40 KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, 40 KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
41 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB, 41 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB,
42 MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT, 42 MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT,
43 KC_PGUP,KC_PGDN, 43 KC_PGUP,KC_PGDN,
44 KC_NO, 44 KC_NO,
45 KC_LALT,KC_ENT ,KC_LGUI, 45 KC_LALT,KC_ENT ,M(0),
46 // right hand 46 // right hand
47 KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, 47 KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
48 KC_CAPS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, 48 KC_CAPS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
@@ -96,37 +96,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
96 KC_TRNS, KC_TRNS, KC_TRNS 96 KC_TRNS, KC_TRNS, KC_TRNS
97), 97),
98 98
99/* Keymap 2: Steno for Plover
100 *
101 * ,---------------------------------------------------. ,---------------------------------------------------.
102 * | | | # | # | # | # | | | | # | # | # | # | # | |
103 * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------|
104 * | | | S | T | P | H | * | | * | F | P | L | T | D | |
105 * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------|
106 * | | | S | K | W | R |------| |-------| R | B | G | S | Z | |
107 * |--------+------+------+------+-------+------| * | | * |------+------+------+------+------+--------|
108 * | | | | | | | | | | | | | | | |
109 * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------'
110 * | L1 | | | Left | Right | | Up | Down | | | L1 |
111 * `-----------------------------------' `----------------------------------'
112 * ,--------------. ,---------------.
113 * | | | | | |
114 * ,------|-------|------| |-------+-------+------.
115 * | | | | | | | |
116 * | A | O |------| |-------| E | U |
117 * | | | | | | | |
118 * `---------------------' `----------------------'
119 */
120
121
99[STEN] = LAYOUT_ergodox( // layout: layer 2: Steno for Plover 122[STEN] = LAYOUT_ergodox( // layout: layer 2: Steno for Plover
100 // left hand 123 // left hand
101 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, 124 KC_NO, STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, KC_TRNS,
102 KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, 125 KC_NO, KC_NO, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1,
103 KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, 126 KC_NO, KC_NO, STN_S2, STN_KL, STN_WL, STN_RL,
104 KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, 127 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, STN_ST2,
105 KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS, 128 KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS,
106 KC_NO, KC_NO, 129 KC_NO, KC_NO,
107 KC_NO, 130 KC_NO,
108 PV_A, PV_O, KC_NO, 131 STN_A, STN_O, KC_TRNS,
109 // right hand 132 // right hand
110 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 133 KC_NO, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, KC_NO,
111 PV_STAR, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, 134 STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, KC_NO,
112 PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, 135 STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, KC_NO,
113 PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, 136 STN_ST4, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
114 KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, 137 KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS,
115 KC_NO, KC_NO, 138 KC_NO, KC_NO,
116 KC_NO, 139 KC_NO,
117 KC_TRNS,PV_E, PV_U 140 KC_TRNS, STN_E, STN_U
118), 141),
119 142
120/* Keymap 3: Media and mouse keys 143/* Keymap 3: Media and mouse keys
121 * 144 *
122 * ,--------------------------------------------------. ,--------------------------------------------------. 145 * ,--------------------------------------------------. ,--------------------------------------------------.
123 * | | | | | | | | | | | | | | | | 146 * | | | | | | | STEN | | | | | | | | |
124 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 147 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
125 * | | | | MsUp | | | | | | | Back | | Frwd | | | 148 * | | | | MsUp | | | | | | | Back | | Frwd | | |
126 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 149 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
127 * | | |MsLeft|MsDown|MsRght| |------| |------| | Prev | Play | Next | | | 150 * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Mclk | Rclk | | |
128 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 151 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
129 * | | | | | | | | | | | | | | | | 152 * | | | | | | | | | | | Prev | Play | Next | | |
130 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 153 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
131 * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | 154 * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
132 * `----------------------------------' `----------------------------------' 155 * `----------------------------------' `----------------------------------'
@@ -144,15 +167,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
144 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, 167 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
145 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, 168 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
146 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 169 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
147 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, 170 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
148 KC_TRNS, KC_TRNS, 171 KC_TRNS, KC_TRNS,
149 KC_TRNS, 172 KC_TRNS,
150 KC_TRNS, KC_TRNS, KC_TRNS, 173 KC_TRNS, KC_TRNS, KC_TRNS,
151 // right hand 174 // right hand
152 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 175 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
153 KC_TRNS, KC_TRNS, KC_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS, 176 KC_TRNS, KC_TRNS, KC_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS,
154 KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, 177 KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS,
155 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 178 KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,
156 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, 179 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
157 KC_TRNS, KC_TRNS, 180 KC_TRNS, KC_TRNS,
158 KC_TRNS, 181 KC_TRNS,
@@ -164,43 +187,34 @@ const uint16_t PROGMEM fn_actions[] = {
164 [1] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN1 - Momentary Layer 3 (Media) 187 [1] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN1 - Momentary Layer 3 (Media)
165}; 188};
166 189
167void toggle_steno(int pressed) 190// press `key`, but deactivate `layer` whilst it's held
191void press_without(int pressed, int key, uint8_t layer)
168{ 192{
169 uint8_t layer = biton32(layer_state); 193 static bool was_on;
170
171 if (pressed) { 194 if (pressed) {
172 if (layer != STEN) layer_on(STEN); else layer_off(STEN); 195 was_on = layer_state_is(layer);
173 196 layer_off(layer);
174 register_code(PV_LP); 197 register_code(key);
175 register_code(PV_LH);
176 register_code(PV_LR);
177 register_code(PV_O);
178 register_code(PV_RL);
179 register_code(PV_RG);
180 } else { 198 } else {
181 unregister_code(PV_LP); 199 if (was_on) layer_on(layer);
182 unregister_code(PV_LH); 200 unregister_code(key);
183 unregister_code(PV_LR);
184 unregister_code(PV_O);
185 unregister_code(PV_RL);
186 unregister_code(PV_RG);
187 } 201 }
188} 202}
189 203
190const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 204const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
191{ 205{
192 // MACRODOWN only works in this function 206 // MACRODOWN only works in this function
193 switch(id) { 207 switch(id) {
194 case 0: 208 case 0:
195 toggle_steno(record->event.pressed); 209 press_without(record->event.pressed, KC_LGUI, STEN);
196 break; 210 break;
197 } 211 }
198 return MACRO_NONE; 212 return MACRO_NONE;
199}; 213};
200 214
201// Runs just one time when the keyboard initializes. 215// Runs just one time when the keyboard initializes.
202void matrix_init_user(void) { 216void matrix_init_user(void) {
203 217 steno_set_mode(STENO_MODE_BOLT);
204}; 218};
205 219
206// Runs constantly in the background, in a loop. 220// Runs constantly in the background, in a loop.
@@ -209,7 +223,7 @@ void matrix_scan_user(void) {
209 uint32_t layer0 = layer_state & (1UL << 0), 223 uint32_t layer0 = layer_state & (1UL << 0),
210 layer1 = layer_state & (1UL << 1), 224 layer1 = layer_state & (1UL << 1),
211 layer2 = layer_state & (1UL << 2), 225 layer2 = layer_state & (1UL << 2),
212 layer3 = layer_state & (1UL << 3); 226 layer3 = layer_state & (1UL << 3);
213 227
214 ergodox_board_led_off(); 228 ergodox_board_led_off();
215 ergodox_right_led_1_off(); 229 ergodox_right_led_1_off();
diff --git a/layouts/community/ergodox/twey/readme.md b/layouts/community/ergodox/twey/readme.md
index 979e4261e..52190cb1f 100644
--- a/layouts/community/ergodox/twey/readme.md
+++ b/layouts/community/ergodox/twey/readme.md
@@ -6,12 +6,9 @@
6- Layer 2: Plover-oriented stenography layer. 6- Layer 2: Plover-oriented stenography layer.
7- Layer 3: Extended media/mouse layout. 7- Layer 3: Extended media/mouse layout.
8 8
9## Unusual features 9## Hardware notes
10The Plover key (top right key on the left half) also sends my Plover 10The default Ergodox EZ keycaps are delightfully staggered, which seems
11‘toggle’ chord (SH-FT) when pressed, as well as toggling the steno 11like it would make them terrible for steno, but in fact flipping the
12layer, so you can toggle between steno and typing modes with a single 12top row (`QWERTYUIOP`) and the middle thumb keys upside down brings
13keypress. 13them close enough together to give a rather pleasant steno experience,
14 14without interfering much with standard Dvorak typing.
15If you want to use this feature, you'll need to add the
16`commands.json` dictionary to your Plover dictionaries, or define the
17toggle stroke (`PHROLG`) yourself.
diff --git a/layouts/community/ergodox/twey/rules.mk b/layouts/community/ergodox/twey/rules.mk
new file mode 100644
index 000000000..87af2f760
--- /dev/null
+++ b/layouts/community/ergodox/twey/rules.mk
@@ -0,0 +1,4 @@
1VIRTSER_ENABLE = yes
2STENO_ENABLE = yes
3MOUSEKEY_ENABLE = no
4FORCE_NKRO = yes