]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Merge pull request #1121 from Leszek111/master
authorJack Humbert <jack.humb@gmail.com>
Tue, 28 Feb 2017 03:17:36 +0000 (22:17 -0500)
committerGitHub <noreply@github.com>
Tue, 28 Feb 2017 03:17:36 +0000 (22:17 -0500)
add layout

keyboards/ergodox/keymaps/colemak_programmer/Makefile [new file with mode: 0644]
keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg [new file with mode: 0644]
keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg [new file with mode: 0644]
keyboards/ergodox/keymaps/colemak_programmer/keymap.c [new file with mode: 0644]
keyboards/ergodox/keymaps/colemak_programmer/readme.md [new file with mode: 0644]

diff --git a/keyboards/ergodox/keymaps/colemak_programmer/Makefile b/keyboards/ergodox/keymaps/colemak_programmer/Makefile
new file mode 100644 (file)
index 0000000..91b77c7
--- /dev/null
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = no
\ No newline at end of file
diff --git a/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg b/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg
new file mode 100644 (file)
index 0000000..de24d93
Binary files /dev/null and b/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_001.jpg differ
diff --git a/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg b/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg
new file mode 100644 (file)
index 0000000..15f8ec8
Binary files /dev/null and b/keyboards/ergodox/keymaps/colemak_programmer/colemak_programmer_002.jpg differ
diff --git a/keyboards/ergodox/keymaps/colemak_programmer/keymap.c b/keyboards/ergodox/keymaps/colemak_programmer/keymap.c
new file mode 100644 (file)
index 0000000..1caccc5
--- /dev/null
@@ -0,0 +1,256 @@
+#include "ergodox.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ * MEH:   Alt+Control+Shift
+ * HYPER: Alt+Control+Shift+Gui
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   ` ~  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  |  6 ^ |           | 7 &  |  8 * | 9 (  |  0 ) | - _  | = +  | Backsp |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |   TAB  |   Q  |   W  |   F  |   P  |   G  |TG(3) |           |TG(4) |   J  |   L  |   U  |   Y  |  ; : |  ' "   |
+ * |--------+------+------+------+------+------|F-lck |           |N-lck |------+------+------+------+------+--------|
+ * |  CAPS  |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |   O  |  ENT   |
+ * |--------+------+------+------+------+------| MEH  |           | MEH  |------+------+------+------+------+--------|
+ * | Shift  |   Z  |   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |  , < |  . > |  UP  | Shift  |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | LCTL | LCTL | LGUI | LALT | LGUI |                                       | RALT | RCTL | LEFT | DOWN | RIGHT|
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,--------------.       ,--------------.
+ *                                        |  Esc | App   |       | Ins  | Del   |
+ *                                 ,------|------|-------|       |------+-------+------.
+ *                                 |      |      | Home  |       | PgUp |       |      |
+ *                                 | MO(2)| MO(4)|-------|       |------| Space |Space |
+ *                                 |symbol|N-Lock| End   |       | PgDn |       |      |
+ *                                 `---------------------'       `---------------------'
+ */
+[0] = KEYMAP(  // layer 0 : default 
+        // left hand
+        KC_GRV,     KC_1,       KC_2,       KC_3,       KC_4,        KC_5,        KC_6,
+        KC_TAB,     KC_Q,       KC_W,       KC_F,       KC_P,        KC_G,        TG(3),
+        KC_CAPS,    KC_A,       KC_R,       KC_S,       KC_T,        KC_D,
+        KC_LSFT,    KC_Z,       KC_X,       KC_C,       KC_V,        KC_B,        KC_MEH,
+        KC_LCTL,    KC_LCTL,    KC_LGUI,    KC_LALT,    KC_LGUI,
+
+                    KC_ESC,     KC_APP,
+                    KC_HOME,
+        MO(2),      MO(4),      KC_END,
+
+        // right hand
+        KC_7,       KC_8,       KC_9,       KC_0,       KC_MINS,     KC_EQL,      KC_BSPC,
+        TG(4),      KC_J,       KC_L,       KC_U,       KC_Y,        KC_SCLN,     KC_QUOT,
+                    KC_H,       KC_N,       KC_E,       KC_I,        KC_O,        KC_ENT,
+        KC_MEH,     KC_K,       KC_M,       KC_COMM,    KC_DOT,      KC_UP,       KC_RSFT,
+                                KC_RALT,    KC_RCTL,    KC_LEFT,     KC_DOWN,     KC_RIGHT,
+
+        KC_INS,     KC_DEL,
+        KC_PGUP,
+        KC_PGDN,    KC_SPC,     KC_SPC
+    ),
+
+/* Keymap 1: QWERTY layer (games)
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   Q  |   W  |   E  |   R  |   T  |      |           |      |   Y  |   U  |   I  |   O  |   P  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      |      |       |      |        |      |
+ *                                 |      |      |------|       |------|        |      |
+ *                                 |      |      |      |       |      |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+[1] = KEYMAP(  // layer 1: QWERTY layer (games) 
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS,        KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_TRNS,
+       KC_TRNS,        KC_A,       KC_S,       KC_D,       KC_F,       KC_G,
+       KC_TRNS,        KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+
+                       KC_TRNS,    KC_TRNS,
+                                   KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,
+       
+    // right hand
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS,        KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_TRNS,
+                       KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_TRNS,
+       KC_TRNS,        KC_N,       KC_M,       KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+                                   KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS,        KC_TRNS,
+       KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS
+    ),
+
+/* Keymap 2: Symbol Layer
+*
+* ,--------------------------------------------------.           ,--------------------------------------------------.
+* |        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F7  |  F8  |  F9  | F10  | F11  | F12  |        |
+* |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+* |        |   |  |   +  |  <   |   %  |  #   | DF(1)|           |      |  &   |   [  |   ]  |   \  |  :   |   "    |
+* |--------+------+------+------+------+------|QWERTY|           |      |------+------+------+------+------+--------|
+* |        |   !  |   -  |  >   |   =  |  @   |------|           |------|  *   |   {  |   }  |   /  |  ?   |        |
+* |--------+------+------+------+------+------| DF(0)|           |      |------+------+------+------+------+--------|
+* |        | NUBS | NUHS |  /   |   $  |  ^   |COLEMAK           |      |  |   |   (  |   )  |      |      |        |
+* `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+*   |      |      |      |      |      |                                       |      |      |      |      |      |
+*   `----------------------------------'                                       `----------------------------------'
+*                                        ,-------------.       ,-------------.
+*                                        |      |      |       |      |      |
+*                                 ,------|------|------|       |------+------+------.
+*                                 |      |      |      |       |      |      |      |
+*                                 |      |      |------|       |------|      |      |
+*                                 |      |      |      |       |      |      |      |
+*                                 `--------------------'       `--------------------'
+*/
+// SYMBOLS
+[2] = KEYMAP(
+       // left hand
+       KC_TRNS,        KC_F1,        KC_F2,       KC_F3,      KC_F4,       KC_F5,      KC_F6,
+       KC_TRNS,        KC_PIPE,      KC_PLUS,     KC_LT,      KC_PERC,     KC_HASH,    DF(1),
+       KC_LBRC,        KC_EXCLAIM,   KC_MINUS,    KC_GT,      KC_EQUAL,    KC_AT,
+       KC_TRNS,        KC_NUBS,      KC_NUHS,     KC_SLSH,    KC_DOLLAR,   KC_CIRC,    DF(0),
+       KC_TRNS,        KC_TRNS,      KC_TRNS,     KC_TRNS,    KC_TRNS,
+
+                       KC_TRNS,      KC_TRNS,
+                                     KC_TRNS,
+       KC_TRNS,        KC_TRNS,      KC_TRNS,
+
+       // right hand
+       KC_F7,          KC_F8,        KC_F9,        KC_F10,     KC_F11,      KC_F12,     KC_TRNS,
+       KC_TRNS,        KC_AMPERSAND, KC_LBRC,      KC_RBRC,    KC_BSLS,     KC_COLN,    KC_DQT,
+                       KC_ASTERISK,  KC_LCBR,      KC_RCBR,    KC_SLSH,     KC_QUES,    KC_TRNS,
+       KC_TRNS,        KC_PIPE,      KC_LPRN,      KC_RPRN,    KC_TRNS,     KC_TRNS,    KC_TRNS,
+                                     KC_TRNS,      KC_TRNS,    KC_TRNS,     KC_TRNS,    KC_TRNS,
+
+       KC_TRNS,        KC_TRNS,
+       KC_TRNS,
+       KC_TRNS,        KC_TRNS,      KC_TRNS
+),
+
+/* Keymap 3:
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      | HYPR |           | HYPR |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------        |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// F-keys
+[3] = KEYMAP(
+       KC_TRNS,        KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,      KC_F6,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_HYPR,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+
+                       KC_TRNS,    KC_TRNS,
+                                   KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,
+
+       // right hand
+       KC_F7,          KC_F8,      KC_F9,      KC_F10,     KC_F11,     KC_F12,     KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+                       KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_HYPR,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+                                   KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+
+       KC_TRNS,        KC_TRNS,
+       KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS
+),
+/* Keymap 4: Numlock
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * | RESET  |      |      |      |P-SCRE|S-LOCK|PAUSE |           |NLOCK | CALC |  =   |  /   |  *   |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      | Vol+ |  7   |  8   |  9   |  -   |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |------|           |------| Vol- |  4   |  5   |  6   |  +   |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      | HYPR |           | HYPR | Mute |  1   |  2   |  3   |Enter |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |  0   |  .   | RCTL | RCTL |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------        |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+[4] = KEYMAP(
+       RESET,          KC_LSFT,    KC_LSFT,    KC_SYSREQ,  KC_PSCR,    KC_SLCK,    KC_PAUSE,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_HYPR,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
+
+                       KC_TRNS,    KC_TRNS,
+                                   KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS,
+
+       // right hand
+       KC_NLCK,        KC_CALC,    KC_PEQL,    KC_PSLS,    KC_PAST,    KC_LSFT,    KC_TRNS,
+       KC_TRNS,        KC_VOLU,    KC_P7,      KC_P8,      KC_P9,      KC_PMNS,    KC_TRNS,
+                       KC_VOLD,    KC_P4,      KC_P5,      KC_P6,      KC_PPLS,    KC_TRNS,
+       KC_HYPR,        KC_MUTE,    KC_P1,      KC_P2,      KC_P3,      KC_PENT,    KC_TRNS,
+                                   KC_TRNS,    KC_P0,      KC_PDOT,    KC_RCTL,    KC_RCTL,
+
+       KC_TRNS,        KC_TRNS,
+       KC_TRNS,
+       KC_TRNS,        KC_TRNS,    KC_TRNS
+),
+
+};
+
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+    static uint8_t state;
+
+    ergodox_board_led_off();
+    ergodox_right_led_1_off();
+    ergodox_right_led_2_off();
+    ergodox_right_led_3_off();
+
+    //reduce LED on time to 1/6th because LEDs are too strong
+    if (++state < 6) return;
+    state = 0;
+
+    //bit 1: default layer 1 - QWERTY
+    if (default_layer_state & (1UL << 1)) ergodox_right_led_1_on();
+
+    uint8_t layer = biton32(layer_state);
+
+    //layer 2 : Symbols (& Fs)
+    //if (layer == 2) ergodox_right_led_2_on();
+
+    //layer 3 : F-lock
+    if (layer == 3) ergodox_right_led_2_on();
+
+    //layer 4 : Num-lock
+    if (layer == 4) ergodox_right_led_3_on();
+};
diff --git a/keyboards/ergodox/keymaps/colemak_programmer/readme.md b/keyboards/ergodox/keymaps/colemak_programmer/readme.md
new file mode 100644 (file)
index 0000000..db0cc57
--- /dev/null
@@ -0,0 +1,23 @@
+# ErgoDox EZ colemak_programmer
+
+## Features
+
+* Qwerty and colemak 2 in 1
+  * Use DF() macro to swap the bottom layer so it behaves literally as collemak or qwerty
+  * Graphical creator did not allow this so I had to use TO(0) and TO(1) on the picture
+* Symbol layer programmers friendly
+  * Not only symbols are easy to access but common combination are easy too: ->, =>, !=, etc.
+* Windows and Mac
+  * The extra repeated Win key is very handy on Mac
+* Numlock
+
+I came to this layout after several iterations. It is not the ultimate best ergonomic layout but it is the best if you switch back and forth between ergodox and laptops.
+
+## Notes
+* The Quote and Enter can be swapped
+* If you use sculpted key caps try turning the bottom key 180 degrees so it became very comfortable to type with thumb.
+
+Alternatively view the [graphical creator version](http://configure.ergodox-ez.com/keyboard_layouts/kmevwm/edit) but beware it is not the same due to the creator limitations.
+
+![Default](colemak_programmer_001.jpg)
+![Default](colemak_programmer_002.jpg)
\ No newline at end of file