aboutsummaryrefslogtreecommitdiff
path: root/layouts/community
diff options
context:
space:
mode:
authorMat Greten <mgreten@gmail.com>2018-09-19 17:15:13 -0600
committerDrashna Jaelre <drashna@live.com>2018-09-19 16:15:13 -0700
commit14f691d2a749c6f4fd9bf39d219da1369747cd8d (patch)
treef12c25ee6fbbe96a267ee25f36c79a3f109d1374 /layouts/community
parentc23233f41ab9221577fc83bbae0a230452a38231 (diff)
downloadqmk_firmware-14f691d2a749c6f4fd9bf39d219da1369747cd8d.tar.gz
qmk_firmware-14f691d2a749c6f4fd9bf39d219da1369747cd8d.zip
Keymap: meagerfindings ergodox (#3920)
* initial commit * updating after review
Diffstat (limited to 'layouts/community')
-rw-r--r--layouts/community/ergodox/meagerfindings/README.md109
-rw-r--r--layouts/community/ergodox/meagerfindings/config.h26
-rw-r--r--layouts/community/ergodox/meagerfindings/keymap.c558
-rw-r--r--layouts/community/ergodox/meagerfindings/rules.mk3
4 files changed, 696 insertions, 0 deletions
diff --git a/layouts/community/ergodox/meagerfindings/README.md b/layouts/community/ergodox/meagerfindings/README.md
new file mode 100644
index 000000000..e7e4270db
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/README.md
@@ -0,0 +1,109 @@
1![Base](https://meagerfindings.com/assets/img/ergodox/base.png)
2
3# Meagerfinding's ErgoDox Layout
4
5<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
6
7- [Overview](#overview)
8- [Credit where credit is due](#credit-where-credit-is-due)
9- [Features](#features)
10 - [Tap/Hold Macro Keys](#taphold-macro-keys)
11 - [TapDance Keys](#tapdance-keys)
12- [Base Layer](#base-layer)
13 - [Things to note:](#things-to-note)
14- [Old Base Layer](#old-base-layer)
15- [Symbols Layer](#symbols-layer)
16- [Mouse & Media Keys Layer](#mouse-media-keys-layer)
17- [Markdown Layer](#markdown-layer)
18- [Arrow/Movements Layer](#arrowmovements-layer)
19- [Numpad Layer](#numpad-layer)
20
21<!-- /TOC -->
22
23## Overview
24
25The overall goals of this layout are to:
261. Use the Ergodox thumb clusters to eliminate pinky reach.
272. Place as many useful keys under the home rows as possible.
28
29I first decided to build an ErgoDox as I wanted to use my thumbs for more with the added ergonomic benefits of a split board and ortholinear layout. I knew my hands were hurting from the weird contortions of copying and pasting constantly on my Mac, but I had no idea how strained I really was until I started moving as many modifier keys to the thumb clusters.
30
31## Credit where credit is due
32
33The initial layout used created on the [ErgoDox EZ Configurator](https://ergodox-ez.com/pages/graphical-configurator). I went through 26+ iterations within the configurator prior to beginning my journey with QMK itself. Much of the dual function/layer keys are influenced by and adapted from the EZ Configurator.
34
35Many features in this layout are either directly inspired by or are adaptations of [Algernon's incredible ErgoDox layout](https://github.com/algernon/ergodox-layout). Specifically: TapDance and its usage, and the brilliant idea of using TapDance to pair down the four keys for parens, brackets, and curly braces into just 2 keys.
36
37## Features
38
39### Tap/Hold Macro Keys
40* `Paste/Paste Special` key sends Paste on tap and Paste Special when held.
41* `Screen/Video` key sends `||scrn` when tapped and `||video` when held
42 - [Typinator](http://www.ergonis.com/products/typinator/) expands `||scrn` into `(Screenshot: <CLIPBOARD CONTENTS>)`, and `||video` into `(Video: <CLIPBOARD CONTENTS>)`, the QMK macro then moves back to before the last paren, inserts a space and removes a space to create a hyperlink for use in Zendesk.
43* When tapped, `Todoist` toggles quick add window for a new Todoist task (`CMD + Shift + A`) and switches to Todoist when held
44* The RubyMine key opens RubyMine by triggering spotlight, typing out `Rubymine`, and submitting the enter key.
45* `Zendesk` triggers spotlight and then calls Typinator expansion to open my Zendesk Agent dashboard in Chrome.
46
47
48### TapDance Keys
49* `Copy/Cut` key copies on tap, cut's on two taps.
50* One tap on `Snagit` key = sends `Ctrl + Shift + C` which is Snagit's selector and two taps on `Snagit` key = `Cmd + Shift + Opt + 4`, OS X cropping screenshot that is copied to the clipboard only.
51* Tapping the `[{(`/`)}]` keys once yields `[` or `{` when the shift key is engaged, tapping them twice yields `(`.
52
53## Base Layer
54
55![Base](https://meagerfindings.com/assets/img/ergodox/base.png)
56
57The base layer retains the alphas from the QWERTY layout without any modifications.
58
59### Things to note:
60
61- The shift key is a One Shot Modifier key, meaning shift is not submitted when the key is tapped, instead, it only submits when you either tap it again, or on the next key press.
62 - There is no CAPSLOCK key designated as it is pretty comfortable to simply hold down shift in this layout and continue typing.
63- There is only one layer that you can fully switch to on this layout, the [Old Base layer](#old-base-layer). All other layers require holding a key to reach them. For the most part, the key that toggles a layer, will be on the opposite hand that will be typing with that layer.
64 - For example: the symbols layer is reached by holding down the enter key with your right thumb, and most of the symbols are located on the left hand board.
65
66
67## Old Base Layer
68
69![Old Base](https://meagerfindings.com/assets/img/ergodox/old_base.png)
70
71I am moving into a new position (software engineering) at work from a Support position. My hope is to use my F keys more often and write fewer emails. This is my old base layer, still easily accessible, as I'm not used to having F key's on my top row quite yet.
72
73## Symbols Layer
74
75![Symbols](https://meagerfindings.com/assets/img/ergodox/symbols.png)
76
77Holding down the `enter` key with your right thumb toggles the symbol layer.
78
79I've placed my most used symbols under the homerow. Granted, right now I mainly right emails/support ticket responses, so this home row may need to change as I transition to software engineering.
80
81## Mouse & Media Keys Layer
82
83![Mouse & Media](https://meagerfindings.com/assets/img/ergodox/mouse_media.png)
84
85Holding down the `:` key on with your right pinky toggles the mouse and media layer. Your left hand controls the mouse directions just in a similar fashion to the keys used in the [movement layer](#arrowmovements-layer).
86
87The right hand has a media controls under the homerow for quick muting/pausing.
88
89* `XKCD #1319` Key that ironically partially-automates accessing the link to [XKCD #1319](https://xkcd.com/1319/).
90
91## Markdown Layer
92
93![Markdown](https://meagerfindings.com/assets/img/ergodox/markdown.png)
94
95This layer places most common markdown symbols under the right hand. You can reach this layer by holding down the `F` key on your left hand.
96
97## Arrow/Movements Layer
98
99![Movement](https://meagerfindings.com/assets/img/ergodox/movement_arrows.png)
100
101Toggled by holding down the space key with the right thumb. This isn't vim like movement, nope, it's `WASD` but over one column. So I guess it's actually `ESDF` on the left hand and `IJKL` on the right hand to better line up with the columns offset/staggered columns on the Dox.
102
103## Numpad Layer
104
105![Numpad](https://meagerfindings.com/assets/img/ergodox/numpad.png)
106
107My right hand is pretty comfortable with tenkey number input so this is easily accessible by holding down backspace with the left thumb.
108
109Also, on the left hand, there is a tap to copy and hold to cut macro under the `D` key, and a tap to paste and a hold to paste special macro on the `F` key. I guess I'm to too lazy to move my fingers when copying/pasting...
diff --git a/layouts/community/ergodox/meagerfindings/config.h b/layouts/community/ergodox/meagerfindings/config.h
new file mode 100644
index 000000000..3d4f11b43
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/config.h
@@ -0,0 +1,26 @@
1#undef VENDOR_ID
2#define VENDOR_ID 0xFEED
3#undef PRODUCT_ID
4#define PRODUCT_ID 0x1307
5#undef DEVICE_VER
6#define DEVICE_VER 0x0001
7#undef MANUFACTURER
8#define MANUFACTURER meagerfindings
9#undef PRODUCT
10#define PRODUCT ErgoDox
11#undef DESCRIPTION
12#define DESCRIPTION meagerfindings firmware for Ergodox
13
14#define USB_MAX_POWER_CONSUMPTION 500
15
16#undef MOUSEKEY_INTERVAL
17#define MOUSEKEY_INTERVAL 20
18#undef MOUSEKEY_DELAY
19#define MOUSEKEY_DELAY 0
20#undef MOUSEKEY_TIME_TO_MAX
21#define MOUSEKEY_TIME_TO_MAX 18
22#undef MOUSEKEY_MAX_SPEED
23#define MOUSEKEY_MAX_SPEED 4
24
25#undef TAPPING_TERM
26#define TAPPING_TERM 200
diff --git a/layouts/community/ergodox/meagerfindings/keymap.c b/layouts/community/ergodox/meagerfindings/keymap.c
new file mode 100644
index 000000000..62504f966
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/keymap.c
@@ -0,0 +1,558 @@
1#include QMK_KEYBOARD_H
2#include "version.h"
3
4enum {
5 BASE = 0,
6 OLD_BASE,
7 SYMBL,
8 MEDIA,
9 MKDWN,
10 ARROWS,
11 NUM,
12};
13
14enum custom_keycodes {
15 PLACEHOLDER = SAFE_RANGE, // can always be here
16 EPRM,
17 VRSN,
18 MD_LINK,
19 XKCD,
20 DBLE_ZER0,
21 L_ID_0,
22 L_ID_1,
23 L_ID_2,
24 PAST_PS,
25 TODO,
26 RUBYMINE,
27 ZENDESK,
28 DBLE_ASTR,
29 TRPLE_GRAVE,
30 H_ONE,
31 H_TWO,
32 H_THREE,
33 H_FOUR,
34 H_FIVE,
35 M_LINK,
36 M_GREATER,
37 TD_COPY_CUT = 6,
38 TD_SNAGIT = 8,
39 TD_B_L_SEL = 10,
40 CT_LBP = 11,
41 CT_RBP = 12
42};
43
44//Redefine Key Names for Readaibilty
45#define XXXXXXX KC_NO
46#define SCRN_CLIPB LCTL(LGUI(LSFT(KC_4)))
47#define CHRM_L LALT(LGUI(KC_LEFT)) //Move left one tab in Chrome
48#define CHRM_R LALT(LGUI(KC_RIGHT)) //Move right one tab in Chrome
49#define S_CMD_S LGUI_T(KC_S) //`S` when typing `CMD` when held
50#define D_CMD_OPT LGUI_T(LALT_T(KC_D)) //`D` when typing `CMD + Opt` when held
51
52static uint16_t key_timer; //key timer for macros
53
54//Tap Dance Definitions
55qk_tap_dance_action_t tap_dance_actions[] = {
56 //Tap once for Copy, twice for Paste, three times for Cut.
57 [TD_COPY_CUT] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_C),LGUI(KC_X)),
58 //Tap once for Snagit, twice for Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
59 [TD_SNAGIT] = ACTION_TAP_DANCE_DOUBLE(LCTL(LSFT(KC_C)), LCTL(LGUI(LSFT(KC_4)))),
60 [CT_LBP] = ACTION_TAP_DANCE_DOUBLE (KC_LBRC, KC_LPRN),
61 [CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN)
62};
63
64const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65
66 /* Keymap 0: Basic layer
67 * ,--------------------------------------------------. ,--------------------------------------------------.
68 * | = | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | - |
69 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
70 * | Tab | Q | W | E | R | T | "> " | | []() | Y | U | I | O | P | \ |
71 * |--------+------+------+------+------+------| | | SCRN |------+------+------+------+------+--------|
72 * | Hyper | A |S /CMD|D/OPT | F /MD| G |------| |------| H | J |K/OPT |L /CMD| ; /L2| '/Hyper|
73 * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
74 * |Shft Tab|Z/Ctrl|X/Alt | C | V | B | [ { | | ] } | N | M | , | ./Alt|//Ctrl|CMD+SHFT|
75 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
76 * | ` |Zendsk|RBMINE|CMD+S | ToDo | | _ | | 00 | 00 |OLD BASE|
77 * `----------------------------------' `----------------------------------'
78 * ,-------------. ,--------------.
79 * | Esc | Home | |Layer?| Esc |
80 * ,------|------|------| |------+-------+------.
81 * | | | End | | Undo | | |
82 * |Shift |Backsp|------| |------| Return|Space/|
83 * | OSM | /NUM | DEL | | Ctrl | /SYML |Arrows|
84 * `--------------------' `---------------------'
85 *
86 *Copy/Cut key copies on tap, cut's on two taps.
87 *
88 *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector.
89 *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
90 */
91
92 [BASE] = LAYOUT_ergodox(
93 //left hand
94 KC_EQUAL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
95 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, M_GREATER,
96 OSM(MOD_HYPR), KC_A, S_CMD_S, ALT_T(KC_D), LT(MKDWN,KC_F), KC_G,
97 LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, TD(CT_LBP),
98 KC_GRAVE, ZENDESK, RUBYMINE, LGUI(KC_S), TODO,
99 KC_ESCAPE, KC_HOME,
100 KC_END,
101 OSM(MOD_LSFT), LT(NUM,KC_BSPACE), LT(MKDWN,KC_DELETE),
102
103 //right hand
104 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINUS,
105 MD_LINK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
106 KC_H, KC_J, ALT_T(KC_K), LGUI_T(KC_L), LT(MEDIA,KC_SCOLON), ALL_T(KC_QUOTE),
107 TD(CT_RBP), KC_N, KC_M, KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH), SCMD_T(_______),
108 LSFT(KC_MINUS), _______, DBLE_ZER0, DBLE_ZER0, TO(OLD_BASE),
109 L_ID_0, KC_ESCAPE,
110 LGUI(KC_Z),
111 LT(MEDIA,KC_LCTL), LT(SYMBL,KC_ENTER), LT(ARROWS,KC_SPACE)),
112
113 /* Keymap 1: OLD Base layer
114 * ,--------------------------------------------------. ,--------------------------------------------------.
115 * | = | 1 | 2 | 3 | 4 | 5 | []() | |Snagit| 6 | 7 | 8 | 9 | 0 | - |
116 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
117 * | Tab | Q | W | E | R | T | "> " | | []() | Y | U | I | O | P | \ |
118 * |--------+------+------+------+------+------| | | SCRN |------+------+------+------+------+--------|
119 * | Hyper | A |S /CMD| D | F | G |------| |------| H | J | K |L /CMD| ; /L2| '/Hyper|
120 * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
121 * |Shft Tab|Z/Ctrl|X/Alt | C | V | B | [ { | | ] } | N | M | , | ./Alt|//Ctrl|CMD+SHFT|
122 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
123 * | ` |Zendsk|RBMINE|CMD+S | ToDo | | _ | | 00 | 00 |ToBase|
124 * `----------------------------------' `----------------------------------'
125 * ,-------------. ,--------------.
126 * | Esc | Home | |Layer?| Esc |
127 * ,------|------|------| |------+-------+------.
128 * | | | End | | Undo | | |
129 * |Shift |Backsp|------| |------| Return|Space/|
130 * | OSM | /L5 | DEL | | Ctrl | /LT1 |Arrows|
131 * `--------------------' `---------------------'
132 *
133 *Copy/Cut key copies on tap, cut's on two taps.
134 *
135 *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector.
136 *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
137 */
138
139 [OLD_BASE] = LAYOUT_ergodox(
140 //left hand
141 KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, M_LINK,
142 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, M_GREATER,
143 OSM(MOD_HYPR), KC_A, S_CMD_S, D_CMD_OPT, LT(MKDWN,KC_F),KC_G,
144 LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, TD(CT_LBP),
145 KC_GRAVE, ZENDESK, RUBYMINE, LGUI(KC_S), TODO,
146 KC_ESCAPE, KC_HOME,
147 KC_END,
148 OSM(MOD_LSFT), LT(NUM,KC_BSPACE), LT(MKDWN,KC_DELETE),
149
150 //right hand
151 TD(TD_SNAGIT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
152 MD_LINK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
153 KC_H, KC_J, KC_K, LGUI_T(KC_L), LT(MEDIA,KC_SCOLON), ALL_T(KC_QUOTE),
154 TD(CT_RBP), KC_N, KC_M, KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH), SCMD_T(_______),
155 LSFT(KC_MINUS), _______, DBLE_ZER0, DBLE_ZER0, TO(BASE),
156 L_ID_0, KC_ESCAPE,
157 LGUI(KC_Z),
158 LT(MEDIA,KC_LCTL), LT(SYMBL,KC_ENTER), LT(ARROWS,KC_SPACE)),
159
160 /* Keymap 2: Symbol
161 * ,--------------------------------------------------. ,--------------------------------------------------.
162 * | | 1 | 2 | 3 | 4 | 5 | []() | |Snagit| 6 | 7 | 8 | 9 | 0 | - |
163 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
164 * | | | $ | & | ` | | | Cmd | | | | | * | | | |
165 * |--------+------+------+------+------+------| + K | | |------+------+------+------+------+--------|
166 * | | # | $ | & | ! | @ |------| |------| - | [ | ] | ( | ) | |
167 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
168 * | | % | ^ | | | ~ | | | | | | | | | |
169 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
170 * | | | | | | | | | | | |
171 * `----------------------------------' `----------------------------------'
172 * ,-------------. ,-------------.
173 * | | | |Layer?| |
174 * ,------|------|------| |------+------+------.
175 * | | | | | | | |
176 * | | |------| |------| | |
177 * | | | | | | | |
178 * `--------------------' `--------------------'
179 */
180 // SYMBOLS
181 [SYMBL] = LAYOUT_ergodox(
182 //left hand
183 _______, KC_1, KC_2, KC_3, KC_4, KC_5, M_LINK,
184 _______, _______, KC_DLR, KC_AMPR, KC_GRAVE, KC_PIPE, LGUI(KC_K),
185 _______, KC_HASH, KC_DLR, KC_AMPR, KC_EXLM, KC_AT,
186 _______, KC_PERC, KC_CIRC, _______, _______, KC_TILD, _______,
187 _______, _______, _______, _______, _______,
188 _______, _______,
189 _______,
190 _______, _______, _______,
191
192 //right hand
193 TD(TD_SNAGIT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
194 _______, _______, _______, KC_PAST, _______, _______, _______,
195 KC_MINUS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, _______,
196 _______, _______, _______, _______, _______, _______, _______,
197 _______, _______, _______, _______, _______,
198 L_ID_1, _______,
199 _______,
200 _______, _______, _______),
201
202 /* Keymap 3: Media and mouse keys
203 * ,--------------------------------------------------. ,--------------------------------------------------.
204 * | | | | | | | | | XKCD | | | | | | F15 |
205 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
206 * | | |Whl Up| MsUp |Whl Dn| | | | | | | | | | F14 |
207 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
208 * | |Ctl L |MsLeft|MsDown|MsRght| Ctl R|------| |------| | Mute | VolDn| VolUp| TL 2 | Play |
209 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
210 * | | |WHL L | |Whl R | | | | | | | Prev | Next | | |
211 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
212 * | | | | | | | Mute | | | | |
213 * `----------------------------------' `----------------------------------'
214 * ,-------------. ,-------------.
215 * | | | |LAYER?| |
216 * ,------|------|------| |------+------+------.
217 * | Left |Right | | | |Copy/ | paste|
218 * | Click|Click |------| |------| cut |/paste|
219 * | | | | | | |spcial|
220 * `--------------------' `--------------------'
221 */
222 // MEDIA AND MOUSE
223
224 [MEDIA] = LAYOUT_ergodox(
225 //left hand
226 _______, _______, _______, _______, _______, _______, _______,
227 _______, _______, KC_MS_WH_UP, KC_MS_UP, KC_MS_WH_DOWN, _______, _______,
228 _______, LCTL(KC_LEFT), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, RCTL(KC_RIGHT),
229 XXXXXXX, _______, KC_MS_WH_LEFT, _______, KC_MS_WH_RIGHT, _______, _______,
230 _______, _______, _______, _______, _______,
231 _______, _______,
232 _______,
233 KC_MS_BTN1, KC_MS_BTN2, _______,
234
235 //right hand
236 XKCD, _______, _______, _______, _______, _______, KC_F15,
237 _______, _______, _______, _______, _______, _______, KC_F14,
238 _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _______, KC_MEDIA_PLAY_PAUSE,
239 _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, _______, XXXXXXX,
240 _______, _______, _______, _______, _______,
241 L_ID_2, _______,
242 _______,
243 _______, TD(TD_COPY_CUT), PAST_PS),
244
245 /* Keymap 4: Markdown Symbols
246 * ,--------------------------------------------------. ,--------------------------------------------------.
247 * | | | | | | | | |SCRNCL| | | | | | |
248 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
249 * | | | | | | | | | | | ``` | ** | _ | ` | |
250 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
251 * | | | | | TL MD| |------| |------| - | [ | ] | ( | ) | |
252 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
253 * | | | | | | | | | | # | ## | ### | #### | #####| |
254 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
255 * | | | | | | | | | | | |
256 * `----------------------------------' `----------------------------------'
257 * ,-------------. ,-------------.
258 * | | | |Layer?| |
259 * ,------|------|------| |------+------+------.
260 * | | | | | | | |
261 * | | |------| |------| | |
262 * | | | | | | | |
263 * `--------------------' `--------------------'
264 * Sc cp = OS X cropping screenshot that is copied to the clipboard only.
265 */
266 // Markdown Layer
267 [MKDWN] = LAYOUT_ergodox(
268 //left hand
269 _______, _______, _______, _______, _______, _______, _______,
270 _______, _______, _______, _______, _______, _______, _______,
271 _______, _______, _______, _______, _______, _______,
272 _______, _______, _______, _______, _______, _______, _______,
273 _______, _______, _______, _______, _______,
274 _______, _______,
275 _______,
276 _______, _______, _______,
277
278 //right hand
279 SCRN_CLIPB, _______, _______, _______, _______, _______, _______,
280 _______, _______, TRPLE_GRAVE, DBLE_ASTR,LSFT(KC_MINUS), KC_GRAVE, _______,
281 KC_MINUS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, _______,
282 _______, H_ONE, H_TWO, H_THREE, H_FOUR, H_FIVE, _______,
283 _______, _______, _______, _______, _______,
284 _______, _______,
285 _______,
286 _______, _______, _______),
287
288 /* Keymap 5: Arrows
289 *
290 * ,--------------------------------------------------. ,--------------------------------------------------.
291 * | RESET | | | | | | | | | | | | | | |
292 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
293 * | | | Opt+L| Up |Opt+R | | | | | | Opt+L| Up |Opt+R | | |
294 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
295 * | |Ctrl+L| Left | Dn | Right|Ctrl+R|------| |------|Ctrl+L| Left | Dn | Right|Ctrl+R| |
296 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
297 * | | | | | | | | | | | | | | | |
298 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
299 * | | | | | | | | | | | |
300 * `----------------------------------' `----------------------------------'
301 * ,-------------. ,-------------.
302 * | | | | | |
303 * ,------|------|------| |------+------+------.
304 * | | | | | | | |
305 * | | |------| |------| | |
306 * | | | | | | | |
307 * `--------------------' `--------------------'
308 *
309 *
310 *
311 */
312 // Movement Layer
313
314 [ARROWS] = LAYOUT_ergodox(
315 //left hand
316 RESET, _______, _______, _______, _______, _______, _______,
317 _______, _______, CHRM_L, KC_UP, CHRM_R, _______, _______,
318 _______,LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
319 _______, _______, _______, _______, _______, _______, _______,
320 _______, _______, _______, _______, _______,
321 _______, _______,
322 _______,
323 _______, _______, _______,
324 //right hand
325 _______, _______, _______, _______, _______, _______, _______,
326 _______, _______, CHRM_L, KC_UP, CHRM_R, _______, _______,
327 LCTL(KC_LEFT), KC_LEFT, KC_DOWN, LGUI_T(KC_RIGHT), LCTL(KC_RIGHT), _______,
328 _______, _______, _______, _______, _______, _______, _______,
329 _______, _______, _______, _______, _______,
330 _______, _______,
331 _______,
332 _______, _______, _______),
333
334 /* Keymap 6: Numpad
335 * ,--------------------------------------------------. ,--------------------------------------------------.
336 * | | | | | | | | | | | | | | | |
337 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
338 * | | | | | | | | | | = | 7 | 8 | 9 | * | |
339 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
340 * | | | |Cp/Cut|paste | |------| |------| + | 4 | 5 | 6 | + | |
341 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
342 * | | | | | | | | | | - | 1 | 2 | 3 | / | |
343 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
344 * | | | | | | | 0 | . | 00 | 00 | Enter|
345 * `----------------------------------' `----------------------------------'
346 * ,-------------. ,-------------.
347 * | | | | | |
348 * ,------|------|------| |------+------+------.
349 * | | | | | |Nupmad| |
350 * | | |------| |------|Enter | |
351 * | | | | | | | |
352 * `--------------------' `--------------------'
353 */
354 // Numpad Layer
355 [NUM] = LAYOUT_ergodox(
356 //left hand
357 _______, _______, _______, _______, _______, _______, _______,
358 _______, _______, _______, _______, _______, _______, _______,
359 _______, _______, _______, TD(TD_COPY_CUT), PAST_PS, _______,
360 _______, _______, _______, _______, _______, _______, _______,
361 _______, _______, _______, _______, _______,
362 _______, _______,
363 _______,
364 _______, _______, _______,
365
366 //right hand
367 _______, _______, _______, _______, _______, _______, _______,
368 _______, KC_EQUAL, KC_7, KC_8, KC_9, KC_ASTR, _______,
369 KC_PLUS, KC_4, KC_5, KC_6, KC_PLUS, _______,
370 _______, KC_MINUS, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
371 KC_KP_0, KC_DOT, DBLE_ZER0, DBLE_ZER0, KC_KP_ENTER,
372 _______, _______,
373 _______,
374 _______, KC_PENT, _______),
375};
376
377bool process_record_user(uint16_t keycode, keyrecord_t *record) {
378
379 switch (keycode) {
380 case EPRM:
381 if (record->event.pressed) {
382 eeconfig_init();
383 }
384 return false;
385 break;
386
387 case VRSN:
388 if (record->event.pressed) {
389 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
390 }
391 return false;
392 break;
393
394 case MD_LINK:
395 if (record->event.pressed){
396 key_timer = timer_read();
397 } else {
398 if (timer_elapsed(key_timer) > 150) {
399 SEND_STRING ("([Video](");
400 } else {
401 SEND_STRING ("([Screenshot](");
402 }
403 SEND_STRING(SS_LGUI("v"));
404 SEND_STRING("))");
405 }
406 break;
407
408 case XKCD:
409 if (record->event.pressed) {
410 SEND_STRING ("https://xkcd.com/1319/");
411 }
412 break;
413
414 case DBLE_ZER0:
415 if (record->event.pressed){
416 SEND_STRING ("00");
417 }
418 break;
419
420 case DBLE_ASTR:
421 if (record->event.pressed){
422 SEND_STRING ("**");
423 SEND_STRING ("**");
424 SEND_STRING (SS_TAP(X_LEFT));
425 SEND_STRING (SS_TAP(X_LEFT));
426 }
427 break;
428
429 case TRPLE_GRAVE:
430 if (record->event.pressed){
431 SEND_STRING ("```");
432 }
433 break;
434
435 case L_ID_0:
436 if (record->event.pressed) {
437 SEND_STRING (SS_LGUI(" "));
438 SEND_STRING ("Layer 0: Base");
439 }
440 break;
441
442 case L_ID_1:
443 if (record->event.pressed) {
444 SEND_STRING (SS_LGUI(" "));
445 SEND_STRING ("Layer 1: Symbols");
446 }
447 break;
448
449 case L_ID_2:
450 if (record->event.pressed) {
451 SEND_STRING (SS_LGUI(" "));
452 SEND_STRING ("Layer 2: Media & Mousekeys");
453 }
454 break;
455
456 case PAST_PS:
457 if (record->event.pressed) {
458 key_timer = timer_read();
459 } else {
460 if (timer_elapsed(key_timer) > 150) {
461 SEND_STRING (SS_LGUI("V")); // Paste special
462 } else {
463 SEND_STRING (SS_LGUI("v")); // Paste
464 }
465 }
466 break;
467
468 case TODO:
469 if (record->event.pressed) {
470 key_timer = timer_read();
471 } else {
472 if (timer_elapsed(key_timer) > 150) { //switch to Todoist when held and released
473 SEND_STRING (SS_LGUI(" "));
474 SEND_STRING ("Todoist");
475 SEND_STRING (SS_TAP(X_ENTER));
476 } else {
477 SEND_STRING (SS_LGUI(SS_LCTRL("a"))); //macro to open Todoist new task dialog
478 }
479 }
480 break;
481
482 case RUBYMINE:
483 if (record->event.pressed){
484 SEND_STRING (SS_LGUI(" "));
485 SEND_STRING ("RUBYMINE");
486 SEND_STRING (SS_TAP(X_ENTER));
487 }
488 break;
489
490 case ZENDESK:
491 if (record->event.pressed){
492 SEND_STRING (SS_LGUI(" "));
493 SEND_STRING ("||ZEN");
494 SEND_STRING (SS_TAP(X_ENTER));
495 }
496 break;
497
498 case H_ONE:
499 if (record->event.pressed){
500 SEND_STRING ("# ");
501 }
502 break;
503
504 case H_TWO:
505 if (record->event.pressed){
506 SEND_STRING ("## ");
507 }
508 break;
509
510 case H_THREE:
511 if (record->event.pressed){
512 SEND_STRING ("### ");
513 }
514 break;
515
516 case H_FOUR:
517 if (record->event.pressed){
518 SEND_STRING ("#### ");
519 }
520 break;
521
522 case H_FIVE:
523 if (record->event.pressed){
524 SEND_STRING ("##### ");
525 }
526 break;
527 case M_LINK:
528 if (record->event.pressed){
529 SEND_STRING ("[]()");
530 }
531 break;
532 case M_GREATER:
533 if (record->event.pressed){
534 SEND_STRING ("> ");
535 }
536 break;
537 }
538 return true;
539};
540
541void matrix_scan_user(void) {
542 uint8_t layer = biton32(layer_state);
543
544 ergodox_board_led_off();
545 ergodox_right_led_1_off();
546 ergodox_right_led_2_off();
547 ergodox_right_led_3_off();
548 switch (layer) {
549 case 1:
550 ergodox_right_led_1_on();
551 break;
552 case 2:
553 ergodox_right_led_2_on();
554 break;
555 default:
556 break;
557 }
558};
diff --git a/layouts/community/ergodox/meagerfindings/rules.mk b/layouts/community/ergodox/meagerfindings/rules.mk
new file mode 100644
index 000000000..c775e1f6d
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/rules.mk
@@ -0,0 +1,3 @@
1COMMAND_ENABLE = no
2TAP_DANCE_ENABLE = yes
3FORCE_NKRO = yes