parent
							
								
									c23233f41a
								
							
						
					
					
						commit
						14f691d2a7
					
				| @ -0,0 +1,109 @@ | ||||
|  | ||||
| 
 | ||||
| # Meagerfinding's ErgoDox Layout | ||||
| 
 | ||||
| <!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 --> | ||||
| 
 | ||||
| - [Overview](#overview) | ||||
| - [Credit where credit is due](#credit-where-credit-is-due) | ||||
| - [Features](#features) | ||||
| 	- [Tap/Hold Macro Keys](#taphold-macro-keys) | ||||
| 	- [TapDance Keys](#tapdance-keys) | ||||
| - [Base Layer](#base-layer) | ||||
| 	- [Things to note:](#things-to-note) | ||||
| - [Old Base Layer](#old-base-layer) | ||||
| - [Symbols Layer](#symbols-layer) | ||||
| - [Mouse & Media Keys Layer](#mouse-media-keys-layer) | ||||
| - [Markdown Layer](#markdown-layer) | ||||
| - [Arrow/Movements Layer](#arrowmovements-layer) | ||||
| - [Numpad Layer](#numpad-layer) | ||||
| 
 | ||||
| <!-- /TOC --> | ||||
| 
 | ||||
| ## Overview | ||||
| 
 | ||||
| The overall goals of this layout are to: | ||||
| 1. Use the Ergodox thumb clusters to eliminate pinky reach. | ||||
| 2. Place as many useful keys under the home rows as possible. | ||||
| 
 | ||||
| I 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. | ||||
| 
 | ||||
| ## Credit where credit is due | ||||
| 
 | ||||
| The 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. | ||||
| 
 | ||||
| Many 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. | ||||
| 
 | ||||
| ## Features | ||||
| 
 | ||||
| ### Tap/Hold Macro Keys | ||||
| * `Paste/Paste Special` key sends Paste on tap and Paste Special when held. | ||||
| * `Screen/Video` key sends `||scrn` when tapped and `||video` when held | ||||
|   - [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. | ||||
| * When tapped, `Todoist` toggles quick add window for a new Todoist task (`CMD + Shift + A`) and switches to Todoist when held | ||||
| * The RubyMine key opens RubyMine by triggering spotlight, typing out `Rubymine`, and submitting the enter key. | ||||
| * `Zendesk` triggers spotlight and then calls Typinator expansion to open my Zendesk Agent dashboard in Chrome. | ||||
| 
 | ||||
| 
 | ||||
| ### TapDance Keys | ||||
| * `Copy/Cut` key copies on tap, cut's on two taps. | ||||
| * 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. | ||||
| * Tapping the `[{(`/`)}]` keys once yields `[` or `{` when the shift key is engaged, tapping them twice yields `(`. | ||||
| 
 | ||||
| ## Base Layer | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| The base layer retains the alphas from the QWERTY layout without any modifications. | ||||
| 
 | ||||
| ### Things to note: | ||||
| 
 | ||||
| - 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. | ||||
|   - There is no CAPSLOCK key designated as it is pretty comfortable to simply hold down shift in this layout and continue typing. | ||||
| - 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. | ||||
|   - 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. | ||||
| 
 | ||||
| 
 | ||||
| ## Old Base Layer | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| I 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. | ||||
| 
 | ||||
| ## Symbols Layer | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| Holding down the `enter` key with your right thumb toggles the symbol layer. | ||||
| 
 | ||||
| I'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. | ||||
| 
 | ||||
| ## Mouse & Media Keys Layer | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| Holding 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). | ||||
| 
 | ||||
| The right hand has a media controls under the homerow for quick muting/pausing. | ||||
| 
 | ||||
| * `XKCD #1319` Key that ironically partially-automates accessing the link to [XKCD #1319](https://xkcd.com/1319/). | ||||
| 
 | ||||
| ## Markdown Layer | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| This 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. | ||||
| 
 | ||||
| ## Arrow/Movements Layer | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| Toggled 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. | ||||
| 
 | ||||
| ## Numpad Layer | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| My right hand is pretty comfortable with tenkey number input so this is easily accessible by holding down backspace with the left thumb. | ||||
| 
 | ||||
| Also, 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... | ||||
| @ -0,0 +1,26 @@ | ||||
| #undef VENDOR_ID | ||||
| #define VENDOR_ID       0xFEED | ||||
| #undef PRODUCT_ID | ||||
| #define PRODUCT_ID      0x1307 | ||||
| #undef DEVICE_VER | ||||
| #define DEVICE_VER      0x0001 | ||||
| #undef MANUFACTURER | ||||
| #define MANUFACTURER    meagerfindings | ||||
| #undef PRODUCT | ||||
| #define PRODUCT         ErgoDox | ||||
| #undef DESCRIPTION | ||||
| #define DESCRIPTION     meagerfindings firmware for Ergodox | ||||
| 
 | ||||
| #define USB_MAX_POWER_CONSUMPTION 500 | ||||
| 
 | ||||
| #undef MOUSEKEY_INTERVAL | ||||
| #define MOUSEKEY_INTERVAL       20 | ||||
| #undef MOUSEKEY_DELAY | ||||
| #define MOUSEKEY_DELAY          0 | ||||
| #undef MOUSEKEY_TIME_TO_MAX | ||||
| #define MOUSEKEY_TIME_TO_MAX    18 | ||||
| #undef MOUSEKEY_MAX_SPEED | ||||
| #define MOUSEKEY_MAX_SPEED      4 | ||||
| 
 | ||||
| #undef TAPPING_TERM | ||||
| #define TAPPING_TERM 200 | ||||
| @ -0,0 +1,558 @@ | ||||
| #include QMK_KEYBOARD_H | ||||
| #include "version.h" | ||||
| 
 | ||||
| enum { | ||||
|   BASE = 0, | ||||
|   OLD_BASE, | ||||
|   SYMBL, | ||||
|   MEDIA, | ||||
|   MKDWN, | ||||
|   ARROWS, | ||||
|   NUM, | ||||
| }; | ||||
| 
 | ||||
| enum custom_keycodes { | ||||
|   PLACEHOLDER = SAFE_RANGE, // can always be here
 | ||||
|   EPRM, | ||||
|   VRSN, | ||||
|   MD_LINK, | ||||
|   XKCD, | ||||
|   DBLE_ZER0, | ||||
|   L_ID_0, | ||||
|   L_ID_1, | ||||
|   L_ID_2, | ||||
|   PAST_PS, | ||||
|   TODO, | ||||
|   RUBYMINE, | ||||
|   ZENDESK, | ||||
|   DBLE_ASTR, | ||||
|   TRPLE_GRAVE, | ||||
|   H_ONE, | ||||
|   H_TWO, | ||||
|   H_THREE, | ||||
|   H_FOUR, | ||||
|   H_FIVE, | ||||
|   M_LINK, | ||||
|   M_GREATER, | ||||
|   TD_COPY_CUT = 6, | ||||
|   TD_SNAGIT = 8, | ||||
|   TD_B_L_SEL = 10, | ||||
|   CT_LBP = 11, | ||||
|   CT_RBP = 12 | ||||
| }; | ||||
| 
 | ||||
| //Redefine Key Names for Readaibilty
 | ||||
| #define XXXXXXX KC_NO | ||||
| #define SCRN_CLIPB LCTL(LGUI(LSFT(KC_4))) | ||||
| #define CHRM_L LALT(LGUI(KC_LEFT)) //Move left one tab in Chrome
 | ||||
| #define CHRM_R LALT(LGUI(KC_RIGHT)) //Move right one tab in Chrome
 | ||||
| #define S_CMD_S LGUI_T(KC_S) //`S` when typing `CMD` when held
 | ||||
| #define D_CMD_OPT LGUI_T(LALT_T(KC_D)) //`D` when typing `CMD + Opt` when held
 | ||||
| 
 | ||||
| static uint16_t key_timer; //key timer for macros
 | ||||
| 
 | ||||
| //Tap Dance Definitions
 | ||||
| qk_tap_dance_action_t tap_dance_actions[] = { | ||||
|   //Tap once for Copy, twice for Paste, three times for Cut.
 | ||||
|   [TD_COPY_CUT]  = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_C),LGUI(KC_X)), | ||||
|     //Tap once for Snagit, twice for Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
 | ||||
|   [TD_SNAGIT] = ACTION_TAP_DANCE_DOUBLE(LCTL(LSFT(KC_C)), LCTL(LGUI(LSFT(KC_4)))), | ||||
|   [CT_LBP] = ACTION_TAP_DANCE_DOUBLE (KC_LBRC, KC_LPRN), | ||||
|   [CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN) | ||||
| }; | ||||
| 
 | ||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| 
 | ||||
|   /* Keymap 0: Basic layer
 | ||||
|   * ,--------------------------------------------------.           ,--------------------------------------------------. | ||||
|   * |   =    |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |   -    | | ||||
|   * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| | ||||
|   * | Tab    |   Q  |   W  |   E  |   R  |   T  | "> " |           | []() |   Y  |   U  |   I  |   O  |   P  |   \    | | ||||
|   * |--------+------+------+------+------+------|      |           | SCRN |------+------+------+------+------+--------| | ||||
|   * | Hyper  |   A  |S /CMD|D/OPT | F /MD|   G  |------|           |------|   H  |   J  |K/OPT |L /CMD| ; /L2| '/Hyper| | ||||
|   * |--------+------+------+------+------+------|   (  |           |   )  |------+------+------+------+------+--------| | ||||
|   * |Shft Tab|Z/Ctrl|X/Alt |   C  |   V  |   B  | [  { |           | ]  } |   N  |   M  |   ,  | ./Alt|//Ctrl|CMD+SHFT|
 | ||||
|   * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' | ||||
|   *   |  `   |Zendsk|RBMINE|CMD+S | ToDo |                                       |   _  |      |  00  |  00  |OLD BASE| | ||||
|   *   `----------------------------------'                                       `----------------------------------' | ||||
|   *                                        ,-------------.       ,--------------. | ||||
|   *                                        | Esc  | Home |       |Layer?| Esc   | | ||||
|   *                                 ,------|------|------|       |------+-------+------. | ||||
|   *                                 |      |      | End  |       | Undo |       |      | | ||||
|   *                                 |Shift |Backsp|------|       |------| Return|Space/| | ||||
|   *                                 | OSM  | /NUM | DEL  |       | Ctrl | /SYML |Arrows| | ||||
|   *                                 `--------------------'       `---------------------' | ||||
|   * | ||||
|   *Copy/Cut key copies on tap, cut's on two taps. | ||||
|   * | ||||
|   *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector. | ||||
|   *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.) | ||||
|   */ | ||||
| 
 | ||||
|   [BASE] = LAYOUT_ergodox( | ||||
|     //left hand
 | ||||
|     KC_EQUAL,           KC_F1,    KC_F2,       KC_F3,       KC_F4,      KC_F5,    KC_F6, | ||||
|     KC_TAB,             KC_Q,     KC_W,        KC_E,        KC_R,       KC_T,     M_GREATER, | ||||
|     OSM(MOD_HYPR),      KC_A,  S_CMD_S,    ALT_T(KC_D), LT(MKDWN,KC_F), KC_G, | ||||
|     LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X),    KC_C,        KC_V,       KC_B,     TD(CT_LBP), | ||||
|                KC_GRAVE, ZENDESK, RUBYMINE,   LGUI(KC_S),   TODO, | ||||
|                                                           KC_ESCAPE,    KC_HOME, | ||||
|                                                                         KC_END, | ||||
|                                   OSM(MOD_LSFT), LT(NUM,KC_BSPACE),     LT(MKDWN,KC_DELETE), | ||||
| 
 | ||||
|     //right hand
 | ||||
|     KC_F7,           KC_F8,     KC_F9,    KC_F10,   KC_F11,        KC_F12,           KC_MINUS, | ||||
|     MD_LINK,          KC_Y,     KC_U,     KC_I,     KC_O,          KC_P,             KC_BSLASH, | ||||
|                       KC_H,     KC_J, ALT_T(KC_K),  LGUI_T(KC_L),  LT(MEDIA,KC_SCOLON),  ALL_T(KC_QUOTE), | ||||
|     TD(CT_RBP),       KC_N,     KC_M,     KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH),  SCMD_T(_______), | ||||
|                 LSFT(KC_MINUS), _______,  DBLE_ZER0, DBLE_ZER0,   TO(OLD_BASE), | ||||
|     L_ID_0,         KC_ESCAPE, | ||||
|     LGUI(KC_Z), | ||||
|     LT(MEDIA,KC_LCTL),  LT(SYMBL,KC_ENTER),  LT(ARROWS,KC_SPACE)), | ||||
| 
 | ||||
|     /* Keymap 1: OLD Base layer
 | ||||
|     * ,--------------------------------------------------.           ,--------------------------------------------------. | ||||
|     * |   =    |   1  |   2  |   3  |   4  |   5  | []() |           |Snagit|   6  |   7  |   8  |   9  |   0  |   -    | | ||||
|     * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| | ||||
|     * | Tab    |   Q  |   W  |   E  |   R  |   T  | "> " |           | []() |   Y  |   U  |   I  |   O  |   P  |   \    | | ||||
|     * |--------+------+------+------+------+------|      |           | SCRN |------+------+------+------+------+--------| | ||||
|     * | Hyper  |   A  |S /CMD|   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |L /CMD| ; /L2| '/Hyper| | ||||
|     * |--------+------+------+------+------+------|   (  |           |   )  |------+------+------+------+------+--------| | ||||
|     * |Shft Tab|Z/Ctrl|X/Alt |   C  |   V  |   B  | [  { |           | ]  } |   N  |   M  |   ,  | ./Alt|//Ctrl|CMD+SHFT|
 | ||||
|     * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' | ||||
|     *   |  `   |Zendsk|RBMINE|CMD+S | ToDo |                                       |   _  |      |  00  |  00  |ToBase| | ||||
|     *   `----------------------------------'                                       `----------------------------------' | ||||
|     *                                        ,-------------.       ,--------------. | ||||
|     *                                        | Esc  | Home |       |Layer?| Esc   | | ||||
|     *                                 ,------|------|------|       |------+-------+------. | ||||
|     *                                 |      |      | End  |       | Undo |       |      | | ||||
|     *                                 |Shift |Backsp|------|       |------| Return|Space/| | ||||
|     *                                 | OSM  | /L5  | DEL  |       | Ctrl | /LT1  |Arrows| | ||||
|     *                                 `--------------------'       `---------------------' | ||||
|     * | ||||
|     *Copy/Cut key copies on tap, cut's on two taps. | ||||
|     * | ||||
|     *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector. | ||||
|     *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.) | ||||
|     */ | ||||
| 
 | ||||
|     [OLD_BASE] = LAYOUT_ergodox( | ||||
|       //left hand
 | ||||
|       KC_EQUAL,           KC_1,     KC_2,    KC_3,        KC_4,     KC_5,     M_LINK, | ||||
|       KC_TAB,             KC_Q,     KC_W,    KC_E,        KC_R,     KC_T,     M_GREATER, | ||||
|       OSM(MOD_HYPR),      KC_A,  S_CMD_S, D_CMD_OPT, LT(MKDWN,KC_F),KC_G, | ||||
|       LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X),  KC_C,      KC_V,     KC_B,     TD(CT_LBP), | ||||
|                  KC_GRAVE, ZENDESK, RUBYMINE, LGUI(KC_S), TODO, | ||||
|                                                           KC_ESCAPE, KC_HOME, | ||||
|                                                                      KC_END, | ||||
|                                     OSM(MOD_LSFT), LT(NUM,KC_BSPACE),  LT(MKDWN,KC_DELETE), | ||||
| 
 | ||||
|       //right hand
 | ||||
|       TD(TD_SNAGIT),    KC_6,     KC_7,     KC_8,     KC_9,          KC_0,             KC_MINUS, | ||||
|       MD_LINK,          KC_Y,     KC_U,     KC_I,     KC_O,          KC_P,             KC_BSLASH, | ||||
|                         KC_H,     KC_J,     KC_K,     LGUI_T(KC_L),  LT(MEDIA,KC_SCOLON),  ALL_T(KC_QUOTE), | ||||
|       TD(CT_RBP),       KC_N,     KC_M,     KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH),  SCMD_T(_______), | ||||
|                   LSFT(KC_MINUS), _______,  DBLE_ZER0, DBLE_ZER0,   TO(BASE), | ||||
|       L_ID_0,         KC_ESCAPE, | ||||
|       LGUI(KC_Z), | ||||
|       LT(MEDIA,KC_LCTL),  LT(SYMBL,KC_ENTER),  LT(ARROWS,KC_SPACE)), | ||||
| 
 | ||||
|     /* Keymap 2: Symbol
 | ||||
|      * ,--------------------------------------------------.           ,--------------------------------------------------. | ||||
|      * |        |  1   |   2  |   3  |   4  |   5  | []() |           |Snagit|   6  |  7   |  8   |   9  |   0  |   -    | | ||||
|      * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| | ||||
|      * |        |      |   $  |   &  |   `  |   |  | Cmd  |           |      |      |      |   *  |      |      |        | | ||||
|      * |--------+------+------+------+------+------| + K  |           |      |------+------+------+------+------+--------| | ||||
|      * |        |   #  |   $  |   &  |   !  |   @  |------|           |------|   -  |   [  |   ]  |   (  |   )  |        | | ||||
|      * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|      * |        |   %  |   ^  |      |      |   ~  |      |           |      |      |      |      |      |      |        | | ||||
|      * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' | ||||
|      *   |      |      |      |      |      |                                       |      |      |      |      |      | | ||||
|      *   `----------------------------------'                                       `----------------------------------' | ||||
|      *                                        ,-------------.       ,-------------. | ||||
|      *                                        |      |      |       |Layer?|      | | ||||
|      *                                 ,------|------|------|       |------+------+------. | ||||
|      *                                 |      |      |      |       |      |      |      | | ||||
|      *                                 |      |      |------|       |------|      |      | | ||||
|      *                                 |      |      |      |       |      |      |      | | ||||
|      *                                 `--------------------'       `--------------------' | ||||
|      */ | ||||
|     // SYMBOLS
 | ||||
|   [SYMBL] = LAYOUT_ergodox( | ||||
|     //left hand
 | ||||
|     _______,          KC_1,        KC_2,           KC_3,         KC_4,        KC_5,      M_LINK, | ||||
|     _______,        _______,     KC_DLR,        KC_AMPR,     KC_GRAVE,     KC_PIPE,  LGUI(KC_K), | ||||
|     _______,        KC_HASH,     KC_DLR,        KC_AMPR,      KC_EXLM,       KC_AT, | ||||
|     _______,        KC_PERC,     KC_CIRC,       _______,      _______,     KC_TILD,     _______, | ||||
|                     _______,     _______,       _______,      _______,     _______, | ||||
|                                                                                         _______,   _______, | ||||
|                                                                                                    _______, | ||||
|                                                                            _______,     _______,   _______, | ||||
| 
 | ||||
|     //right hand
 | ||||
|    TD(TD_SNAGIT),    KC_6,        KC_7,         KC_8,         KC_9,        KC_0,   KC_MINUS, | ||||
|     _______,      _______,     _______,      KC_PAST,      _______,     _______,    _______, | ||||
|                   KC_MINUS,    KC_LBRC,      KC_RBRC,      KC_LPRN,     KC_RPRN,    _______, | ||||
|     _______,      _______,     _______,      _______,      _______,     _______,    _______, | ||||
|                   _______,     _______,      _______,      _______,     _______, | ||||
|     L_ID_1,       _______, | ||||
|     _______, | ||||
|     _______,      _______,     _______), | ||||
| 
 | ||||
|   /* Keymap 3: Media and mouse keys
 | ||||
|    * ,--------------------------------------------------.           ,--------------------------------------------------. | ||||
|    * |        |      |      |      |      |      |      |           | XKCD |      |      |      |      |      |  F15   | | ||||
|    * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| | ||||
|    * |        |      |Whl Up| MsUp |Whl Dn|      |      |           |      |      |      |      |      |      |  F14   | | ||||
|    * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|    * |        |Ctl L |MsLeft|MsDown|MsRght| Ctl R|------|           |------|      | Mute | VolDn| VolUp| TL 2 |  Play  | | ||||
|    * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|    * |        |      |WHL L |      |Whl R |      |      |           |      |      |      | Prev | Next |      |        | | ||||
|    * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' | ||||
|    *   |      |      |      |      |      |                                       | Mute |      |      |      |      | | ||||
|    *   `----------------------------------'                                       `----------------------------------' | ||||
|    *                                        ,-------------.       ,-------------. | ||||
|    *                                        |      |      |       |LAYER?|      | | ||||
|    *                                 ,------|------|------|       |------+------+------. | ||||
|    *                                 | Left |Right |      |       |      |Copy/ | paste| | ||||
|    *                                 | Click|Click |------|       |------| cut  |/paste| | ||||
|    *                                 |      |      |      |       |      |      |spcial| | ||||
|    *                                 `--------------------'       `--------------------' | ||||
|    */ | ||||
|   // MEDIA AND MOUSE
 | ||||
| 
 | ||||
|   [MEDIA] = LAYOUT_ergodox( | ||||
|     //left hand
 | ||||
|     _______,    _______,         _______,         _______,         _______,         _______,         _______, | ||||
|     _______,    _______,         KC_MS_WH_UP,     KC_MS_UP,        KC_MS_WH_DOWN,   _______,         _______, | ||||
|     _______,    LCTL(KC_LEFT),   KC_MS_LEFT,      KC_MS_DOWN,      KC_MS_RIGHT,     RCTL(KC_RIGHT), | ||||
|     XXXXXXX,    _______,         KC_MS_WH_LEFT,   _______,         KC_MS_WH_RIGHT,  _______,         _______, | ||||
|                 _______,         _______,         _______,         _______,         _______, | ||||
|                                                                                     _______,         _______, | ||||
|                                                                                                      _______, | ||||
|                                                                    KC_MS_BTN1,      KC_MS_BTN2,      _______, | ||||
| 
 | ||||
|     //right hand
 | ||||
|     XKCD,       _______,       _______,         _______,         _______,    _______,    KC_F15, | ||||
|     _______,    _______,       _______,         _______,         _______,    _______,    KC_F14, | ||||
|                 _______, KC_AUDIO_MUTE,     KC_AUDIO_VOL_DOWN,       KC_AUDIO_VOL_UP,    _______,    KC_MEDIA_PLAY_PAUSE, | ||||
|    _______,     _______,       _______,   KC_MEDIA_PREV_TRACK,   KC_MEDIA_NEXT_TRACK,    _______,    XXXXXXX, | ||||
|                                _______,         _______,         _______,    _______,    _______, | ||||
|     L_ID_2,     _______, | ||||
|     _______, | ||||
|     _______,    TD(TD_COPY_CUT),    PAST_PS), | ||||
| 
 | ||||
|   /* Keymap 4: Markdown Symbols
 | ||||
|   * ,--------------------------------------------------.           ,--------------------------------------------------. | ||||
|   * |        |      |      |      |      |      |      |           |SCRNCL|      |      |      |      |      |        | | ||||
|   * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| | ||||
|   * |        |      |      |      |      |      |      |           |      |      |  ``` |  **  |   _  |  `   |        | | ||||
|   * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|   * |        |      |      |      | TL MD|      |------|           |------|   -  |   [  |   ]  |   (  |   )  |        | | ||||
|   * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|   * |        |      |      |      |      |      |      |           |      |   #  |  ##  |  ### | #### | #####|        | | ||||
|   * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' | ||||
|   *   |      |      |      |      |      |                                       |      |      |      |      |      | | ||||
|   *   `----------------------------------'                                       `----------------------------------' | ||||
|   *                                        ,-------------.       ,-------------. | ||||
|   *                                        |      |      |       |Layer?|      | | ||||
|   *                                 ,------|------|------|       |------+------+------. | ||||
|   *                                 |      |      |      |       |      |      |      | | ||||
|   *                                 |      |      |------|       |------|      |      | | ||||
|   *                                 |      |      |      |       |      |      |      | | ||||
|   *                                 `--------------------'       `--------------------' | ||||
|   * Sc cp = OS X cropping screenshot that is copied to the clipboard only. | ||||
|   */ | ||||
|   // Markdown  Layer
 | ||||
|   [MKDWN] = LAYOUT_ergodox( | ||||
|     //left hand
 | ||||
|     _______,       _______,       _______,       _______,       _______,       _______,       _______, | ||||
|     _______,       _______,       _______,       _______,       _______,       _______,       _______, | ||||
|     _______,       _______,       _______,       _______,       _______,       _______, | ||||
|     _______,       _______,       _______,       _______,       _______,       _______,       _______, | ||||
|                    _______,       _______,       _______,       _______,       _______, | ||||
|                                                                                _______,       _______, | ||||
|                                                                                               _______, | ||||
|                                                 _______,     _______, _______, | ||||
| 
 | ||||
|    //right hand
 | ||||
|    SCRN_CLIPB,       _______,       _______,       _______,       _______,       _______,       _______, | ||||
|    _______,          _______,   TRPLE_GRAVE,     DBLE_ASTR,LSFT(KC_MINUS),      KC_GRAVE,       _______, | ||||
|                     KC_MINUS,       KC_LBRC,       KC_RBRC,       KC_LPRN,       KC_RPRN,       _______, | ||||
|    _______,            H_ONE,         H_TWO,       H_THREE,        H_FOUR,        H_FIVE,       _______, | ||||
|                      _______,       _______,       _______,       _______,       _______, | ||||
|    _______,          _______, | ||||
|    _______, | ||||
|    _______,          _______,       _______), | ||||
| 
 | ||||
|    /* Keymap 5: Arrows
 | ||||
|     * | ||||
|     * ,--------------------------------------------------.           ,--------------------------------------------------. | ||||
|     * |  RESET |      |      |      |      |      |      |           |      |      |      |      |      |      |        | | ||||
|     * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| | ||||
|     * |        |      | Opt+L|  Up  |Opt+R |      |      |           |      |      | Opt+L|  Up  |Opt+R |      |        | | ||||
|     * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|     * |        |Ctrl+L| Left |  Dn  | Right|Ctrl+R|------|           |------|Ctrl+L| Left |  Dn  | Right|Ctrl+R|        | | ||||
|     * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|     * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        | | ||||
|     * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' | ||||
|     *   |      |      |      |      |      |                                       |         |      |   |      |      | | ||||
|     *   `----------------------------------'                                       `----------------------------------' | ||||
|     *                                        ,-------------.       ,-------------. | ||||
|     *                                        |      |      |       |      |      | | ||||
|     *                                 ,------|------|------|       |------+------+------. | ||||
|     *                                 |      |      |      |       |      |      |      | | ||||
|     *                                 |      |      |------|       |------|      |      | | ||||
|     *                                 |      |      |      |       |      |      |      | | ||||
|     *                                 `--------------------'       `--------------------' | ||||
|     * | ||||
|     * | ||||
|     * | ||||
|     */ | ||||
|    // Movement  Layer
 | ||||
| 
 | ||||
|   [ARROWS] = LAYOUT_ergodox( | ||||
|   //left hand
 | ||||
|     RESET,       _______,       _______,       _______,        _______,         _______,       _______, | ||||
|     _______,     _______,        CHRM_L,       KC_UP,           CHRM_R,         _______,       _______, | ||||
|     _______,LCTL(KC_LEFT),      KC_LEFT,       KC_DOWN,       KC_RIGHT,    LCTL(KC_RIGHT), | ||||
|     _______,    _______,       _______,       _______,        _______,         _______,       _______, | ||||
|                  _______,       _______,       _______,        _______,         _______, | ||||
|                                                                                 _______,       _______, | ||||
|                                                                                                _______, | ||||
|                                                                _______,         _______,       _______, | ||||
|   //right hand
 | ||||
|     _______,     _______,       _______,       _______,        _______,         _______,       _______, | ||||
|     _______,     _______,        CHRM_L,         KC_UP,         CHRM_R,         _______,       _______, | ||||
|            LCTL(KC_LEFT),       KC_LEFT,       KC_DOWN,       LGUI_T(KC_RIGHT),  LCTL(KC_RIGHT),       _______, | ||||
|     _______,     _______,       _______,       _______,        _______,         _______,       _______, | ||||
|                  _______,       _______,       _______,        _______,         _______, | ||||
|     _______,     _______, | ||||
|     _______, | ||||
|     _______,     _______,       _______), | ||||
| 
 | ||||
|     /* Keymap 6: Numpad
 | ||||
|     * ,--------------------------------------------------.           ,--------------------------------------------------. | ||||
|     * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        | | ||||
|     * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| | ||||
|     * |        |      |      |      |      |      |      |           |      |   =  |   7  |   8  |   9  |   *  |        | | ||||
|     * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|     * |        |      |      |Cp/Cut|paste |      |------|           |------|   +  |   4  |   5  |   6  |   +  |        | | ||||
|     * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| | ||||
|     * |        |      |      |      |      |      |      |           |      |   -  |   1  |   2  |   3  |   /  |        | | ||||
|     * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' | ||||
|     *   |      |      |      |      |      |                                       |   0  |   .  |  00  |  00  | Enter| | ||||
|     *   `----------------------------------'                                       `----------------------------------' | ||||
|     *                                        ,-------------.       ,-------------. | ||||
|     *                                        |      |      |       |      |      | | ||||
|     *                                 ,------|------|------|       |------+------+------. | ||||
|     *                                 |      |      |      |       |      |Nupmad|      | | ||||
|     *                                 |      |      |------|       |------|Enter |      | | ||||
|     *                                 |      |      |      |       |      |      |      | | ||||
|     *                                 `--------------------'       `--------------------' | ||||
|     */ | ||||
|     // Numpad  Layer
 | ||||
|     [NUM] = LAYOUT_ergodox( | ||||
|       //left hand
 | ||||
|       _______,        _______,     _______,     _______,        _______,        _______,    _______, | ||||
|       _______,        _______,     _______,     _______,        _______,        _______,    _______, | ||||
|       _______,        _______,     _______,   TD(TD_COPY_CUT),  PAST_PS,        _______, | ||||
|       _______,        _______,     _______,     _______,        _______,        _______,    _______, | ||||
|                       _______,     _______,     _______,        _______,        _______, | ||||
|                                                                                             _______,    _______, | ||||
|                                                                                                         _______, | ||||
|                                                                             _______,        _______,    _______, | ||||
| 
 | ||||
|       //right hand
 | ||||
|       _______,      _______,      _______,       _______,     _______,     _______,        _______, | ||||
|       _______,     KC_EQUAL,      KC_7,          KC_8,        KC_9,        KC_ASTR,        _______, | ||||
|                     KC_PLUS,      KC_4,          KC_5,        KC_6,        KC_PLUS,        _______, | ||||
|       _______,     KC_MINUS,      KC_1,          KC_2,        KC_3,        KC_KP_SLASH,    _______, | ||||
|                     KC_KP_0,      KC_DOT,        DBLE_ZER0,   DBLE_ZER0,   KC_KP_ENTER, | ||||
|       _______,      _______, | ||||
|       _______, | ||||
|       _______,      KC_PENT,      _______), | ||||
| }; | ||||
| 
 | ||||
| bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||||
| 
 | ||||
|   switch (keycode) { | ||||
|     case EPRM: | ||||
|       if (record->event.pressed) { | ||||
|         eeconfig_init(); | ||||
|       } | ||||
|       return false; | ||||
|       break; | ||||
| 
 | ||||
|     case VRSN: | ||||
|       if (record->event.pressed) { | ||||
|         SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | ||||
|       } | ||||
|       return false; | ||||
|       break; | ||||
| 
 | ||||
|     case MD_LINK: | ||||
|       if (record->event.pressed){ | ||||
|         key_timer = timer_read(); | ||||
|       } else { | ||||
|         if (timer_elapsed(key_timer) > 150) { | ||||
|           SEND_STRING ("([Video]("); | ||||
|         } else { | ||||
|           SEND_STRING ("([Screenshot]("); | ||||
|         } | ||||
|         SEND_STRING(SS_LGUI("v")); | ||||
|         SEND_STRING("))"); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case XKCD: | ||||
|         if (record->event.pressed) { | ||||
|         SEND_STRING ("https://xkcd.com/1319/"); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case DBLE_ZER0: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("00"); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case DBLE_ASTR: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("**"); | ||||
|         SEND_STRING ("**"); | ||||
|         SEND_STRING (SS_TAP(X_LEFT)); | ||||
|         SEND_STRING (SS_TAP(X_LEFT)); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case TRPLE_GRAVE: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("```"); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case L_ID_0: | ||||
|       if (record->event.pressed) { | ||||
|         SEND_STRING (SS_LGUI(" ")); | ||||
|         SEND_STRING ("Layer 0: Base"); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case L_ID_1: | ||||
|       if (record->event.pressed) { | ||||
|         SEND_STRING (SS_LGUI(" ")); | ||||
|         SEND_STRING ("Layer 1: Symbols"); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case L_ID_2: | ||||
|       if (record->event.pressed) { | ||||
|         SEND_STRING (SS_LGUI(" ")); | ||||
|         SEND_STRING ("Layer 2: Media & Mousekeys"); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case PAST_PS: | ||||
|       if (record->event.pressed) { | ||||
|         key_timer = timer_read(); | ||||
|       } else { | ||||
|         if (timer_elapsed(key_timer) > 150) { | ||||
|           SEND_STRING (SS_LGUI("V")); // Paste special
 | ||||
|         } else { | ||||
|           SEND_STRING (SS_LGUI("v")); // Paste
 | ||||
|         } | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case TODO: | ||||
|       if (record->event.pressed) { | ||||
|         key_timer = timer_read(); | ||||
|       } else { | ||||
|         if (timer_elapsed(key_timer) > 150) { //switch to Todoist when held and released
 | ||||
|           SEND_STRING (SS_LGUI(" ")); | ||||
|           SEND_STRING ("Todoist"); | ||||
|           SEND_STRING (SS_TAP(X_ENTER)); | ||||
|         } else { | ||||
|           SEND_STRING (SS_LGUI(SS_LCTRL("a"))); //macro to open Todoist new task dialog
 | ||||
|         } | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case RUBYMINE: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING (SS_LGUI(" ")); | ||||
|         SEND_STRING ("RUBYMINE"); | ||||
|         SEND_STRING (SS_TAP(X_ENTER)); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case ZENDESK: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING (SS_LGUI(" ")); | ||||
|         SEND_STRING ("||ZEN"); | ||||
|         SEND_STRING (SS_TAP(X_ENTER)); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case H_ONE: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("# "); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case H_TWO: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("## "); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case H_THREE: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("### "); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case H_FOUR: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("#### "); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case H_FIVE: | ||||
|       if (record->event.pressed){ | ||||
|         SEND_STRING ("##### "); | ||||
|       } | ||||
|       break; | ||||
|     case M_LINK: | ||||
|       if (record->event.pressed){ | ||||
|           SEND_STRING ("[]()"); | ||||
|         } | ||||
|         break; | ||||
|     case M_GREATER: | ||||
|       if (record->event.pressed){ | ||||
|           SEND_STRING ("> "); | ||||
|       } | ||||
|       break; | ||||
|     } | ||||
|   return true; | ||||
| }; | ||||
| 
 | ||||
| void matrix_scan_user(void) { | ||||
|   uint8_t layer = biton32(layer_state); | ||||
| 
 | ||||
|   ergodox_board_led_off(); | ||||
|   ergodox_right_led_1_off(); | ||||
|   ergodox_right_led_2_off(); | ||||
|   ergodox_right_led_3_off(); | ||||
|   switch (layer) { | ||||
|     case 1: | ||||
|       ergodox_right_led_1_on(); | ||||
|       break; | ||||
|     case 2: | ||||
|       ergodox_right_led_2_on(); | ||||
|       break; | ||||
|     default: | ||||
|         break; | ||||
|   } | ||||
| }; | ||||
| @ -0,0 +1,3 @@ | ||||
| COMMAND_ENABLE = no | ||||
| TAP_DANCE_ENABLE = yes | ||||
| FORCE_NKRO = yes | ||||
					Loading…
					
					
				
		Reference in new issue
	
	 Mat Greten
						Mat Greten