Browse Source

The Ordinary Layout is the most natural and powerful layout for the Ergodox EZ. Come check it out.

Nicholas Keene 10 năm trước cách đây
mục cha
commit
5daf24b1a5

+ 61 - 43
keyboard/ergodox_ez/keymaps/ordinary/keymap.c

@@ -4,25 +4,27 @@
 #include "action_layer.h"
 #include "action_util.h"
 
-#define BASE 0 // default layer
-#define SYMB 1 // symbols layer
-#define MDIA 2 // media layer
-#define LOCK 3 // shift-lock layer
-
-#define LSymb 0 // left symbol-shift key
-#define LMdia 1 // left media-shift key
-#define LLock 2 // left shift-lock key
-#define RSymb 3 // right symbol-shift key
-#define RMdia 4 // right media-shift key
-#define RLock 5 // right shift-lock key
-
-#define MUL   6 // mouse up left
-#define MUR   7 // mouse up right
-#define MDL   8 // mouse down left
-#define MDR   9 // mouse down right
+#define BASE   0 // default layer
+#define SYMB   1 // symbols layer
+#define MDIA   2 // media layer
+#define LOCK   3 // shift-lock layer
+
+#define LCaps 10 // left caps-shift key
+#define LSymb 11 // left symbol-shift key
+#define LMdia 12 // left media-shift key
+#define LLock 13 // left shift-lock key
+#define RCaps 20 // right caps-shift key
+#define RSymb 21 // right symbol-shift key
+#define RMdia 22 // right media-shift key
+#define RLock 23 // right shift-lock key
+
+#define MUL   30 // mouse up left
+#define MUR   31 // mouse up right
+#define MDL   32 // mouse down left
+#define MDR   33 // mouse down right
 
 /*
- * The Ordinary Layout for the Ergodox EZ keyboard, v3.14
+ * The Ordinary Layout for the Ergodox EZ keyboard, v3.141
  * 
  * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
  * 
@@ -41,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |-----------+------+------+------+------+------|      |           |      |------+------+------+------+------+-----------|
  * | Symbol    |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |  ;   | '" Symbol |
  * |-----------+------+------+------+------+------|Shift |           | Tab  |------+------+------+------+------+-----------|
- * | LShift    |   Z  |   X  |   C  |   V  |   B  | -Tab |           |      |   N  |   M  |   ,  |   .  |  /   |    RShift |
+ * | LShift    |   Z  |   X  |   C  |   V  |   B  | -Tab |           |      |   N  |   M  |   ,  |   .  |  /   |    LShift |
  * `-----------+------+------+------+------+-------------'           `-------------+------+------+------+------+-----------'
  *     | LCtrl | Meh  |Hyper | LAlt | LGui |                                       | RGui | RAlt | Hyper|  Meh | RCtrl |
  *     `-----------------------------------'                                       `-----------------------------------'
@@ -50,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  *                                  ,------|------|------|           |------+------+------.
  *                                  |      |      | PgUp |           |  Up  |      |      |
  *                                  |Backsp| Del  |------|           |------| Enter| Space|
- *                                  |      |      | PgDn |           | Down |      |      |
+ *                                  |      |      | PgDn |           | Down |      |      |Aa
  *                                  `--------------------'           `--------------------'
  */
 [BASE] = KEYMAP(
@@ -58,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  F(LLock)  ,KC_1   ,KC_2   ,KC_3   ,KC_4  ,KC_5  ,KC_ESC
 ,F(LMdia)  ,KC_Q   ,KC_W   ,KC_E   ,KC_R  ,KC_T  ,KC_LBRC
 ,M(LSymb)  ,KC_A   ,KC_S   ,KC_D   ,KC_F  ,KC_G
-,KC_LSFT   ,KC_Z   ,KC_X   ,KC_C   ,KC_V  ,KC_B  ,LSFT(KC_TAB)
+,M(LCaps)   ,KC_Z   ,KC_X   ,KC_C   ,KC_V  ,KC_B  ,LSFT(KC_TAB)
 ,KC_LCTL   ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI
                                          ,KC_HOME,KC_END
                                                  ,KC_PGUP
@@ -67,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                                                                      ,KC_MINS ,KC_6   ,KC_7   ,KC_8   ,KC_9    ,KC_0     ,F(RLock)
                                                                      ,KC_RBRC ,KC_Y   ,KC_U   ,KC_I   ,KC_O    ,KC_P     ,F(RMdia)
                                                                               ,KC_H   ,KC_J   ,KC_K   ,KC_L    ,KC_SCLN  ,F(RSymb)
-                                                                     ,KC_TAB  ,KC_N   ,KC_M   ,KC_COMM,KC_DOT  ,KC_SLSH  ,KC_RSFT
+                                                                     ,KC_TAB  ,KC_N   ,KC_M   ,KC_COMM,KC_DOT  ,KC_SLSH  ,M(RCaps)
                                                                                       ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH   ,KC_RCTL
                                                                      ,KC_LEFT ,KC_RGHT
                                                                      ,KC_UP
@@ -125,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |------+---------+---------+---------+---------+---------|  Up  |           |  Up  |---------+---------+---------+---------+---------+------|
  * |      |  Sleep  |MouseLeft|MouseDown|MouseRght|Volume Dn|------|           |------| Num Lock|   Left  |   Down  |   Right | MyComp  |      |
  * |------+---------+---------+---------+---------+---------|Scroll|           |Scroll|---------+---------+---------+---------+---------+------|
- * |      |         |MouseDnLf|MouseDown|MouseDnRg|  Mute   | Down |           | Down |         |   End   |   Down  |   PgDn  |         |      |
+ * |      |         |MouseDnLf|MouseDown|MouseDnRg|  Mute   | Down |           | Down |         |   End   |   Down  |   PgDn  | RShift  |      |
  * `------+---------+---------+---------+---------+----------------'           `----------------+---------+---------+---------+---------+------'
  *  |LCtrl|   Meh   |  MClick | LClick  |  R Click|                                             |Cmd/Insrt|Optn/Del | Hyper   |  Meh    |RCtrl|
  *  `---------------------------------------------'                                             `---------------------------------------------'
@@ -151,7 +153,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                                                                      ,KC_NO    ,KC_F16  ,KC_F17       ,KC_F18       ,KC_F19  ,KC_F20  ,KC_TRNS
                                                                      ,KC_WH_U  ,KC_PSCR ,KC_HOME      ,KC_UP        ,KC_PGUP ,KC_MAIL ,KC_TRNS
                                                                                ,KC_NLCK ,KC_LEFT      ,KC_DOWN      ,KC_RIGHT,KC_MYCM ,KC_TRNS
-                                                                     ,KC_WH_D  ,KC_NO   ,KC_END       ,KC_DOWN      ,KC_PGDN ,KC_NO   ,KC_TRNS
+                                                                     ,KC_WH_D  ,KC_NO   ,KC_END       ,KC_DOWN      ,KC_PGDN ,KC_RSFT ,KC_TRNS
                                                                                         ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH  ,KC_RCTL
                                                                      ,KC_MPRV  ,KC_MNXT
                                                                      ,KC_VOLU
@@ -213,6 +215,7 @@ const uint16_t PROGMEM fn_actions[] = {
     ,[RLock] = ACTION_MACRO_TAP(RLock)
 };
 
+uint16_t caps_shift = 0;
 uint16_t symb_shift = 0; // there are two shift keys for each layer, and two lock
 uint16_t mdia_shift = 0; // keys; we increment a counter for each key pressed and
 uint16_t shift_lock = 0; // decrement when released.
@@ -223,15 +226,30 @@ bool mdia_lock = false;  // key the lock flag is toggled
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 {
     switch(id) {
-        // shift and lock between layers
+        // shift and lock between layers?L?
+
+        case LCaps: // both caps-shift keys trigger Left Shift
+        case RCaps: // so they don't interfere with the magic combo
+        if (record->event.pressed && !record->tap.count) {
+            if(++caps_shift > 2) caps_shift = 2;
+            if(shift_lock)  {
+                register_code(KC_CAPS);
+                unregister_code(KC_CAPS);
+            }
+            register_code(KC_LSFT);
+        } else {
+            if(--caps_shift < 0) caps_shift = 0;
+            if(!caps_shift) unregister_code(KC_LSFT);
+        }
+        break;
 
         case LSymb:
         if (record->event.pressed) {
-            symb_shift++;
+            if(++symb_shift > 2) symb_shift = 2;
             if(shift_lock) symb_lock = !symb_lock;
             layer_on(SYMB);
         } else {
-            symb_shift--;
+            if(--symb_shift < 0) symb_shift = 0;
             if((!symb_shift) && (!symb_lock)) layer_off(SYMB);
         }
         break;
@@ -241,7 +259,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             if (record->tap.count && !shift_lock) {
                 register_code(KC_TAB);
             } else {
-                mdia_shift++;
+                if(++mdia_shift > 2) mdia_shift = 2;
                 if(shift_lock) mdia_lock = !mdia_lock;
                 layer_on(MDIA);
             }
@@ -249,7 +267,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             if(record->tap.count && !shift_lock) {
                 unregister_code(KC_TAB);
             } else {
-                mdia_shift--;
+                if(--mdia_shift < 0) mdia_shift = 0;
                 if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA);
             }
         }
@@ -257,20 +275,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 
         case LLock:
         if (record->event.pressed) {
-            shift_lock++;
-            if(symb_shift) symb_lock = !symb_lock;
-            if(mdia_shift) mdia_lock = !mdia_lock;
-            if(!record->tap.count && (keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)))) {
+            if(++shift_lock > 2) shift_lock = 2;
+            if(caps_shift) {
                 register_code(KC_CAPS);
                 unregister_code(KC_CAPS);
             }
+            if(symb_shift) symb_lock = !symb_lock;
+            if(mdia_shift) mdia_lock = !mdia_lock;
             layer_on(LOCK);
           } else {
             if(record->tap.count && !record->tap.interrupted && !symb_shift && !mdia_shift) {
                 register_code(KC_GRV);
                 unregister_code(KC_GRV);
             }
-            shift_lock--;
+            if(--shift_lock < 0) shift_lock = 0;
             if(!shift_lock) layer_off(LOCK);
         }
         break;
@@ -280,7 +298,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             if (record->tap.count && !shift_lock) {
                 register_code(KC_QUOT);
             } else {
-                symb_shift++;
+                if(++symb_shift > 2) symb_shift = 2;
                 if(shift_lock) symb_lock = !symb_lock;
                 layer_on(SYMB);
             }
@@ -288,7 +306,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             if(record->tap.count && !shift_lock) {
                 unregister_code(KC_QUOT);
             } else {
-                symb_shift--;
+                if(--symb_shift < 0) symb_shift = 0;
                 if((!symb_shift) && (!symb_lock)) layer_off(SYMB);
             }
         }
@@ -299,7 +317,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             if (record->tap.count && !shift_lock) {
                 register_code(KC_BSLS);
             } else {
-                mdia_shift++;
+                if(++mdia_shift > 2) mdia_shift = 2;
                 if(shift_lock) mdia_lock = !mdia_lock;
                 layer_on(MDIA);
             }
@@ -307,7 +325,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             if(record->tap.count && !shift_lock) {
                 unregister_code(KC_BSLS);
             } else {
-                mdia_shift--;
+                if(--mdia_shift < 0) mdia_shift = 0;
                 if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA);
             }
         }
@@ -315,20 +333,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 
         case RLock:
         if (record->event.pressed) {
-            shift_lock++;
+            if(++shift_lock > 2) shift_lock = 2;
+            if(caps_shift) {
+                register_code(KC_CAPS);
+                unregister_code(KC_CAPS);
+            }
             if(symb_shift) symb_lock = !symb_lock;
             if(mdia_shift) mdia_lock = !mdia_lock;
-            if(!record->tap.count && (keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)))) {
-                    register_code(KC_CAPS);
-                    unregister_code(KC_CAPS);
-            } 
             layer_on(LOCK);
         } else {
             if (record->tap.count && !record->tap.interrupted && !symb_shift && !mdia_shift) {
                 register_code(KC_EQL);
                 unregister_code(KC_EQL);
             }
-            shift_lock--;
+            if(--shift_lock < 0) shift_lock = 0;
             if(!shift_lock) layer_off(LOCK);
         }
         break;

BIN
keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png


+ 5 - 5
keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt

@@ -14,12 +14,12 @@
 [{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
 [{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
 [{y:-0.875,x:5.5},"B",{x:6.5},"N"],
-[{y:-0.875,c:"#2277ff",fa:[0,1,0,1,0,0,0],w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5,f:3},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
-[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
-[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
+[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#77aaff",f:3},"Option\n\n\nLAlt",{x:10.5,f:3},"Option\n\n\nRAlt"],
+[{y:-0.875,x:2.5},"Hyper",{x:1,f:3},"Cmd\n\n\nSuper",{x:8.5,f:3},"Cmd\n\n\nSuper",{x:1},"Hyper"],
+[{y:-0.75,x:0.5,f:3},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh",{f:3},"Ctrl\n\n\nRCtrl"],
 [{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"],
-[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
+[{f:3,h:2},"< Del\n\n\nBackspace",{f:3,h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
 [{x:2},"Page\n\n\n\n\n\nDown"],
 [{r:-30,rx:13,y:-1,x:-3},"Left","Right"],
 [{x:-3},"Up",{h:2},"Enter",{h:2},"Space"],

BIN
keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png


+ 2 - 2
keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt

@@ -14,8 +14,8 @@
 [{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
 [{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
 [{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#cccccc",a:7},""],
-[{y:-0.875,c:"#2277ff",a:4,fa:[0,1,0,0,0,0,0],w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#cccccc",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063"},"Delete\n\n\nOption"],
+[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc",a:7},"",{x:14.5,c:"#77aaff",a:4},"RShift",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
+[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"],
 [{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"],
 [{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"],
 [{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],

BIN
keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png


+ 1 - 1
keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt

@@ -14,7 +14,7 @@
 [{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"],
 [{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
 [{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
-[{y:-0.875,c:"#2277ff",f2:1,w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"],
+[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
 [{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"],
 [{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"],
 [{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"],

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1214 - 1197
keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
keyboard/ergodox_ez/keymaps/ordinary/readme.md