Jack Humbert 9 năm trước cách đây
mục cha
commit
b70248fa21
2 tập tin đã thay đổi với 24 bổ sung8 xóa
  1. 5 0
      README.md
  2. 19 8
      quantum/quantum.c

+ 5 - 0
README.md

@@ -134,6 +134,11 @@ Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/)
 
 To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. 
 
+It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your keymap like this:
+
+    #define LSPO_KEY KC_9
+    #define RSPC_KEY KC_0
+
 The only other thing you're going to want to do is create a `makefile.mk` in your keymap directory and set the following:
 
 ```

+ 19 - 8
quantum/quantum.c

@@ -70,6 +70,15 @@ uint8_t chord_key_down = 0;
   static uint8_t input_mode;
 #endif
 
+// Shift / paren setup
+
+#ifndef LSPO_KEY
+  #define LSPO_KEY KC_9
+#endif
+#ifndef RSPC_KEY
+  #define RSPC_KEY KC_0
+#endif
+
 static bool shift_interrupted[2] = {0, 0};
 
 bool keys_chord(uint8_t keys[]) {
@@ -431,18 +440,20 @@ bool process_record_quantum(keyrecord_t *record) {
 
 #endif
 
+  // Shift / paren setup
+
   switch(keycode) {
     case KC_LSPO: {
                     if (record->event.pressed) {
                       shift_interrupted[0] = false;
-                      register_mods(MOD_BIT(KC_LSFT));
+                      register_mods(MOD_LSFT);
                     }
                     else {
                       if (!shift_interrupted[0]) {
-                        register_code(KC_9);
-                        unregister_code(KC_9);
+                        register_code(LSPO_KEY);
+                        unregister_code(LSPO_KEY);
                       }
-                      unregister_mods(MOD_BIT(KC_LSFT));
+                      unregister_mods(MOD_LSFT);
                     }
                     return false;
                     break;
@@ -451,14 +462,14 @@ bool process_record_quantum(keyrecord_t *record) {
     case KC_RSPC: {
                     if (record->event.pressed) {
                       shift_interrupted[1] = false;
-                      register_mods(MOD_BIT(KC_RSFT));
+                      register_mods(MOD_RSFT);
                     }
                     else {
                       if (!shift_interrupted[1]) {
-                        register_code(KC_0);
-                        unregister_code(KC_0);
+                        register_code(RSPC_KEY);
+                        unregister_code(RSPC_KEY);
                       }
-                      unregister_mods(MOD_BIT(KC_RSFT));
+                      unregister_mods(MOD_RSFT);
                     }
                     return false;
                     break;