浏览代码

Merge pull request #22 from qmk/master

Merge from QMK
Damien 8 年之前
父节点
当前提交
0a4a966c66
共有 100 个文件被更改,包括 2359 次插入348 次删除
  1. 3 6
      Dockerfile
  2. 15 0
      keyboards/amj60/amj60.h
  3. 61 0
      keyboards/amj60/keymaps/maximized/keymap.c
  4. 2 2
      keyboards/atomic/keymaps/pvc/keymap.c
  5. 5 5
      keyboards/atreus/keymaps/xyverz/keymap.c
  6. 5 5
      keyboards/atreus62/keymaps/xyverz/keymap.c
  7. 7 14
      keyboards/clueboard/keymaps/mac_optimized/keymap.c
  8. 1 1
      keyboards/clueboard/keymaps/shift_fn/keymap.c
  9. 1 1
      keyboards/clueboard/keymaps/skully/keymap.c
  10. 181 0
      keyboards/clueboard/keymaps/smt/keymap.c
  11. 二进制
      keyboards/clueboard/keymaps/smt/layout.png
  12. 30 0
      keyboards/clueboard/keymaps/smt/readme.md
  13. 5 5
      keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c
  14. 2 2
      keyboards/ergodox/config.h
  15. 1 1
      keyboards/ergodox/ez/config.h
  16. 37 25
      keyboards/ergodox/ez/matrix.c
  17. 27 26
      keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
  18. 110 12
      keyboards/ergodox/keymaps/coderkun_neo2/readme.md
  19. 331 0
      keyboards/ergodox/keymaps/dvorak_programmer_swe/keymap.c
  20. 28 0
      keyboards/ergodox/keymaps/dvorak_programmer_swe/readme.md
  21. 4 4
      keyboards/ergodox/keymaps/xyverz/keymap.c
  22. 23 0
      keyboards/frosty_flake/keymaps/nikchi/Makefile
  23. 24 0
      keyboards/frosty_flake/keymaps/nikchi/config.h
  24. 224 0
      keyboards/frosty_flake/keymaps/nikchi/keymap.c
  25. 24 0
      keyboards/frosty_flake/keymaps/nikchi/readme.md
  26. 2 2
      keyboards/frosty_flake/rules.mk
  27. 4 4
      keyboards/gh60/keymaps/xyverz/keymap.c
  28. 4 4
      keyboards/handwired/atreus50/keymaps/default/keymap.c
  29. 4 4
      keyboards/handwired/ortho5x13/keymaps/default/keymap.c
  30. 15 0
      keyboards/handwired/promethium/color.h
  31. 22 22
      keyboards/handwired/promethium/config.h
  32. 1 0
      keyboards/handwired/promethium/keymaps/priyadi/config.h
  33. 105 64
      keyboards/handwired/promethium/keymaps/priyadi/keymap.c
  34. 1 0
      keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h
  35. 36 0
      keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h
  36. 36 0
      keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h
  37. 2 2
      keyboards/handwired/promethium/matrix.c
  38. 3 3
      keyboards/handwired/promethium/promethium.c
  39. 23 0
      keyboards/hhkb/keymaps/cinaeco/Makefile
  40. 23 0
      keyboards/hhkb/keymaps/cinaeco/README.md
  41. 20 0
      keyboards/hhkb/keymaps/cinaeco/config.h
  42. 186 0
      keyboards/hhkb/keymaps/cinaeco/keymap.c
  43. 4 4
      keyboards/hhkb/keymaps/smt/keymap.c
  44. 1 1
      keyboards/hhkb/rules.mk
  45. 1 1
      keyboards/jd45/keymaps/jeebak/keymap.c
  46. 1 1
      keyboards/jd45/keymaps/jeebak/readme.md
  47. 4 4
      keyboards/kinesis/keymaps/xyverz/keymap.c
  48. 4 4
      keyboards/lets_split/keymaps/OLED_sample/keymap.c
  49. 4 4
      keyboards/lets_split/keymaps/hexwire/keymap.c
  50. 4 4
      keyboards/lets_split/keymaps/i2c/keymap.c
  51. 4 4
      keyboards/lets_split/keymaps/serial/keymap.c
  52. 4 4
      keyboards/lets_split/keymaps/smt/keymap.c
  53. 4 4
      keyboards/lets_split/keymaps/xyverz/keymap.c
  54. 0 0
      keyboards/m10a/Makefile
  55. 0 0
      keyboards/m10a/config.h
  56. 0 0
      keyboards/m10a/keymaps/default/Makefile
  57. 1 1
      keyboards/m10a/keymaps/default/keymap.c
  58. 1 1
      keyboards/m10a/m10a.c
  59. 0 0
      keyboards/m10a/m10a.h
  60. 0 0
      keyboards/m10a/rules.mk
  61. 1 0
      keyboards/miuni32/config.h
  62. 21 0
      keyboards/miuni32/keymaps/adam-lee/Makefile
  63. 8 0
      keyboards/miuni32/keymaps/adam-lee/config.h
  64. 119 0
      keyboards/miuni32/keymaps/adam-lee/keymap.c
  65. 1 0
      keyboards/miuni32/keymaps/adam-lee/readme.md
  66. 87 17
      keyboards/miuni32/keymaps/default/keymap.c
  67. 21 0
      keyboards/miuni32/keymaps/ht_156/Makefile
  68. 8 0
      keyboards/miuni32/keymaps/ht_156/config.h
  69. 181 0
      keyboards/miuni32/keymaps/ht_156/keymap.c
  70. 1 0
      keyboards/miuni32/keymaps/ht_156/readme.md
  71. 2 2
      keyboards/miuni32/miuni32.h
  72. 4 4
      keyboards/phantom/keymaps/xyverz/keymap.c
  73. 2 2
      keyboards/planck/keymaps/ab/keymap.c
  74. 2 2
      keyboards/planck/keymaps/dbroqua/keymap.c
  75. 4 4
      keyboards/planck/keymaps/default/keymap.c
  76. 12 0
      keyboards/planck/keymaps/dshields/Makefile
  77. 31 0
      keyboards/planck/keymaps/dshields/config.h
  78. 二进制
      keyboards/planck/keymaps/dshields/keyboard-layout.jpg
  79. 100 0
      keyboards/planck/keymaps/dshields/keymap.c
  80. 12 0
      keyboards/planck/keymaps/dshields/readme.md
  81. 2 2
      keyboards/planck/keymaps/espynn/keymap.c
  82. 4 4
      keyboards/planck/keymaps/experimental/keymap.c
  83. 4 4
      keyboards/planck/keymaps/impossible/keymap.c
  84. 1 1
      keyboards/planck/keymaps/jeebak/keymap.c
  85. 1 1
      keyboards/planck/keymaps/jeebak/readme.md
  86. 3 3
      keyboards/planck/keymaps/jhenahan/keymap.c
  87. 4 4
      keyboards/planck/keymaps/khord/keymap.c
  88. 4 4
      keyboards/planck/keymaps/pete/keymap.c
  89. 4 4
      keyboards/planck/keymaps/premek/keymap.c
  90. 2 2
      keyboards/planck/keymaps/pvc/keymap.c
  91. 3 3
      keyboards/planck/keymaps/sgoodwin/keymap.c
  92. 4 4
      keyboards/planck/keymaps/smt/keymap.c
  93. 4 4
      keyboards/planck/keymaps/thermal_printer/keymap.c
  94. 4 4
      keyboards/planck/keymaps/unicode/keymap.c
  95. 2 1
      keyboards/planck/keymaps/vifon/keymap.c
  96. 4 4
      keyboards/planck/keymaps/xyverz/keymap.c
  97. 3 3
      keyboards/planck/keymaps/zach/zach_common_functions.c
  98. 3 3
      keyboards/preonic/keymaps/0xdec/keymap.c
  99. 7 7
      keyboards/preonic/keymaps/CMD-Preonic/keymap.c
  100. 4 4
      keyboards/preonic/keymaps/default/keymap.c

+ 3 - 6
Dockerfile

@@ -1,8 +1,7 @@
 FROM debian:jessie
 FROM debian:jessie
 MAINTAINER Erik Dasque <erik@frenchguys.com>
 MAINTAINER Erik Dasque <erik@frenchguys.com>
 
 
-RUN apt-get update
-RUN apt-get install --no-install-recommends -y build-essential \
+RUN apt-get update && apt-get install --no-install-recommends -y build-essential \
     gcc \
     gcc \
     unzip \
     unzip \
     wget \
     wget \
@@ -15,10 +14,8 @@ RUN apt-get install --no-install-recommends -y build-essential \
     gcc-arm-none-eabi \
     gcc-arm-none-eabi \
     binutils-arm-none-eabi \
     binutils-arm-none-eabi \
     libnewlib-arm-none-eabi \
     libnewlib-arm-none-eabi \
-    git
-
-RUN apt-get clean
-RUN rm -rf /var/lib/apt/lists/*
+    git \
+    && rm -rf /var/lib/apt/lists/*
 
 
 ENV keyboard=ergodox
 ENV keyboard=ergodox
 ENV subproject=ez
 ENV subproject=ez

+ 15 - 0
keyboards/amj60/amj60.h

@@ -147,6 +147,21 @@
     {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d}  \
     {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d}  \
 }
 }
 
 
+#define KEYMAP_MAX( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+    k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
+) \
+{ \
+    {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
+    {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+    {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
+    {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+    {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d}  \
+}
+
 void matrix_init_user(void);
 void matrix_init_user(void);
 void matrix_scan_user(void);
 void matrix_scan_user(void);
 
 

+ 61 - 0
keyboards/amj60/keymaps/maximized/keymap.c

@@ -0,0 +1,61 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "amj60.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _DEF 0
+#define _SPC 1
+
+// dual-role shortcuts
+#define SPACEDUAL LT(_SPC, KC_SPACE)
+
+
+// increase readability 
+#define _______ KC_TRNS
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Keymap _DEF: Default Layer
+     * ,-----------------------------------------------------------.
+     * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =| \ | ~ |
+     * |-----------------------------------------------------------|
+     * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| bspc|
+     * |-----------------------------------------------------------|
+     * |Caps   | A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| Return |
+     * |-----------------------------------------------------------|
+     * |Sft | Fn0|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| Sft |Fn2|
+     * |-----------------------------------------------------------|
+     * |Ctrl|Win |Alt |      Space/Fn0         |Alt |Win |Menu|RCtl|
+     * `-----------------------------------------------------------'
+     */
+    [_DEF] = KEYMAP_MAX(
+        KC_ESC,   KC_1,    KC_2,    KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9,    KC_0,    KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
+        KC_TAB,   KC_Q,    KC_W,    KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O,    KC_P,    KC_LBRC, KC_RBRC,    KC_BSPC,  \
+        KC_CAPS,  KC_A,    KC_S,    KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L,    KC_SCLN, KC_QUOT, KC_ENT,   \
+        KC_LSFT,  F(0),    KC_Z,    KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,    F(1),     \
+        KC_LCTL,  KC_LALT, KC_LGUI,             SPACEDUAL,                       KC_RGUI, KC_RALT, KC_RCTL,    F(2)),
+
+    /* Keymap 1: F-and-vim Layer, modified with Space (by holding space)
+     * ,-----------------------------------------------------------.
+     * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|   |  |
+     * |-----------------------------------------------------------|
+     * |    |Paus| Up| [ | ] |   |   |   | ( | ) |   |   |   | Del |
+     * |-----------------------------------------------------------|
+     * |      |Lft|Dwn|Rgt|   |   |Left|Down|Right|Up|  |   | PLAY |
+     * |-----------------------------------------------------------|
+     * |    |   |   |   | < | > |   |M0 |   |   |   |   | Vol+ |   |
+     * |-----------------------------------------------------------|
+     * |    |    |    |                        |Alt |Prev|Vol-|Next|
+     * `-----------------------------------------------------------'
+     */
+    [_SPC] = KEYMAP_MAX(
+        KC_PSCR, KC_F1,   KC_F2,   KC_F3,    KC_F4,   KC_F5,   KC_F6,    KC_F7,     KC_F8,     KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______,  \
+        _______, KC_PAUS, KC_UP,   _______,  _______, _______, _______,  _______, _______, _______, _______, _______, _______, KC_DEL, \
+        _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT,  KC_DOWN,   KC_UP,     KC_RGHT, _______, _______, KC_MPLY, \
+        _______, _______, _______, _______,  _______, _______, KC_SPACE, M(0),      _______,   _______, _______, _______, KC_VOLU, _______, \
+        _______, _______, _______,                                  _______,                                 _______, KC_MPRV, KC_VOLD, KC_MNXT),
+
+};

+ 2 - 2
keyboards/atomic/keymaps/pvc/keymap.c

@@ -255,7 +255,7 @@ float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
 
 
 #endif /* AUDIO_ENABLE */
 #endif /* AUDIO_ENABLE */
 
 
-void persistant_default_layer_set(uint16_t default_layer)
+void persistent_default_layer_set(uint16_t default_layer)
 {
 {
     eeconfig_update_default_layer(default_layer);
     eeconfig_update_default_layer(default_layer);
     default_layer_set(default_layer);
     default_layer_set(default_layer);
@@ -366,7 +366,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
         case MACRO_QWERTY:
         case MACRO_QWERTY:
             if (record->event.pressed)
             if (record->event.pressed)
             {
             {
-                persistant_default_layer_set(1UL<<LAYER_QWERTY);
+                persistent_default_layer_set(1UL<<LAYER_QWERTY);
             }
             }
             break;
             break;
 
 

+ 5 - 5
keyboards/atreus/keymaps/xyverz/keymap.c

@@ -168,7 +168,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -177,25 +177,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   switch (keycode) {
   switch (keycode) {
         case QWERTY:
         case QWERTY:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           return false;
           return false;
           break;
           break;
         case COLEMAK:
         case COLEMAK:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           return false;
           return false;
           break;
           break;
         case DVORAK:
         case DVORAK:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           return false;
           return false;
           break;
           break;
         case DVORMAC:
         case DVORMAC:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_DVORMAC);
+            persistent_default_layer_set(1UL<<_DVORMAC);
           }
           }
           return false;
           return false;
           break;
           break;

+ 5 - 5
keyboards/atreus62/keymaps/xyverz/keymap.c

@@ -119,7 +119,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -128,25 +128,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   switch (keycode) {
   switch (keycode) {
         case QWERTY:
         case QWERTY:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           return false;
           return false;
           break;
           break;
         case COLEMAK:
         case COLEMAK:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           return false;
           return false;
           break;
           break;
         case DVORAK:
         case DVORAK:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           return false;
           return false;
           break;
           break;
         case WOW:
         case WOW:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_WOW);
+            persistent_default_layer_set(1UL<<_WOW);
           }
           }
           return false;
           return false;
           break;
           break;

+ 7 - 14
keyboards/clueboard/keymaps/mac_optimized/keymap.c

@@ -50,35 +50,28 @@ const uint16_t PROGMEM fn_actions[] = {
 
 
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
   static uint8_t mods_pressed;
   static uint8_t mods_pressed;
-  static bool mod_flag;
 
 
   switch (id) {
   switch (id) {
     case 0:
     case 0:
       /* Handle the combined Grave/Esc key
       /* Handle the combined Grave/Esc key
        */
        */
-      mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed
-
       if (record->event.pressed) {
       if (record->event.pressed) {
         /* The key is being pressed.
         /* The key is being pressed.
          */
          */
+        mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed
         if (mods_pressed) {
         if (mods_pressed) {
-          mod_flag = true;
-          add_key(KC_GRV);
-          send_keyboard_report();
+          register_code(KC_GRV);
         } else {
         } else {
-          add_key(KC_ESC);
-          send_keyboard_report();
+          register_code(KC_ESC);
         }
         }
       } else {
       } else {
         /* The key is being released.
         /* The key is being released.
          */
          */
-        if (mod_flag) {
-          mod_flag = false;
-          del_key(KC_GRV);
-          send_keyboard_report();
+        if (mods_pressed) {
+          mods_pressed = false;
+          unregister_code(KC_GRV);
         } else {
         } else {
-          del_key(KC_ESC);
-          send_keyboard_report();
+          unregister_code(KC_ESC);
         }
         }
       }
       }
       break;
       break;

+ 1 - 1
keyboards/clueboard/keymaps/shift_fn/keymap.c

@@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   /* Keymap _FL: Function Layer
   /* Keymap _FL: Function Layer
    */
    */
 [_FL] = KEYMAP(
 [_FL] = KEYMAP(
-  S(KC_GRV), KC_F1,     KC_F2,  KC_F3,  KC_F4,  KC_F5,    KC_F6,    KC_F7,  KC_F8,  KC_F9,     KC_F10,    KC_F11,    KC_F12,    S(KC_GRV), KC_DEL,           BL_STEP,    \
+  KC_GRV, KC_F1,     KC_F2,  KC_F3,  KC_F4,  KC_F5,    KC_F6,    KC_F7,  KC_F8,  KC_F9,     KC_F10,    KC_F11,    KC_F12,    S(KC_GRV), KC_DEL,           BL_STEP,    \
   S(KC_TAB), S(KC_Q),   S(KC_W),S(KC_E),S(KC_R),S(KC_T),  S(KC_Y),  S(KC_U),S(KC_I),S(KC_O),   S(KC_P),   S(KC_LBRC),S(KC_RBRC),S(KC_BSLS),                  S(KC_PGDN), \
   S(KC_TAB), S(KC_Q),   S(KC_W),S(KC_E),S(KC_R),S(KC_T),  S(KC_Y),  S(KC_U),S(KC_I),S(KC_O),   S(KC_P),   S(KC_LBRC),S(KC_RBRC),S(KC_BSLS),                  S(KC_PGDN), \
   S(KC_LCTL),S(KC_A),   MO(_CL),S(KC_D),S(KC_F),S(KC_G),  S(KC_H),  S(KC_J),S(KC_K),S(KC_L),   S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT),                               \
   S(KC_LCTL),S(KC_A),   MO(_CL),S(KC_D),S(KC_F),S(KC_G),  S(KC_H),  S(KC_J),S(KC_K),S(KC_L),   S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT),                               \
   MO(_FL),   S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V),  S(KC_B),  S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO),  KC_RSFT,           KC_PGUP,             \
   MO(_FL),   S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V),  S(KC_B),  S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO),  KC_RSFT,           KC_PGUP,             \

+ 1 - 1
keyboards/clueboard/keymaps/skully/keymap.c

@@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   /* Keymap _FL: Function Layer
   /* Keymap _FL: Function Layer
    */
    */
 [_FL] = KEYMAP(
 [_FL] = KEYMAP(
-  S(KC_GRV), KC_F1,     KC_F2,  KC_F3,  KC_F4,  KC_F5,    KC_F6,    KC_F7,  KC_F8,  KC_F9,     KC_F10,    KC_F11,    KC_F12,    S(KC_GRV), KC_DEL,           BL_STEP,    \
+  KC_GRV, KC_F1,     KC_F2,  KC_F3,  KC_F4,  KC_F5,    KC_F6,    KC_F7,  KC_F8,  KC_F9,     KC_F10,    KC_F11,    KC_F12,    S(KC_GRV), KC_DEL,           BL_STEP,    \
   S(KC_TAB), S(KC_Q),   S(KC_W),S(KC_E),S(KC_R),S(KC_T),  S(KC_Y),  S(KC_U),S(KC_I),S(KC_O),   S(KC_P),   S(KC_LBRC),S(KC_RBRC),S(KC_BSLS),                  S(KC_PGDN), \
   S(KC_TAB), S(KC_Q),   S(KC_W),S(KC_E),S(KC_R),S(KC_T),  S(KC_Y),  S(KC_U),S(KC_I),S(KC_O),   S(KC_P),   S(KC_LBRC),S(KC_RBRC),S(KC_BSLS),                  S(KC_PGDN), \
   S(KC_LCTL),S(KC_A),   MO(_CL),S(KC_D),S(KC_F),S(KC_G),  S(KC_H),  S(KC_J),S(KC_K),S(KC_L),   S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT),                               \
   S(KC_LCTL),S(KC_A),   MO(_CL),S(KC_D),S(KC_F),S(KC_G),  S(KC_H),  S(KC_J),S(KC_K),S(KC_L),   S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT),                               \
   MO(_FL),   S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V),  S(KC_B),  S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO),  KC_RSFT,           KC_PGUP,             \
   MO(_FL),   S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V),  S(KC_B),  S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO),  KC_RSFT,           KC_PGUP,             \

+ 181 - 0
keyboards/clueboard/keymaps/smt/keymap.c

@@ -0,0 +1,181 @@
+#include "clueboard.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _FL 3
+#define _CL 4
+
+enum planck_keycodes {
+  QWERTY = SAFE_RANGE,
+  COLEMAK,
+  DVORAK
+};
+
+// Helpful defines
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define GRAVE_MODS  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
+
+// Custom macros
+#define CTL_ESC     CTL_T(KC_ESC)               // Tap for Esc, hold for Ctrl
+#define HPR_TAB     ALL_T(KC_TAB)               // Tap for Tab, hold for Hyper (Super+Ctrl+Shift+Alt)
+#define SFT_ENT     SFT_T(KC_ENT)               // Tap for Enter, hold for Shift
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap _QWERTY: Base Layer (Default Layer)
+   * ,-----------------------------------------------------------.  ,---.
+   * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  \|  `|  |PgU|
+   * |-----------------------------------------------------------|  |---|
+   * |HpTab|  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|   BS|  |PgD|
+   * |-----------------------------------------------------------|  `---'
+   * |CtlEsc|  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|   | Ent|
+   * |--------------------------------------------------------------.
+   * |Shift|  |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift| Fn| Up|
+   * |------------------------------------------------------------------.
+   * |Ctrl|Gui|Alt |    | Space| Space|    |Alt |Gui |Ctrl|Left|Down|Rgt|
+   * `------------------------------------------------------------------'
+   */
+[_QWERTY] = KEYMAP(
+  F(0),    KC_1,    KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,    KC_0,     KC_MINS,  KC_EQL,   KC_BSLS, KC_GRV,           KC_PGUP, \
+  HPR_TAB, KC_Q,    KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,    KC_P,     KC_LBRC,  KC_RBRC,  KC_BSPC,                   KC_PGDN, \
+  CTL_ESC, KC_A,    KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,    KC_SCLN,  KC_QUOT,  XXXXXXX,  KC_ENT,                             \
+  KC_LSFT, XXXXXXX, KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM, KC_DOT,   KC_SLSH,  SFT_ENT,  MO(_FL),          KC_UP,            \
+  KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX,          KC_SPC,KC_SPC,                        XXXXXXX,  KC_RALT,  KC_RGUI,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+  /* Keymap _COLEMAK: Base Layer
+   * ,-----------------------------------------------------------.  ,---.
+   * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  \|  `|  |PgU|
+   * |-----------------------------------------------------------|  |---|
+   * |HpTab|  Q|  W|  F|  P|  G|  J|  L|  U|  Y|  ;|  [|  ]|   BS|  |PgD|
+   * |-----------------------------------------------------------|  `---'
+   * |CtlEsc|  A|  R|  S|  T|  D|  H|  N|  E|  I|  O|  '|   | Ent|
+   * |--------------------------------------------------------------.
+   * |Shift|  |  Z|  X|  C|  V|  B|  K|  M|  ,|  .|  /|Shift| Fn| Up|
+   * |------------------------------------------------------------------.
+   * |Ctrl|Gui|Alt |    | Space| Space|    |Alt |Gui |Ctrl|Left|Down|Rgt|
+   * `------------------------------------------------------------------'
+   */
+[_COLEMAK] = KEYMAP(
+  F(0),    KC_1,    KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,    KC_0,     KC_MINS,  KC_EQL,   KC_BSLS, KC_GRV,           KC_PGUP, \
+  HPR_TAB, KC_Q,    KC_W,   KC_F,   KC_P,   KC_G,   KC_J,   KC_L,   KC_U,   KC_Y,    KC_SCLN,  KC_LBRC,  KC_RBRC,  KC_BSPC,                   KC_PGDN, \
+  CTL_ESC, KC_A,    KC_R,   KC_S,   KC_T,   KC_D,   KC_H,   KC_N,   KC_E,   KC_I,    KC_O,     KC_QUOT,  XXXXXXX,  KC_ENT,                             \
+  KC_LSFT, XXXXXXX, KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_K,   KC_M,   KC_COMM, KC_DOT,   KC_SLSH,  SFT_ENT,  MO(_FL),          KC_UP,            \
+  KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX,          KC_SPC,KC_SPC,                        XXXXXXX,  KC_RALT,  KC_RGUI,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+  /* Keymap _DVORAK: Base Layer
+   * ,-----------------------------------------------------------.  ,---.
+   * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  [|  ]|  \|  `|  |PgU|
+   * |-----------------------------------------------------------|  |---|
+   * |HpTab|  '|  ,|  .|  P|  Y|  F|  G|  C|  R|  L|  /|  =|   BS|  |PgD|
+   * |-----------------------------------------------------------|  `---'
+   * |CtlEsc|  A|  O|  E|  U|  I|  D|  H|  T|  N|  S|  -|   | Ent|
+   * |--------------------------------------------------------------.
+   * |Shift|  |  ;|  Q|  J|  K|  X|  B|  M|  W|  V|  Z|Shift| Fn| Up|
+   * |------------------------------------------------------------------.
+   * |Ctrl|Gui|Alt |    | Space| Space|    |Alt |Gui |Ctrl|Left|Down|Rgt|
+   * `------------------------------------------------------------------'
+   */
+[_DVORAK] = KEYMAP(
+  F(0),    KC_1,    KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,    KC_0,     KC_LBRC,  KC_RBRC,  KC_BSLS, KC_GRV,           KC_PGUP, \
+  HPR_TAB, KC_QUOT, KC_COMM,KC_DOT, KC_P,   KC_Y,   KC_F,   KC_G,   KC_C,   KC_R,    KC_L,     KC_SLSH,  KC_EQL,   KC_BSPC,                   KC_PGDN, \
+  CTL_ESC, KC_A,    KC_O,   KC_E,   KC_U,   KC_I,   KC_D,   KC_H,   KC_T,   KC_N,    KC_S,     KC_MINS,  XXXXXXX,  KC_ENT,                             \
+  KC_LSFT, XXXXXXX, KC_SCLN,KC_Q,   KC_J,   KC_K,   KC_X,   KC_B,   KC_M,   KC_W,    KC_V,     KC_Z,     SFT_ENT,  MO(_FL),          KC_UP,            \
+  KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX,          KC_SPC,KC_SPC,                        XXXXXXX,  KC_RALT,  KC_RGUI,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+  /* Keymap _FL: Function Layer
+   */
+[_FL] = KEYMAP(
+  KC_GRV,  KC_F1,   KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9,   KC_F10,   KC_F11,   KC_F12,   _______, _______,          BL_STEP, \
+  _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS,  _______,  _______,  KC_DEL,                    _______, \
+  _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______,  _______,  _______,  _______,                            \
+  _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______,  _______,  _______,  MO(_FL),          KC_PGUP,          \
+  _______, _______, _______, _______,        _______,_______,                        _______,  _______,  _______,  _______, KC_HOME, KC_PGDN, KC_END),
+
+  /* Keymap _CL: Control layer
+   */
+[_CL] = KEYMAP(
+  _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______,  _______,  _______,  _______, RGB_TOG,          RGB_VAI, \
+  _______, _______, _______,_______,RESET,  _______,_______,QWERTY, COLEMAK,DVORAK,  _______,  _______,  _______,  _______,                   RGB_VAD, \
+  _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______,  _______,  _______,  _______,                            \
+  MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______,  _______,  _______,  MO(_FL),          RGB_SAI,          \
+  _______, _______, _______,_______,         RGB_MOD,RGB_MOD,                        _______,  _______,  _______,  _______, RGB_HUD, RGB_SAD, RGB_HUI),
+};
+
+/* This is a list of user defined functions. F(N) corresponds to item N
+   of this list.
+ */
+const uint16_t PROGMEM fn_actions[] = {
+  [0] = ACTION_FUNCTION(0),  // Calls action_function()
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+  static uint8_t mods_pressed;
+  static bool mod_flag;
+
+  switch (id) {
+    case 0:
+      /* Handle the combined Grave/Esc key
+       */
+      mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed
+
+      if (record->event.pressed) {
+        /* The key is being pressed.
+         */
+        if (mods_pressed) {
+          mod_flag = true;
+          add_key(KC_GRV);
+          send_keyboard_report();
+        } else {
+          add_key(KC_ESC);
+          send_keyboard_report();
+        }
+      } else {
+        /* The key is being released.
+         */
+        if (mod_flag) {
+          mod_flag = false;
+          del_key(KC_GRV);
+          send_keyboard_report();
+        } else {
+          del_key(KC_ESC);
+          send_keyboard_report();
+        }
+      }
+      break;
+  }
+}
+
+void persistent_default_layer_set(uint16_t default_layer) {
+  eeconfig_update_default_layer(default_layer);
+  default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+    case QWERTY:
+      if (record->event.pressed) {
+        persistent_default_layer_set(1UL<<_QWERTY);
+      }
+      return false;
+      break;
+    case COLEMAK:
+      if (record->event.pressed) {
+        persistent_default_layer_set(1UL<<_COLEMAK);
+      }
+      return false;
+      break;
+    case DVORAK:
+      if (record->event.pressed) {
+        persistent_default_layer_set(1UL<<_DVORAK);
+      }
+      return false;
+      break;
+  }
+  return true;
+}

二进制
keyboards/clueboard/keymaps/smt/layout.png


+ 30 - 0
keyboards/clueboard/keymaps/smt/readme.md

@@ -0,0 +1,30 @@
+```
+ ___     _____ _            _                         _     __    __ _   __
+|__ \   / ____| |          | |                       | |   / /   / /(_) / /
+ ||) | | |    | |_   _  ___| |__   ___   __ _ _ __ __| |  / /_  / /_   / /
+ |/ /  | |    | | | | |/ _ \ '_ \ / _ \ / _` | '__/ _` | | '_ \| '_ \ / /
+ |_|   | |____| | |_| |  __/ |_) | (_) | (_| | | | (_| | | (_) | (_) / / _
+ (_)    \_____|_|\__,_|\___|_.__/ \___/ \__,_|_|  \__,_|  \___/ \___/_/ (_)
+```
+
+# smt Clueboard Layout (HHKB variant)
+
+![Clueboard Layout Image](layout.png)
+
+This is smt's HHKB variant layout, based on the default layout that comes
+flashed on every Clueboard. The primary differences from the default are:
+
+- The Backspace key is moved down into the traditional `\` position
+- `\` and `` ` `` are assigned to the "split-backspace" positions
+- The right Shift is split to allow for a Fn key to its right
+- The modifiers on the right side now mirror the left side (`Alt`/`Super`/`Ctrl`)
+
+For the most part, it's a straightforward and easy to follow layout. There
+are a few special keys:
+
+- The Esc key sends `Esc` when tapped, `` ` `` when `Alt`/`Super`/`Ctrl`/`Fn` is held, or `~` when `Shift` is held
+- The Tab key sends `Tab` when tapped, or `Super+Ctrl+Alt+Shift` (a.k.a. [Hyper]) when held
+- The key traditionally in the Caps-Lock position has been re-mapped to send `Esc` when tapped, or `Ctrl` when held
+- The left Shift key sends `Enter` when tapped, or `Shift` when held
+
+[Hyper]: http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/

+ 5 - 5
keyboards/converter/ibm_terminal/keymaps/priyadi/keymap.c

@@ -256,7 +256,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     */
     */
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -266,25 +266,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     /* layout switcher */
     /* layout switcher */
     case LAY_QWE:
     case LAY_QWE:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<QWE);
+        persistent_default_layer_set(1UL<<QWE);
       }
       }
       return false;
       return false;
       break;
       break;
     case LAY_COL:
     case LAY_COL:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<COL);
+        persistent_default_layer_set(1UL<<COL);
       }
       }
       return false;
       return false;
       break;
       break;
     case LAY_WOR:
     case LAY_WOR:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<WOR);
+        persistent_default_layer_set(1UL<<WOR);
       }
       }
       return false;
       return false;
       break;
       break;
     case LAY_DVO:
     case LAY_DVO:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<DVO);
+        persistent_default_layer_set(1UL<<DVO);
       }
       }
       return false;
       return false;
       break;
       break;

+ 2 - 2
keyboards/ergodox/config.h

@@ -3,8 +3,8 @@
 
 
 #define MOUSEKEY_INTERVAL       20
 #define MOUSEKEY_INTERVAL       20
 #define MOUSEKEY_DELAY          0
 #define MOUSEKEY_DELAY          0
-#define MOUSEKEY_TIME_TO_MAX    5
-#define MOUSEKEY_MAX_SPEED      2
+#define MOUSEKEY_TIME_TO_MAX    40
+#define MOUSEKEY_MAX_SPEED      7
 #define MOUSEKEY_WHEEL_DELAY 0
 #define MOUSEKEY_WHEEL_DELAY 0
 
 
 #define TAPPING_TOGGLE  1
 #define TAPPING_TOGGLE  1

+ 1 - 1
keyboards/ergodox/ez/config.h

@@ -58,7 +58,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define RGBW 1
 #define RGBW 1
 
 
 /* Set 0 if debouncing isn't needed */
 /* Set 0 if debouncing isn't needed */
-#define DEBOUNCE    5
+#define DEBOUNCE    15
 
 
 #define USB_MAX_POWER_CONSUMPTION 500
 #define USB_MAX_POWER_CONSUMPTION 500
 
 

+ 37 - 25
keyboards/ergodox/ez/matrix.c

@@ -53,11 +53,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef DEBOUNCE
 #ifndef DEBOUNCE
 #   define DEBOUNCE	5
 #   define DEBOUNCE	5
 #endif
 #endif
-static uint8_t debouncing = DEBOUNCE;
 
 
 /* matrix state(1:on, 0:off) */
 /* matrix state(1:on, 0:off) */
 static matrix_row_t matrix[MATRIX_ROWS];
 static matrix_row_t matrix[MATRIX_ROWS];
-static matrix_row_t matrix_debouncing[MATRIX_ROWS];
+
+// Debouncing: store for each key the number of scans until it's eligible to
+// change.  When scanning the matrix, ignore any changes in keys that have
+// already changed in the last DEBOUNCE scans.
+static uint8_t debounce_matrix[MATRIX_ROWS * MATRIX_COLS];
 
 
 static matrix_row_t read_cols(uint8_t row);
 static matrix_row_t read_cols(uint8_t row);
 static void init_cols(void);
 static void init_cols(void);
@@ -113,7 +116,9 @@ void matrix_init(void)
     // initialize matrix state: all keys off
     // initialize matrix state: all keys off
     for (uint8_t i=0; i < MATRIX_ROWS; i++) {
     for (uint8_t i=0; i < MATRIX_ROWS; i++) {
         matrix[i] = 0;
         matrix[i] = 0;
-        matrix_debouncing[i] = 0;
+        for (uint8_t j=0; j < MATRIX_COLS; ++j) {
+            debounce_matrix[i * MATRIX_COLS + j] = 0;
+        }
     }
     }
 
 
 #ifdef DEBUG_MATRIX_SCAN_RATE
 #ifdef DEBUG_MATRIX_SCAN_RATE
@@ -134,14 +139,36 @@ void matrix_power_up(void) {
     // initialize matrix state: all keys off
     // initialize matrix state: all keys off
     for (uint8_t i=0; i < MATRIX_ROWS; i++) {
     for (uint8_t i=0; i < MATRIX_ROWS; i++) {
         matrix[i] = 0;
         matrix[i] = 0;
-        matrix_debouncing[i] = 0;
     }
     }
 
 
 #ifdef DEBUG_MATRIX_SCAN_RATE
 #ifdef DEBUG_MATRIX_SCAN_RATE
     matrix_timer = timer_read32();
     matrix_timer = timer_read32();
     matrix_scan_count = 0;
     matrix_scan_count = 0;
 #endif
 #endif
+}
+
+// Returns a matrix_row_t whose bits are set if the corresponding key should be
+// eligible to change in this scan.
+matrix_row_t debounce_mask(uint8_t row) {
+  matrix_row_t result = 0;
+  for (uint8_t j=0; j < MATRIX_COLS; ++j) {
+    if (debounce_matrix[row * MATRIX_COLS + j]) {
+      --debounce_matrix[row * MATRIX_COLS + j];
+    } else {
+      result |= (1 << j);
+    }
+  }
+  return result;
+}
 
 
+// Report changed keys in the given row.  Resets the debounce countdowns
+// corresponding to each set bit in 'change' to DEBOUNCE.
+void debounce_report(matrix_row_t change, uint8_t row) {
+  for (uint8_t i = 0; i < MATRIX_COLS; ++i) {
+    if (change & (1 << i)) {
+      debounce_matrix[row * MATRIX_COLS + i] = DEBOUNCE;
+    }
+  }
 }
 }
 
 
 uint8_t matrix_scan(void)
 uint8_t matrix_scan(void)
@@ -178,26 +205,12 @@ uint8_t matrix_scan(void)
     for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
     for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
         select_row(i);
         select_row(i);
         wait_us(30);  // without this wait read unstable value.
         wait_us(30);  // without this wait read unstable value.
-        matrix_row_t cols = read_cols(i);
-        if (matrix_debouncing[i] != cols) {
-            matrix_debouncing[i] = cols;
-            if (debouncing) {
-                debug("bounce!: "); debug_hex(debouncing); debug("\n");
-            }
-            debouncing = DEBOUNCE;
-        }
-        unselect_rows();
-    }
+        matrix_row_t mask = debounce_mask(i);
+        matrix_row_t cols = (read_cols(i) & mask) | (matrix[i] & ~mask);
+        debounce_report(cols ^ matrix[i], i);
+        matrix[i] = cols;
 
 
-    if (debouncing) {
-        if (--debouncing) {
-            wait_us(1);
-            // this should be wait_ms(1) but has been left as-is at EZ's request
-        } else {
-            for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
-                matrix[i] = matrix_debouncing[i];
-            }
-        }
+        unselect_rows();
     }
     }
 
 
     matrix_scan_quantum();
     matrix_scan_quantum();
@@ -205,9 +218,8 @@ uint8_t matrix_scan(void)
     return 1;
     return 1;
 }
 }
 
 
-bool matrix_is_modified(void)
+bool matrix_is_modified(void) // deprecated and evidently not called.
 {
 {
-    if (debouncing) return false;
     return true;
     return true;
 }
 }
 
 

+ 27 - 26
keyboards/ergodox/keymaps/coderkun_neo2/keymap.c

@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │     │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤
  * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │     │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤
  * │ LSHFT │  Ü  │  Ö  │  Ä  │  P  │  Z  │     │     │     │  B  │  M  │  ,  │  .  │  J  │ Shift │
  * │ LSHFT │  Ü  │  Ö  │  Ä  │  P  │  Z  │     │     │     │  B  │  M  │  ,  │  .  │  J  │ Shift │
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
- *   │ CTL │ ALT │ MO1 │ Win │ Mod4│                             │ Mod4│ Win │ MO1 │ Alt │ CTL │
+ *   │ CTL │ ALT │ MO1 │ Win │ Mod4│                             │ Mod4│ Win │ MO1 │ ALT │ CTL │
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
  *                                   │  ←  │  ↑  │ │  ↓  │  →  │
  *                                   │  ←  │  ↑  │ │  ↓  │  →  │
  *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
  *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_END,     NEO_K,  NEO_H,  NEO_G,  NEO_F,  NEO_Q,  NEO_SS,
         KC_END,     NEO_K,  NEO_H,  NEO_G,  NEO_F,  NEO_Q,  NEO_SS,
                     NEO_S,  NEO_N,  NEO_R,  NEO_T,  NEO_D,  NEO_L1_R,
                     NEO_S,  NEO_N,  NEO_R,  NEO_T,  NEO_D,  NEO_L1_R,
         TG(PMN),    NEO_B,  NEO_M,  KC_COMM,KC_DOT, NEO_J,  KC_RSFT,
         TG(PMN),    NEO_B,  NEO_M,  KC_COMM,KC_DOT, NEO_J,  KC_RSFT,
-                            NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
+                            NEO_L2_R,KC_RGUI,MO(FMU),KC_LALT,KC_RCTL,
         KC_DOWN,    KC_RGHT,
         KC_DOWN,    KC_RGHT,
         KC_MINS,
         KC_MINS,
         MEH_T(KC_NO),KC_ENT,KC_SPC
         MEH_T(KC_NO),KC_ENT,KC_SPC
@@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
  * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
  * │ LSHFT │  Ä  │  Q  │  R  │  W  │  N  │     │     │     │  J  │  M  │  ,  │  .  │  ẞ  │ Shift │
  * │ LSHFT │  Ä  │  Q  │  R  │  W  │  N  │     │     │     │  J  │  M  │  ,  │  .  │  ẞ  │ Shift │
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
- *   │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ Alt │ CTL │
+ *   │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ ALT │ CTL │
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
  *                                   │  ←  │  ↑  │ │  ↓  │  →  │
  *                                   │  ←  │  ↑  │ │  ↓  │  →  │
  *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
  *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
@@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_END,     DE_B,   DE_A,   DE_S,   DE_G,   DE_V,   DE_Y,
         KC_END,     DE_B,   DE_A,   DE_S,   DE_G,   DE_V,   DE_Y,
                     DE_U,   DE_MINS,DE_Z,   DE_E,   DE_X,   NEO_L1_R,
                     DE_U,   DE_MINS,DE_Z,   DE_E,   DE_X,   NEO_L1_R,
         KC_TRNS,    DE_J,   DE_M,   DE_COMM,DE_DOT, DE_SS,  KC_RSFT,
         KC_TRNS,    DE_J,   DE_M,   DE_COMM,DE_DOT, DE_SS,  KC_RSFT,
-                            MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
+                            MO(NHL),KC_RGUI,MO(FMU),KC_LALT,KC_RCTL,
         KC_DOWN,    KC_RGHT,
         KC_DOWN,    KC_RGHT,
         KC_MINS,
         KC_MINS,
         MEH_T(KC_NO),KC_ENT,KC_SPC
         MEH_T(KC_NO),KC_ENT,KC_SPC
@@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
  * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
  * │ LSHFT │  Ü  │  Ö  │  Ä  │  P  │  Z  │     │     │     │  B  │  M  │  ,  │  .  │  J  │ Shift │
  * │ LSHFT │  Ü  │  Ö  │  Ä  │  P  │  Z  │     │     │     │  B  │  M  │  ,  │  .  │  J  │ Shift │
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
- *   │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ Alt │ CTL │
+ *   │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ ALT │ CTL │
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
  *                                   │  ←  │  ↑  │ │  ↓  │  →  │
  *                                   │  ←  │  ↑  │ │  ↓  │  →  │
  *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
  *                             ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
@@ -127,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         KC_END,     DE_K,   DE_H,   DE_G,   DE_F,   DE_Q,   DE_SS,
         KC_END,     DE_K,   DE_H,   DE_G,   DE_F,   DE_Q,   DE_SS,
                     DE_S,   DE_N,   DE_R,   DE_T,   DE_D,   KC_NO,
                     DE_S,   DE_N,   DE_R,   DE_T,   DE_D,   KC_NO,
         KC_TRNS,    DE_B,   DE_M,   KC_COMM,KC_DOT, DE_J,   KC_RSFT,
         KC_TRNS,    DE_B,   DE_M,   KC_COMM,KC_DOT, DE_J,   KC_RSFT,
-                            MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
+                            MO(NHL),KC_RGUI,MO(FMU),KC_LALT,KC_RCTL,
         KC_DOWN,    KC_RGHT,
         KC_DOWN,    KC_RGHT,
         KC_MINS,
         KC_MINS,
         MEH_T(KC_NO),KC_ENT,KC_SPC
         MEH_T(KC_NO),KC_ENT,KC_SPC
@@ -135,13 +135,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
 /* Layer 3: F-keys, Mouse and Unicode
 /* Layer 3: F-keys, Mouse and Unicode
  * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
  * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
- * │       │     │     │     │     │     │     │     │     │     │     │     │     │     │       │
+ * │       │ F1  │ F2  │ F3  │ F4  │ F5  │ F6  │     │ F7  │ F8  │ F9  │ F10 │ F11 │ F12 │       │
  * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
  * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
- * │       │  ┌  │  ┬  │  ┐  │  ─  │  │  │     │     │     │     │ F9  │ F10 │ F11 │ F12 │       │
+ * │       │  ┌  │  ┬  │  ┐  │  ─  │  │  │     │     │     │  ↔  │  ←  │  →  │  ↑  │  ↓  │       │
  * ├───────┼─────┼─────┼─────╆─────╅─────┤     │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
  * ├───────┼─────┼─────┼─────╆─────╅─────┤     │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
- * │       │  ├  │  ┼  │  ┤  │  ✓  │  ✕  ├─────┤     ├─────┤     │ F5  │ F6  │ F7  │ F8  │       │
+ * │       │  ├  │  ┼  │  ┤  │  〈 │  〉 ├─────┤     ├─────┤     │  ✓  │  ✕  │  •  │  ∶  │       │
  * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
  * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
- * │       │  └  │  ┴  │  ┘  │  ↔  │  ⇔  │     │     │     │     │ F1  │ F2  │ F3  │ F4  │       │
+ * │       │  └  │  ┴  │  ┘  │     │     │     │     │     │  ⇔  │  ⇐  │  ⇒  │  ⇑  │  ⇓  │       │
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
  * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
  *   │     │     │(MO1)│     │(MO4)│                             │(MO4)│     │(MO1)│     │     │
  *   │     │     │(MO1)│     │(MO4)│                             │(MO4)│     │(MO1)│     │     │
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
  *   └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
@@ -154,23 +154,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  */
  */
 [FMU] = KEYMAP(
 [FMU] = KEYMAP(
         // left hand
         // left hand
-        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+        KC_TRNS,    KC_F1,     KC_F2,     KC_F3,     KC_F4,     KC_F5,     KC_F6,
         KC_TRNS,    UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS,
         KC_TRNS,    UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS,
-        KC_TRNS,    UC(0x251C),UC(0x253C),UC(0x2524),UC(0x2713),UC(0x2715),
-        KC_TRNS,    UC(0x2514),UC(0x2534),UC(0x2518),UC(0x2194),UC(0x21D4),KC_TRNS,
-        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
-                                                    KC_MS_L,    KC_MS_U,
+        KC_TRNS,    UC(0x251C),UC(0x253C),UC(0x2524),UC(0x3008),UC(0x3009),
+        KC_TRNS,    UC(0x2514),UC(0x2534),UC(0x2518),KC_TRNS,   KC_TRNS,   KC_TRNS,
+        KC_TRNS,    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+                                                     KC_MS_L,   KC_MS_U,
                                                                 KC_BTN1,
                                                                 KC_BTN1,
-                                            KC_TRNS,KC_TRNS,    KC_TRNS,
+                                            KC_TRNS, KC_TRNS,   KC_TRNS,
         // right hand
         // right hand
-        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
-        KC_TRNS,    KC_TRNS,KC_F9,  KC_F10, KC_F11, KC_F12, KC_TRNS,
-                    KC_TRNS,KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_TRNS,
-        KC_TRNS,    KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_TRNS,
-                            KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+        KC_F7,      KC_F8,     KC_F9,     KC_F10,    KC_F11,    KC_F12,    KC_TRNS,
+        KC_TRNS,    UC(0x2194),UC(0x2190),UC(0x2192),UC(0x2191),UC(0x2193),KC_TRNS,
+                    KC_TRNS,   UC(0x2713),UC(0x2715),UC(0x2022),UC(0x2236),KC_TRNS,
+        KC_TRNS,    UC(0x21D4),UC(0x21D0),UC(0x21D2),UC(0x21D1),UC(0x21D3),KC_TRNS,
+                               KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
         KC_MS_D,    KC_MS_R,
         KC_MS_D,    KC_MS_R,
         KC_BTN2,
         KC_BTN2,
-        KC_TRNS,    KC_TRNS,KC_TRNS
+        KC_TRNS,    KC_TRNS,   KC_TRNS
     ),
     ),
 
 
 /* Layer 4: Neo’s software layer 4 rebuilt in Hardware
 /* Layer 4: Neo’s software layer 4 rebuilt in Hardware
@@ -294,11 +294,10 @@ void unicode_input_start (void) {
 // Override method to use NEO_A instead of KC_A
 // Override method to use NEO_A instead of KC_A
 uint16_t hex_to_keycode(uint8_t hex)
 uint16_t hex_to_keycode(uint8_t hex)
 {
 {
-  if (hex == 0x0) {
+  if(hex == 0x0) {
     return KC_0;
     return KC_0;
-  } else if (hex < 0xA) {
-    return KC_1 + (hex - 0x1);
-  } else {
+  }
+  else if(hex >= 0xA) {
     switch(hex) {
     switch(hex) {
       case 0xA:
       case 0xA:
         return NEO_A;
         return NEO_A;
@@ -316,4 +315,6 @@ uint16_t hex_to_keycode(uint8_t hex)
         return KC_NO;
         return KC_NO;
     }
     }
   }
   }
+
+  return KC_1 + (hex - 0x1);
 }
 }

+ 110 - 12
keyboards/ergodox/keymaps/coderkun_neo2/readme.md

@@ -4,10 +4,18 @@ The idea of this layout is to use it for [Neo2](http://www.neo-layout.org) but a
 
 
 The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course).
 The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course).
 
 
-It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and (hopefully in the near future) some useful Unicode symbols.
+It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and some useful Unicode symbols.
 
 
 
 
-## Layers
+## Build
+
+    ```
+    make clean
+    make coderkun_neo2
+    ```
+
+
+## Keymap
 
 
 0. Default layer for Neo2
 0. Default layer for Neo2
 1. Poor man’s QWERTZ
 1. Poor man’s QWERTZ
@@ -16,16 +24,106 @@ It also features a layer for additional keys like F-keys (F1 – F12), some mous
 4. Neo’s software layers 4 rebuilt in hardware
 4. Neo’s software layers 4 rebuilt in hardware
 
 
 
 
-## Build
+### Layer 0: Default layer for Neo2
 
 
-1. Enable Unicode in Makefile
+    ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+    │  TAB  │  1  │  2  │  3  │  4  │  5  │  `  │     │  ´  │  6  │  7  │  8  │  9  │  0  │ BKSPC │
+    ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+    │   Y   │  X  │  V  │  L  │  C  │  W  │ HOM │     │ END │  K  │  H  │  G  │  F  │  Q  │  ß    │
+    ├───────┼─────┼─────┼─────╆─────╅─────┤  E  │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+    │ Mod3  │  U  │  I  │  A  │  E  │  O  ├─────┤     ├─────┤  S  │  N  │  R  │  T  │  D  │ Mod3  │
+    ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │     │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤
+    │ LSHFT │  Ü  │  Ö  │  Ä  │  P  │  Z  │     │     │     │  B  │  M  │  ,  │  .  │  J  │ Shift │
+    └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+      │ CTL │ ALT │ MO1 │ Win │ Mod4│                             │ Mod4│ Win │ MO1 │ Alt │ CTL │
+      └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+                                      │  ←  │  ↑  │ │  ↓  │  →  │
+                                ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+                                │     │     │  ─  │ │  ─  │     │     │
+                                │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
+                                │     │     │ HYP │ │ MEH │     │     │
+                                └─────┴─────┴─────┘ └─────┴─────┴─────┘
 
 
-    ```
-    UNICODE_ENABLE   = yes
-    ```
-2. Build as usual
 
 
-    ```
-    make clean
-    make KEYMAP=coderkun_neo2
-    ```
+### Layer 1: Poor man’s QWERTZ
+
+    ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+    │  TAB  │  1  │  2  │  3  │  4  │  5  │  `  │     │  ´  │  6  │  7  │  8  │  9  │  0  │ BKSPC │
+    ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+    │   C   │  P  │  T  │  F  │  K  │  L  │ HOM │     │ END │  B  │  A  │  S  │  G  │  V  │  Y    │
+    ├───────┼─────┼─────┼─────╆─────╅─────┤  E  │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+    │ Mod3  │  D  │  H  │  Ö  │  O  │  I  ├─────┤     ├─────┤  U  │  -  │  Z  │  E  │  X  │ Mod3  │
+    ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+    │ LSHFT │  Ä  │  Q  │  R  │  W  │  N  │     │     │     │  J  │  M  │  ,  │  .  │  ẞ  │ Shift │
+    └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+      │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ Alt │ CTL │
+      └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+                                      │  ←  │  ↑  │ │  ↓  │  →  │
+                                ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+                                │     │     │  ─  │ │  ─  │     │     │
+                                │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
+                                │     │     │ HYP │ │ MEH │     │     │
+                                └─────┴─────┴─────┘ └─────┴─────┴─────┘
+
+
+### Layer 2: Poor man’s Neo
+
+    ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+    │  TAB  │  1  │  2  │  3  │  4  │  5  │  `  │     │  ´  │  6  │  7  │  8  │  9  │  0  │ BKSPC │
+    ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+    │   Y   │  X  │  V  │  L  │  C  │  W  │ HOM │     │ END │  K  │  H  │  G  │  F  │  Q  │  ß    │
+    ├───────┼─────┼─────┼─────╆─────╅─────┤  E  │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+    │ Mod3  │  U  │  I  │  A  │  E  │  O  ├─────┤     ├─────┤  S  │  N  │  R  │  T  │  D  │ Mod3  │
+    ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+    │ LSHFT │  Ü  │  Ö  │  Ä  │  P  │  Z  │     │     │     │  B  │  M  │  ,  │  .  │  J  │ Shift │
+    └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+      │ CTL │ ALT │ MO1 │ Win │ MO4 │                             │ M04 │ Win │ MO1 │ Alt │ CTL │
+      └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+                                      │  ←  │  ↑  │ │  ↓  │  →  │
+                                ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+                                │     │     │  ─  │ │  ─  │     │     │
+                                │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │
+                                │     │     │ HYP │ │ MEH │     │     │
+                                └─────┴─────┴─────┘ └─────┴─────┴─────┘
+
+
+### Layer 3: F-keys, mouse keys und Unicode symbols
+
+    ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+    │       │ F1  │ F2  │ F3  │ F4  │ F5  │ F6  │     │ F7  │ F8  │ F9  │ F10 │ F11 │ F12 │       │
+    ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+    │       │  ┌  │  ┬  │  ┐  │  ─  │  │  │     │     │     │  ↔  │  ←  │  →  │  ↑  │  ↓  │       │
+    ├───────┼─────┼─────┼─────╆─────╅─────┤     │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+    │       │  ├  │  ┼  │  ┤  │ 〈  │  〉 ├─────┤     ├─────┤     │  ✓  │  ✕  │  •  │  ∶  │       │
+    ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+    │       │  └  │  ┴  │  ┘  │     │     │     │     │     │  ⇔  │  ⇐  │  ⇒  │  ⇑  │  ⇓  │       │
+    └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+      │     │     │(MO1)│     │(MO4)│                             │(MO4)│     │(MO1)│     │     │
+      └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+                                      │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │
+                                ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+                                │     │     │ MLC │ │ MRC │     │     │
+                                │     │     ├─────┤ ├─────┤     │     │
+                                │     │     │     │ │     │     │     │
+                                └─────┴─────┴─────┘ └─────┴─────┴─────┘
+
+
+### Layer 4: Neo’s software layers 4 rebuilt in hardware
+
+    ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐     ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐
+    │       │     │     │     │     │     │     │     │     │     │     │     │     │     │       │
+    ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤     ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤
+    │       │ PgUp│ BSpc│  ↑  │ Del │ PgDn│     │     │     │     │  7  │  8  │  9  │  +  │   −   │
+    ├───────┼─────┼─────┼─────╆─────╅─────┤     │     │     ├─────╆─────╅─────┼─────┼─────┼───────┤
+    │       │ Home│  ←  │  ↓  │  →  │ End ├─────┤     ├─────┤     │  4  │  5  │  6  │  ,  │   .   │
+    ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│     │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤
+    │       │ Esc │ Tab │ Ins │ Ret │ Undo│     │     │     │     │  1  │  2  │  3  │     │       │
+    └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘     └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘
+      │     │     │(MO1)│     │(MO4)│                             │(MO4)│     │(MO1)│     │     │
+      └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘
+                                      │     │     │ │     │     │
+                                ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐
+                                │     │     │     │ │     │     │     │
+                                │     │     ├─────┤ ├─────┤     │     │
+                                │     │     │     │ │     │     │     │
+                                └─────┴─────┴─────┘ └─────┴─────┴─────┘

+ 331 - 0
keyboards/ergodox/keymaps/dvorak_programmer_swe/keymap.c

@@ -0,0 +1,331 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+#include "keymap_nordic.h"
+#include "keymap_norwegian.h"
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // mouse keys
+#define DEVL 3 // dev keys
+
+#define MACRO_PUBLIC 10
+#define MACRO_PRIVATE 11
+#define MACRO_PROT 12
+
+#define MACRO_SHARED 13
+#define MACRO_CONST 14
+#define MACRO_DIM 15
+#define MACRO_STRING 16
+#define MACRO_INT 17
+#define MACRO_DEC 18
+#define MACRO_BOOL 19
+
+#define MACRO_RETURN 20
+#define MACRO_NOTHING 21
+#define MACRO_TODO 22
+
+#define MACRO_SAVE 24
+#define MACRO_BUILD 25
+#define MACRO_DEBUG 26
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |   L3   |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   \    |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * | Del    |   -  |   ,  |   .  |   P  |   Y  |  LT1 |           |  LT1 |   F  |   G  |   C  |   R  |   L  |   Å    |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * | WIN    |   A  |   O  |   E  |   U  |   I  |------|           |------|   D  |   H  |   T  |   N  |   S  |   Ä    |
+ * |--------+------+------+------+------+------|  LT2 |           |  LT2 |------+------+------+------+------+--------|
+ * | LShift |   Ö  |   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |Z/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   | CTRL |  L1  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
+ *                                 ,------|------|------|       |------+--------+------.
+ *                                 |      |      | Home |       | PgUp |        |      |
+ *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
+ *                                 |      |ace   | End  |       | PgDn |        |      |
+ *                                 `--------------------'       `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP(  // layer 0 : default
+        // left hand
+        MO(DEVL),       KC_1,           KC_2,    KC_3,   KC_4,   KC_5,   KC_LEFT,
+        KC_DELT,        NO_MINS,        KC_COMM, KC_DOT, KC_P,   KC_Y,   TG(SYMB),
+        KC_LGUI,        KC_A,           KC_O,    KC_E,   KC_U,   KC_I,
+        KC_LSFT,        CTL_T(KC_SCLN), KC_Q,    KC_J,   KC_K,   KC_X,   TG(MDIA),
+        CTL_T(KC_NO),   MO(SYMB),       LALT(KC_LSFT),  KC_LEFT,KC_RGHT,
+                                              ALT_T(KC_APP),  KC_LGUI,
+                                                              KC_HOME,
+                                               KC_SPC,KC_BSPC,KC_END,
+        // right hand
+             KC_RGHT,     KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_BSLASH,
+             TG(1),       KC_F,   KC_G,   KC_C,   KC_R,   KC_L,             NO_AM,
+                          KC_D,   KC_H,   KC_T,   KC_N,   KC_S,             NO_AE,
+             TG(MDIA),KC_B,   KC_M,   KC_W,   KC_V,   CTL_T(KC_Z),      KC_RSFT,
+                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC,          KC_FN1,
+             KC_LALT,        CTL_T(KC_ESC),
+             KC_PGUP,
+             KC_PGDN,KC_TAB, KC_ENT
+    ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |   @  |   {  |   }  |   [  |   ]  |      |           |      |   <  |   7  |   8  |   9  |   *  |   F12  |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |   #  |   (  |   )  |   \  |   /  |------|           |------|   >  |   4  |   5  |   6  |   +  |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      | UND  | CUT  | COP  | PAS  |      |           |      |   ?  |   1  |   2  |   3  |   %  |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |   .  |   0  |   =  |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+       // left hand
+       M(0),      KC_F1,   KC_F2,    KC_F3,    KC_F4,     KC_F5,    KC_TRNS,
+       KC_TRNS,   NO_AT,   ALGR(KC_7),  ALGR(KC_0),  NO_LBRC,   NO_RBRC,  KC_TRNS,
+       KC_TRNS,   KC_HASH, NO_LPRN,  NO_RPRN,  ALGR(KC_MINS), NO_SLSH,
+       KC_TRNS,   KC_TRNS, LCTL(KC_Z),  LCTL(KC_X),  LCTL(KC_C),    LCTL(KC_V),  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_F6,   KC_F7,  KC_F8,   KC_F9,   KC_F10,  KC_F11,
+       KC_TRNS, NO_LESS,   KC_7,   KC_8,    KC_9,    KC_KP_ASTERISK, KC_F12,
+                LSFT(NO_LESS), KC_4,   KC_5,    KC_6,    KC_KP_PLUS, KC_TRNS,
+       KC_TRNS, NO_QUES, KC_1,   KC_2,    KC_3,    LSFT(KC_5), KC_TRNS,
+                         KC_DOT,KC_0,  LSFT(KC_0),    KC_TRNS,  KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        |      |      | MsUp |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      | Lclk | Rclk |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+[MDIA] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+                                           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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, KC_TRNS,
+       KC_TRNS,
+       KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 3: Developer keys in vb.net
+ * shortened in layout beneth, for example int-> integer
+ *
+ * ,--------------------------------------------------.           ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+ * |        | Save |Build |Debug |      |      |      |           |      | bool | int  |string| dec  | Todo |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |------|           |------| priv | publ |shared| prot |      |        |
+ * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |           |      | const| dim  |return|nothin|      |        |
+ * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                       |      |      |      |      |      |
+ *   `----------------------------------'                                       `----------------------------------'
+ *                                        ,-------------.       ,-------------.
+ *                                        |      |      |       |      |      |
+ *                                 ,------|------|------|       |------+------+------.
+ *                                 |      |      |      |       |      |      |      |
+ *                                 |      |      |------|       |------|      |      |
+ *                                 |      |      |      |       |      |      |      |
+ *                                 `--------------------'       `--------------------'
+ */
+// MEDIA AND MOUSE
+[DEVL] = KEYMAP(
+       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+       KC_TRNS, M(MACRO_SAVE), M(MACRO_BUILD), M(MACRO_DEBUG), 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_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,  M(MACRO_BOOL), M(MACRO_INT), M(MACRO_STRING), M(MACRO_DEC), M(MACRO_TODO), KC_TRNS,
+                 M(MACRO_PRIVATE), M(MACRO_PUBLIC), M(MACRO_SHARED), M(MACRO_PROT), KC_TRNS, KC_TRNS,
+       KC_TRNS,  M(MACRO_CONST), M(MACRO_DIM), M(MACRO_RETURN), M(MACRO_NOTHING), 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
+),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+            if (record->event.pressed) {
+                register_code(KC_RSFT);
+            } else {
+                unregister_code(KC_RSFT);
+            }
+            break;
+        case MACRO_PUBLIC:
+			if (record->event.pressed) {
+				return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END);
+			} 
+			break;
+		case MACRO_PRIVATE:
+			if (record->event.pressed) {
+				return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END);
+			} 
+			break;
+        case MACRO_PROT:
+			if (record->event.pressed) {
+				return MACRO( T(P), T(R), T(O), T(T), T(E), T(C), T(T), T(E), T(D), T(SPACE),END);
+			} 
+			break;
+		case MACRO_SHARED:
+			if (record->event.pressed) {
+				return MACRO( T(S), T(H), T(A), T(R), T(E), T(D), T(SPACE), END);
+			} 
+			break;
+		case MACRO_CONST:
+			if (record->event.pressed) {
+				return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END);
+			} 
+			break;		
+		case MACRO_DIM:
+			if (record->event.pressed) {
+				return MACRO( T(D), T(I), T(M), T(SPACE), END);
+			} 
+			break;
+		case MACRO_STRING:
+			if (record->event.pressed) {
+				return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END);
+			} 
+			break;		
+		case MACRO_BOOL:
+			if (record->event.pressed) {
+				return MACRO( T(B), T(O), T(O), T(L), T(E), T(A), T(N), T(SPACE), END);
+			} 
+			break;		
+		case MACRO_INT:
+			if (record->event.pressed) {
+				return MACRO( T(I), T(N), T(T), T(SPACE), END);
+			} 
+			break;
+		case MACRO_DEC:
+			if (record->event.pressed) {
+				return MACRO( T(D), T(E), T(C), T(I), T(M), T(A), T(L), T(SPACE), END);
+			} 
+			break;
+		case MACRO_RETURN:
+			if (record->event.pressed) {
+				return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), T(SPACE), END);
+			} 
+			break;
+		case MACRO_NOTHING:
+			if (record->event.pressed) {
+				return MACRO( T(N), T(O), T(T), T(H), T(I), T(N), T(G), T(SPACE), END);
+			} 		
+		case MACRO_TODO:
+			if (record->event.pressed) {
+				return MACRO( KC_BSLASH, D(LSHIFT) ,T(T), T(O), T(D), T(O), KC_DOT, U(LSHIFT),  T(SPACE),END);
+			} 
+			break;	
+        case MACRO_SAVE:
+			if (record->event.pressed) {
+				return MACRO( D(LCTL) ,T(S), U(LCTL),END);
+			} 
+			break;	
+        case MACRO_BUILD:
+			if (record->event.pressed) {
+				return MACRO(  D(LCTL), D(LSHIFT) ,T(B), U(LSHIFT), U(LCTL),END);
+			} 
+			break;
+        case MACRO_DEBUG:
+			if (record->event.pressed) {
+				return MACRO( KC_F5 ,END);
+			} 
+			break;
+      }
+    return MACRO_NONE;
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+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) {
+      // TODO: Make this relevant to the ErgoDox EZ.
+        case 1:
+            ergodox_right_led_1_on();
+            break;
+        case 2:
+            ergodox_right_led_2_on();
+            break;
+        default:
+            // none
+            break;
+    }
+
+};

+ 28 - 0
keyboards/ergodox/keymaps/dvorak_programmer_swe/readme.md

@@ -0,0 +1,28 @@
+# ErgoDox EZ Dvorak Programmer SWEDISH
+
+Dvorak layout adjusted for a suitable programmer layout and swedish special characters added:
+
+* åäö characters added
+* Layout for common vb.net keywords
+* Common Visual Studio commands like Save, Build, Debug
+
+TODO:
+
+* (Layer 4 is qwerty (for easier gaming & less fortunate keyboard users)) Like this idea, will add it later on
+
+Known issues:
+
+* Keymap 2 modifier has not gotten its place yet..
+* Print screen, where?
+
+
+## Changelog
+
+* 2017-05-16
+  * Initial release
+
+# Author
+Christian Westerlund
+cwesterlund @ github
+
+Thanks to the author of keymap csharp_dev for inspiration!

+ 4 - 4
keyboards/ergodox/keymaps/xyverz/keymap.c

@@ -254,7 +254,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -265,17 +265,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
       switch(id) {
       switch(id) {
         case _DV:
         case _DV:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_DV);
+            persistent_default_layer_set(1UL<<_DV);
           }
           }
           break;
           break;
         case _QW:
         case _QW:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_QW);
+            persistent_default_layer_set(1UL<<_QW);
           }
           }
           break;
           break;
         case _CM:
         case _CM:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_CM);
+            persistent_default_layer_set(1UL<<_CM);
           }
           }
           break;
           break;
       }
       }

+ 23 - 0
keyboards/frosty_flake/keymaps/nikchi/Makefile

@@ -0,0 +1,23 @@
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in 
+#   the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = no         # Console for debug(+400)
+COMMAND_ENABLE = no         # Commands for debug and configuration
+NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+MIDI_ENABLE = no            # MIDI controls
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+UNICODEMAP_ENABLE = yes		# unicodemap
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+TAP_DANCE_ENABLE = yes
+
+ifndef QUANTUM_DIR
+	include ../../../../Makefile
+endif

+ 24 - 0
keyboards/frosty_flake/keymaps/nikchi/config.h

@@ -0,0 +1,24 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define TAPPING_TERM 300
+#define LEADER_TIMEOUT 400
+
+#define DISABLE_SPACE_CADET_ROLLOVER
+
+#define UNICODE_TYPE_DELAY 0
+
+#define LSPO_KEY KC_9
+#define RSPC_KEY KC_0
+
+#define MOUSEKEY_INTERVAL       20
+#define MOUSEKEY_DELAY          0
+#define MOUSEKEY_TIME_TO_MAX    60
+#define MOUSEKEY_MAX_SPEED      7
+#define MOUSEKEY_WHEEL_DELAY 0
+// place overrides here
+
+#endif
+

+ 224 - 0
keyboards/frosty_flake/keymaps/nikchi/keymap.c

@@ -0,0 +1,224 @@
+#include "frosty_flake.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#include "process_unicode.h"
+#include "process_unicodemap.h"
+#include "quantum.h"
+
+#define _______ KC_TRNS
+
+
+//declarations for tap dancing emojis
+void register_hex32(uint32_t hex);
+void cycleEmojis(qk_tap_dance_state_t *state, void *user_data);
+void cycleAnimals(qk_tap_dance_state_t *state, void *user_data);
+void cycleHands(qk_tap_dance_state_t *state, void *user_data);
+
+void tap(uint16_t keycode){
+    register_code(keycode);
+    unregister_code(keycode);
+};
+
+//Tap Dance Declarations
+enum taps{
+  TD_CTCPS = 0,
+  EMOJIS,
+  ANIMAL,
+  HAND
+};
+
+enum unicode_name { // split every five emojis
+  THINK = 1, // thinking face 🤔
+  GRIN, // grinning face 😊
+  SMRK, // smirk 😏
+  WEARY, // good shit 😩
+  UNAMU, // unamused 😒
+
+  SNEK, // snke 🐍
+  PENGUIN, // 🐧
+  DRAGON, // 🐉
+  MONKEY, // 🐒
+  CHICK, // 🐥
+
+  OKOK, // 👌
+  EFFU, // 🖕
+  INUP, // 👆
+  THUP, // 👍
+  THDN, // 👎
+
+  BBB, // dat B 🅱
+  POO, // poop 💩
+  HUNDR, // 100 💯
+  EGGPL, // EGGPLANT 🍆
+  WATER, // wet 💦
+
+  LIT // fire 🔥
+
+};
+
+enum my_macros {
+  NEWDESK = 0,
+  LEFTDESK,
+  RIGHTDESK,
+  CLOSEDESK
+};
+enum quick {
+  DISFACE = 0,
+  TFLIP,
+  TPUT,
+  SHRUG,
+  FACE,
+  RANDIG
+};
+
+// Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+  // Tap once for CTRL, twice for Caps Lock
+  [TD_CTCPS]  = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, KC_CAPS),
+  [EMOJIS] = ACTION_TAP_DANCE_FN_ADVANCED(cycleEmojis, NULL, NULL),
+  [ANIMAL] = ACTION_TAP_DANCE_FN_ADVANCED(cycleAnimals, NULL, NULL),
+  [HAND] = ACTION_TAP_DANCE_FN_ADVANCED(cycleHands, NULL, NULL)
+// Other declarations would go here, separated by commas, if you have them
+};
+
+// macros
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+  switch(id) {
+    case NEWDESK: // this would trigger when you hit a key mapped as M(0)
+      if (record->event.pressed) {
+        return MACRO( I(1), D(LGUI), D(LCTL), D(D), U(LGUI), U(LCTL), U(D), END  ); // NEW DESKTOP
+      }
+      break;
+    case LEFTDESK: // this would trigger when you hit a key mapped as M(0)
+      if (record->event.pressed) {
+        return MACRO( I(1), D(LGUI), D(LCTL), D(LEFT), U(LGUI), U(LCTL), U(LEFT), END  ); // LEFT DESKTOP
+      }
+      break;
+    case RIGHTDESK: // this would trigger when you hit a key mapped as M(0)
+      if (record->event.pressed) {
+        return MACRO( I(1), D(LGUI), D(LCTL), D(RGHT), U(LGUI), U(LCTL), U(RGHT), END  ); // RIGHT DESKTOP
+      }
+      break;
+    case CLOSEDESK: // this would trigger when you hit a key mapped as M(0)
+      if (record->event.pressed) {
+        return MACRO( I(1), D(LGUI), D(LCTL), D(F4), U(LGUI), U(LCTL), U(F4), END  ); // CLOSE DESKTOP
+      }
+      break;
+  }
+  return MACRO_NONE;
+};
+
+// emojis in unicode
+const uint32_t PROGMEM unicode_map[] = {
+  [THINK] = 0x1F914,
+  [GRIN] = 0x1F600,
+  [BBB] = 0x1F171,
+  [POO] = 0x1F4A9,
+  [HUNDR] = 0x1F4AF,
+  [SMRK] = 0x1F60F,
+  [WEARY] = 0x1F629,
+  [EGGPL] = 0x1F346,
+  [WATER] = 0x1F4A6,
+  [LIT] = 0x1F525,
+  [UNAMU] = 0x1F612,
+  [SNEK] = 0x1F40D,
+  [PENGUIN]   = 0x1F427,
+  [MONKEY]    = 0x1F412,
+  [CHICK]     = 0x1F425,
+  [DRAGON]    = 0x1F409,
+  [OKOK]  = 0x1F44C,
+  [EFFU]  = 0x1F595,
+  [INUP]  = 0x1F446,
+  [THDN]  = 0x1F44E,
+  [THUP]  = 0x1F44D
+ };
+// Layouts
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = KEYMAP(\
+      KC_ESC,  KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9, KC_F10, KC_F11, KC_F12,           KC_PSCR,KC_SLCK,KC_PAUS,                        \
+      KC_GRV,   KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,KC_MINS, KC_EQL,KC_BSPC,   KC_INS,KC_HOME,KC_PGUP,  KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
+      KC_TAB,   KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,KC_LBRC,KC_RBRC,KC_BSLS,   KC_DEL, KC_END,KC_PGDN,    KC_P7,  KC_P8,  KC_P9,KC_PPLS, \
+      KC_LCTL,   KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,KC_SCLN,KC_QUOT,         KC_ENT,                              KC_P4,  KC_P5,  KC_P6,      \
+      KC_LSPO,KC_NUBS,   KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,KC_COMM, KC_DOT,KC_SLSH,        KC_RSPC,            KC_UP,            KC_P1,  KC_P2,  KC_P3,KC_PENT, \
+ TD(TD_CTCPS),KC_LGUI,KC_LALT,                 KC_SPC,                                KC_LEAD,KC_RGUI, KC_APP,MO(1)  ,  KC_LEFT,KC_DOWN,KC_RGHT,    KC_P0,KC_PDOT),
+[1] = KEYMAP(\
+      KC_ESC,  KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9, KC_F10, KC_F11, KC_F12,           KC_PSCR,KC_SLCK,KC_PAUS,                        \
+   TD(EMOJIS),TD(ANIMAL),TD(HAND),X(SMRK),X(WEARY),X(UNAMU),   KC_6,   KC_7,   KC_8,   KC_9,   KC_0, KC_MINS, KC_EQL,KC_BSPC,   KC_MPRV,KC_MPLY,KC_MNXT,  KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
+      KC_TAB,   KC_Q,   M(0),   KC_E,   KC_R,X(EGGPL),X(WATER),   KC_U,   KC_I,   KC_O,   KC_P, KC_UP  ,KC_RBRC,KC_BSLS,   KC_MUTE,KC_VOLD,KC_VOLU,    KC_P7,  KC_P8,  KC_P9,KC_PPLS, \
+      KC_LCTL,   M(1),   M(3),   M(2),   KC_F,   X(LIT), X(SNEK),   KC_J,   KC_K,   KC_L,KC_LEFT,KC_RGHT,         KC_ENT,                              KC_P4,  KC_P5,  KC_P6,      \
+      KC_LSFT,KC_NUBS,   KC_Z,   KC_X,   KC_C, X(HUNDR), X(BBB),  X(POO),   KC_M,KC_COMM, KC_DOT,KC_DOWN,        KC_RSFT,          KC_MS_U,            KC_P1,  KC_P2,  KC_P3,KC_PENT, \
+      KC_BTN1,KC_BTN3,KC_BTN2,                 KC_SPC,                                KC_RALT,KC_RGUI, TG(2),_______  ,  KC_MS_L,KC_MS_D,KC_MS_R,    KC_P0,KC_PDOT),
+[2] = KEYMAP(\
+      KC_ESC,  KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9, KC_F10, KC_F11, KC_F12,           KC_PSCR,KC_SLCK,KC_PAUS,                        \
+      KC_GRV,  KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,KC_MINS, KC_EQL,KC_BSPC,   KC_MPRV,KC_MPLY,KC_MNXT,  KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS, \
+      KC_TAB,   KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,KC_LBRC,KC_RBRC,KC_BSLS,   KC_MUTE,KC_VOLD,KC_VOLU,    KC_P7,  KC_P8,  KC_P9,KC_PPLS, \
+      KC_LCTL,   KC_D,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,KC_SCLN,KC_QUOT,         KC_ENT,                              KC_P4,  KC_P5,  KC_P6,      \
+      KC_LSFT,KC_NUBS,   KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,KC_COMM, KC_DOT,KC_SLSH,        KC_RSFT,          KC_MS_U,            KC_P1,  KC_P2,  KC_P3,KC_PENT, \
+      KC_BTN1,KC_BTN3,KC_BTN2,                 KC_SPC,                                KC_RALT,KC_RGUI, _______, _______,  KC_MS_L,KC_MS_D,KC_MS_R,    KC_P0,KC_PDOT),
+};
+
+LEADER_EXTERNS();
+
+void matrix_scan_user(void) {
+  LEADER_DICTIONARY() {
+    leading = false;
+    leader_end();
+
+    SEQ_TWO_KEYS(KC_A, KC_A) { // select all and copy
+      register_code(KC_LCTL);
+      tap(KC_A);
+      tap(KC_C);
+      unregister_code(KC_LCTL);
+    }
+
+  }
+}
+
+void matrix_init_user(void) {
+  _delay_ms(500);
+  set_unicode_input_mode(UC_WINC);
+};
+
+
+void cycleEmojis(qk_tap_dance_state_t *state, void *user_data) {
+  if(state->count == 1) {
+    unicode_input_start();
+    register_hex32(pgm_read_dword(&unicode_map[state->count]));
+    unicode_input_finish();
+  }
+  else if(state->count <= 5) {
+    tap(KC_BSPC);
+    unicode_input_start();
+    register_hex32(pgm_read_dword(&unicode_map[state->count]));
+    unicode_input_finish();
+  }
+};
+
+void cycleAnimals(qk_tap_dance_state_t *state, void *user_data) { 
+  if(state->count == 1) {
+    unicode_input_start();
+    register_hex32(pgm_read_dword(&unicode_map[state->count+5]));
+    unicode_input_finish();
+  }
+  else if(state->count <= 5) {
+    tap(KC_BSPC);
+    unicode_input_start();
+    register_hex32(pgm_read_dword(&unicode_map[state->count+5]));
+    unicode_input_finish();
+  }
+};
+
+void cycleHands(qk_tap_dance_state_t *state, void *user_data) {
+  if(state->count == 1) {
+    unicode_input_start();
+    register_hex32(pgm_read_dword(&unicode_map[state->count+10]));
+    unicode_input_finish();
+  }
+  else if(state->count <= 5) {
+    tap(KC_BSPC);
+    unicode_input_start();
+    register_hex32(pgm_read_dword(&unicode_map[state->count+10]));
+    unicode_input_finish();
+  }
+};
+

+ 24 - 0
keyboards/frosty_flake/keymaps/nikchi/readme.md

@@ -0,0 +1,24 @@
+# The Nikchi's keymap for frosty_flake
+
+### FEATURING
+-SPACE CADET 
+-Caps Lock is now LCTRL
+-LCTRL is Tap(LCTRL, Caps Lock)
+
+### LEADER KEY - RALT
+COMBOS
+-a,a => Select All, Copy
+
+
+
+### FN REBINDS for Windows
+```
+   [W]                 [New Desktop]
+[A][S][D]   [Left Desk][Delete Desk][Right Desk]
+
+[Ins][Hom][PUp]     [RW][PP][FF]
+[Del][End][PDn]     [MU][VD][VU]
+
+Arrows are Mouskeys, left three mods are clicks
+
+```

+ 2 - 2
keyboards/frosty_flake/rules.mk

@@ -54,8 +54,8 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
 BOOTMAGIC_ENABLE ?= no      # Virtual DIP switch configuration(+1000)
 BOOTMAGIC_ENABLE ?= no      # Virtual DIP switch configuration(+1000)
 MOUSEKEY_ENABLE ?= yes       # Mouse keys(+4700)
 MOUSEKEY_ENABLE ?= yes       # Mouse keys(+4700)
 EXTRAKEY_ENABLE ?= yes       # Audio control and System control(+450)
 EXTRAKEY_ENABLE ?= yes       # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes        # Console for debug(+400)
-COMMAND_ENABLE ?= yes        # Commands for debug and configuration
+CONSOLE_ENABLE ?= no        # Console for debug(+400)
+COMMAND_ENABLE ?= no        # Commands for debug and configuration
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 SLEEP_LED_ENABLE ?= no       # Breathing sleep LED during USB suspend
 SLEEP_LED_ENABLE ?= no       # Breathing sleep LED during USB suspend
 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work

+ 4 - 4
keyboards/gh60/keymaps/xyverz/keymap.c

@@ -121,7 +121,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -131,17 +131,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
       switch(id) {
       switch(id) {
         case _DV:
         case _DV:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_DV);
+            persistent_default_layer_set(1UL<<_DV);
           }
           }
           break;
           break;
         case _QW:
         case _QW:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_QW);
+            persistent_default_layer_set(1UL<<_QW);
           }
           }
           break;
           break;
         case _CM:
         case _CM:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_CM);
+            persistent_default_layer_set(1UL<<_CM);
           }
           }
           break;
           break;
       }
       }

+ 4 - 4
keyboards/handwired/atreus50/keymaps/default/keymap.c

@@ -147,7 +147,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -159,7 +159,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           return false;
           return false;
           break;
           break;
@@ -168,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           return false;
           return false;
           break;
           break;
@@ -177,7 +177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           return false;
           return false;
           break;
           break;

+ 4 - 4
keyboards/handwired/ortho5x13/keymaps/default/keymap.c

@@ -186,7 +186,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -198,7 +198,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           return false;
           return false;
           break;
           break;
@@ -207,7 +207,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           return false;
           return false;
           break;
           break;
@@ -216,7 +216,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           return false;
           return false;
           break;
           break;

+ 15 - 0
keyboards/handwired/promethium/color.h

@@ -0,0 +1,15 @@
+#define COLOR_BLANK       0, 0, 0
+
+#define COLOR_BLACK       0, 0, 0
+#define COLOR_WHITE      15,15,15
+#define COLOR_GRAY        7, 7, 7
+
+#define COLOR_RED        15, 0, 0
+#define COLOR_GREEN       0,15, 0
+#define COLOR_BLUE        0, 0,15
+
+#define COLOR_YELLOW     15,15, 0
+#define COLOR_MAGENTA    15, 0,15
+#define COLOR_CYAN        0,15,15
+
+#define COLOR_ORANGE     15, 5, 0

+ 22 - 22
keyboards/handwired/promethium/config.h

@@ -153,7 +153,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define NO_ACTION_MACRO
 //#define NO_ACTION_MACRO
 //#define NO_ACTION_FUNCTION
 //#define NO_ACTION_FUNCTION
 
 
-#define PS2_INIT_DELAY 3000
+#define PS2_MOUSE_INIT_DELAY 2000
 #define BATTERY_PIN 9
 #define BATTERY_PIN 9
 #define BATTERY_POLL 30000
 #define BATTERY_POLL 30000
 #define MAX_VOLTAGE 4.2
 #define MAX_VOLTAGE 4.2
@@ -205,7 +205,7 @@ enum led_sequence {
   LED_RSFT,
   LED_RSFT,
   LED_RCTL,
   LED_RCTL,
 
 
-  LED_RGUI,
+  LED_RALT,
   LED_SLSH,
   LED_SLSH,
   LED_SCLN,
   LED_SCLN,
   LED_P,
   LED_P,
@@ -213,9 +213,9 @@ enum led_sequence {
   LED_O,
   LED_O,
   LED_L,
   LED_L,
   LED_DOT,
   LED_DOT,
-  LED_RALT,
+  LED_RGUI,
 
 
-  LED_EMOJI,
+  LED_GREEK,
   LED_COMM,
   LED_COMM,
   LED_K,
   LED_K,
   LED_I,
   LED_I,
@@ -234,35 +234,35 @@ enum led_sequence {
   LED_TRACKPOINT2,
   LED_TRACKPOINT2,
   LED_TRACKPOINT1,
   LED_TRACKPOINT1,
 
 
-  LED_LSPC,
-  LED_B,
-  LED_G,
   LED_T,
   LED_T,
+  LED_G,
+  LED_B,
+  LED_LSPC,
 
 
-  LED_R,
-  LED_F,
-  LED_V,
   LED_NUM,
   LED_NUM,
+  LED_V,
+  LED_F,
+  LED_R,
 
 
-  LED_PUNC,
-  LED_C,
-  LED_D,
   LED_E,
   LED_E,
+  LED_D,
+  LED_C,
+  LED_EMPTY,
 
 
-  LED_W,
-  LED_S,
+  LED_LGUI,
   LED_X,
   LED_X,
-  LED_LALT,
+  LED_S,
+  LED_W,
 
 
-  LED_LGUI,
-  LED_Z,
-  LED_A,
   LED_Q,
   LED_Q,
+  LED_A,
+  LED_Z,
+  LED_LALT,
 
 
-  LED_TAB,
-  LED_ESC,
-  LED_LSFT,
   LED_LCTL,
   LED_LCTL,
+  LED_LSFT,
+  LED_ESC,
+  LED_TAB,
 
 
   LED_TOTAL
   LED_TOTAL
 };
 };

+ 1 - 0
keyboards/handwired/promethium/keymaps/priyadi/config.h

@@ -14,6 +14,7 @@
 #define PREVENT_STUCK_MODIFIERS
 #define PREVENT_STUCK_MODIFIERS
 
 
 #define RGBSPS_ENABLE
 #define RGBSPS_ENABLE
+#define RGBSPS_DEMO_ENABLE
 
 
 #define UNICODE_TYPE_DELAY 0
 #define UNICODE_TYPE_DELAY 0
 
 

+ 105 - 64
keyboards/handwired/promethium/keymaps/priyadi/keymap.c

@@ -31,6 +31,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "quantum.h"
 #include "quantum.h"
 #ifdef RGBSPS_ENABLE
 #ifdef RGBSPS_ENABLE
 #include "rgbsps.h"
 #include "rgbsps.h"
+#include "rgbtheme.h"
 #endif
 #endif
 #ifdef PS2_MOUSE_ENABLE
 #ifdef PS2_MOUSE_ENABLE
 #include "ps2_mouse.h"
 #include "ps2_mouse.h"
@@ -42,13 +43,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #undef FAUXCLICKY_OFF
 #undef FAUXCLICKY_OFF
 #define FAUXCLICKY_OFF do { \
 #define FAUXCLICKY_OFF do { \
     fauxclicky_enabled = false; \
     fauxclicky_enabled = false; \
-    rgbsps_set(LED_AUDIO, 0, 0, 0); \
+    rgbsps_set(LED_AUDIO, COLOR_BLANK); \
     fauxclicky_stop(); \
     fauxclicky_stop(); \
 } while (0)
 } while (0)
 #undef FAUXCLICKY_ON
 #undef FAUXCLICKY_ON
 #define FAUXCLICKY_ON do { \
 #define FAUXCLICKY_ON do { \
     fauxclicky_enabled = true; \
     fauxclicky_enabled = true; \
-    rgbsps_set(LED_AUDIO, 8, 0, 8); \
+    rgbsps_set(LED_AUDIO, THEME_COLOR_AUDIO); \
 } while (0)
 } while (0)
 #endif
 #endif
 #endif
 #endif
@@ -144,6 +145,7 @@ enum planck_keycodes {
 #ifndef MODULE_ADAFRUIT_BLE
 #ifndef MODULE_ADAFRUIT_BLE
   OUT_BT,
   OUT_BT,
 #endif
 #endif
+  RGBDEMO,
   KEYCODE_END
   KEYCODE_END
 };
 };
 
 
@@ -434,10 +436,10 @@ const uint8_t PROGMEM LED_MODS[] = {
 };
 };
 
 
 const uint8_t PROGMEM LED_FN[] = {
 const uint8_t PROGMEM LED_FN[] = {
-  LED_PUNC,
+  LED_EMPTY,
   LED_NUM,
   LED_NUM,
   LED_FUN,
   LED_FUN,
-  LED_EMOJI
+  LED_GREEK
 };
 };
 
 
 const uint8_t PROGMEM LED_INDICATORS[] = {
 const uint8_t PROGMEM LED_INDICATORS[] = {
@@ -468,16 +470,37 @@ const uint8_t PROGMEM LED_TRACKPOINT[] = {
 
 
 void led_turnoff_keys(void) {
 void led_turnoff_keys(void) {
   for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
   for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
-    rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0);
+    rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), COLOR_BLACK);
   }
   }
   for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
   for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
-    rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 0, 0);
+    rgbsps_set(pgm_read_byte(&LED_MODS[i]), COLOR_BLACK);
   }
   }
   for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
   for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
-    rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 0);
+    rgbsps_set(pgm_read_byte(&LED_FN[i]), COLOR_BLACK);
   }
   }
 }
 }
 
 
+#ifdef RGBSPS_DEMO_ENABLE
+void led_demo(void) {
+  rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX);
+  rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE);
+  rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS);
+  rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY);
+  rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT);
+  rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO);
+  rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH);
+  rgbsps_set(LED_IND_USB, THEME_COLOR_USB);
+  rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK);
+  rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI);
+  rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN);
+  rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM);
+  rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC);
+  rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK);
+  rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI);
+  rgbsps_send();
+}
+#endif
+
 void led_reset(void) {
 void led_reset(void) {
   switch (glow_mode) {
   switch (glow_mode) {
     case GLOW_NONE:
     case GLOW_NONE:
@@ -486,26 +509,26 @@ void led_reset(void) {
     case GLOW_MIN:
     case GLOW_MIN:
       led_turnoff_keys();
       led_turnoff_keys();
       for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
       for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
-        rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 8, 8, 8);
+        rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW1_HOME);
       }
       }
-      rgbsps_set(LED_F, 15, 0, 0);
-      rgbsps_set(LED_J, 15, 0, 0);
+      rgbsps_set(LED_F, THEME_COLOR_GLOW1_HOMING);
+      rgbsps_set(LED_J, THEME_COLOR_GLOW1_HOMING);
       break;
       break;
     case GLOW_FULL:
     case GLOW_FULL:
       for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
       for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) {
-        rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 8, 8, 8);
+        rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), THEME_COLOR_GLOW2_ALPHA);
       }
       }
       for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
       for(uint8_t i = 0; i < COUNT(LED_MODS); i++) {
-        rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 15, 0);
+        rgbsps_set(pgm_read_byte(&LED_MODS[i]), THEME_COLOR_GLOW2_MODS);
       }
       }
       for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
       for(uint8_t i = 0; i < COUNT(LED_FN); i++) {
-        rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 15);
+        rgbsps_set(pgm_read_byte(&LED_FN[i]), THEME_COLOR_GLOW2_FN);
       }
       }
       for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
       for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) {
-        rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 15, 0, 0);
+        rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW2_HOME);
       }
       }
-      rgbsps_set(LED_F, 15, 15, 0);
-      rgbsps_set(LED_J, 15, 15, 0);
+      rgbsps_set(LED_F, THEME_COLOR_GLOW2_HOMING);
+      rgbsps_set(LED_J, THEME_COLOR_GLOW2_HOMING);
       break;
       break;
   }
   }
 }
 }
@@ -513,11 +536,11 @@ void led_reset(void) {
 void led_set_default_layer_indicator(void) {
 void led_set_default_layer_indicator(void) {
   uint8_t default_layer = biton32(default_layer_state);
   uint8_t default_layer = biton32(default_layer_state);
   if (default_layer == _QWERTY) {
   if (default_layer == _QWERTY) {
-    rgbsps_set(LED_IND_QWERTY, 15, 10, 0);
-    rgbsps_set(LED_IND_ALT, 0, 0, 0);
+    rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY);
+    rgbsps_set(LED_IND_ALT, COLOR_BLANK);
   } else {
   } else {
-    rgbsps_set(LED_IND_QWERTY, 0, 0, 0);
-    rgbsps_set(LED_IND_ALT, 15, 10, 0);
+    rgbsps_set(LED_IND_QWERTY, COLOR_BLANK);
+    rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT);
   }
   }
   rgbsps_send();
   rgbsps_send();
   return;
   return;
@@ -528,12 +551,12 @@ void led_set_layer_indicator(void) {
 
 
   led_reset();
   led_reset();
 
 
-  rgbsps_set(LED_IND_GUI, 0, 0, 0);
-  rgbsps_set(LED_IND_FUN, 0, 0, 0);
-  rgbsps_set(LED_IND_NUM, 0, 0, 0);
-  rgbsps_set(LED_IND_PUNC, 0, 0, 0);
-  rgbsps_set(LED_IND_GREEK, 0, 0, 0);
-  rgbsps_set(LED_IND_EMOJI, 0, 0, 0);
+  rgbsps_set(LED_IND_GUI, COLOR_BLANK);
+  rgbsps_set(LED_IND_FUN, COLOR_BLANK);
+  rgbsps_set(LED_IND_NUM, COLOR_BLANK);
+  rgbsps_set(LED_IND_PUNC, COLOR_BLANK);
+  rgbsps_set(LED_IND_GREEK, COLOR_BLANK);
+  rgbsps_set(LED_IND_EMOJI, COLOR_BLANK);
 
 
   uint8_t layer = biton32(layer_state);
   uint8_t layer = biton32(layer_state);
   if (oldlayer == layer) {
   if (oldlayer == layer) {
@@ -549,71 +572,71 @@ void led_set_layer_indicator(void) {
 
 
   switch(layer) {
   switch(layer) {
     case _GUI:
     case _GUI:
-      rgbsps_set(LED_IND_GUI, 15, 0, 15);
+      rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI);
       break;
       break;
     case _FUN:
     case _FUN:
-      rgbsps_set(LED_IND_FUN, 15, 0, 0);
+      rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN);
       break;
       break;
     case _NUM:
     case _NUM:
-      rgbsps_set(LED_IND_NUM, 0, 0, 15);
+      rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM);
       break;
       break;
     case _PUNC:
     case _PUNC:
-      rgbsps_set(LED_IND_PUNC, 0, 15, 0);
+      rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC);
       break;
       break;
     case _GREEKL:
     case _GREEKL:
     case _GREEKU:
     case _GREEKU:
-      rgbsps_set(LED_IND_GREEK, 0, 15, 15);
+      rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK);
       break;
       break;
     case _EMOJI:
     case _EMOJI:
-      rgbsps_set(LED_IND_EMOJI, 15, 15, 0);
+      rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI);
       break;
       break;
     default:
     default:
-      rgbsps_set(LED_IND_GUI, 3, 3, 3);
-      rgbsps_set(LED_IND_FUN, 3, 3, 3);
-      rgbsps_set(LED_IND_NUM, 3, 3, 3);
-      rgbsps_set(LED_IND_PUNC, 3, 3, 3);
-      rgbsps_set(LED_IND_GREEK, 3, 3, 3);
-      rgbsps_set(LED_IND_EMOJI, 3, 3, 3);
+      rgbsps_set(LED_IND_GUI, THEME_COLOR_OTHERLAYER);
+      rgbsps_set(LED_IND_FUN, THEME_COLOR_OTHERLAYER);
+      rgbsps_set(LED_IND_NUM, THEME_COLOR_OTHERLAYER);
+      rgbsps_set(LED_IND_PUNC, THEME_COLOR_OTHERLAYER);
+      rgbsps_set(LED_IND_GREEK, THEME_COLOR_OTHERLAYER);
+      rgbsps_set(LED_IND_EMOJI, THEME_COLOR_OTHERLAYER);
   }
   }
 
 
   rgbsps_send();
   rgbsps_send();
 }
 }
 
 
 void led_set_unicode_input_mode(void) {
 void led_set_unicode_input_mode(void) {
-  rgbsps_set(LED_IND_LINUX, 0, 0, 0);
-  rgbsps_set(LED_IND_APPLE, 0, 0, 0);
-  rgbsps_set(LED_IND_WINDOWS, 0, 0, 0);
+  rgbsps_set(LED_IND_LINUX, COLOR_BLANK);
+  rgbsps_set(LED_IND_APPLE, COLOR_BLANK);
+  rgbsps_set(LED_IND_WINDOWS, COLOR_BLANK);
 
 
   switch (get_unicode_input_mode()) {
   switch (get_unicode_input_mode()) {
     case UC_LNX:
     case UC_LNX:
-      rgbsps_set(LED_IND_LINUX, 15, 15, 15);
+      rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX);
       break;
       break;
     case UC_OSX:
     case UC_OSX:
-      rgbsps_set(LED_IND_APPLE, 15, 15, 15);
+      rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE);
       break;
       break;
     case UC_WIN:
     case UC_WIN:
     case UC_WINC:
     case UC_WINC:
-      rgbsps_set(LED_IND_WINDOWS, 15, 15, 15);
+      rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS);
       break;
       break;
   }
   }
   rgbsps_send();
   rgbsps_send();
 }
 }
 
 
 void led_set_output_ble(void) {
 void led_set_output_ble(void) {
-  rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 15);
-  rgbsps_set(LED_IND_USB, 0, 0, 0);
+  rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH);
+  rgbsps_set(LED_IND_USB, COLOR_BLANK);
   rgbsps_send();
   rgbsps_send();
 }
 }
 
 
 void led_set_output_usb(void) {
 void led_set_output_usb(void) {
-  rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0);
-  rgbsps_set(LED_IND_USB, 15, 15, 15);
+  rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK);
+  rgbsps_set(LED_IND_USB, THEME_COLOR_USB);
   rgbsps_send();
   rgbsps_send();
 }
 }
 
 
 void led_set_output_none(void) {
 void led_set_output_none(void) {
-  rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0);
-  rgbsps_set(LED_IND_USB, 0, 0, 0);
+  rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK);
+  rgbsps_set(LED_IND_USB, COLOR_BLANK);
   rgbsps_send();
   rgbsps_send();
 }
 }
 
 
@@ -622,9 +645,9 @@ void led_init(void) {
   rgbsps_turnoff();
   rgbsps_turnoff();
 
 
   // set trackpoint color
   // set trackpoint color
-  rgbsps_set(LED_TRACKPOINT1, 15, 0, 0);
-  rgbsps_set(LED_TRACKPOINT2, 0, 0, 15);
-  rgbsps_set(LED_TRACKPOINT3, 15, 0, 0);
+  rgbsps_set(LED_TRACKPOINT1, THEME_COLOR_TP1);
+  rgbsps_set(LED_TRACKPOINT2, THEME_COLOR_TP2);
+  rgbsps_set(LED_TRACKPOINT3, THEME_COLOR_TP3);
 
 
   // unicode input mode
   // unicode input mode
   led_set_unicode_input_mode();
   led_set_unicode_input_mode();
@@ -632,6 +655,17 @@ void led_init(void) {
   // layer indicator
   // layer indicator
   led_set_layer_indicator();
   led_set_layer_indicator();
   led_set_default_layer_indicator();
   led_set_default_layer_indicator();
+
+  // clicky
+#ifdef FAUXCLICKY_ENABLE
+  if (fauxclicky_enabled) {
+    rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO);
+  } else {
+    rgbsps_set(LED_IND_AUDIO, COLOR_BLANK);
+  }
+#endif
+
+  rgbsps_send();
 }
 }
 
 
 
 
@@ -911,7 +945,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
 [_SYS] = KEYMAP(
 [_SYS] = KEYMAP(
-  DEBUG,   QWERTY,  WIN,     XXXXXXX, RESET,   XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+  DEBUG,   QWERTY,  WIN,     XXXXXXX, RESET,   XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO,
   XXXXXXX, FC_TOG,  XXXXXXX, DVORAK,  XXXXXXX, GLOW,    XXXXXXX, XXXXXXX, WORKMAN, LINUX,   XXXXXXX, XXXXXXX,
   XXXXXXX, FC_TOG,  XXXXXXX, DVORAK,  XXXXXXX, GLOW,    XXXXXXX, XXXXXXX, WORKMAN, LINUX,   XXXXXXX, XXXXXXX,
   XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT,  NORMAN,  OSX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
   XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT,  NORMAN,  OSX,     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
   _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
   _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
@@ -921,7 +955,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 #ifdef RGBSPS_ENABLE
 #ifdef RGBSPS_ENABLE
@@ -1100,14 +1134,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     // layout switchers
     // layout switchers
     case QWERTY:
     case QWERTY:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
 #ifdef LAYOUT_DVORAK
 #ifdef LAYOUT_DVORAK
     case DVORAK:
     case DVORAK:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -1115,7 +1149,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 #ifdef LAYOUT_COLEMAK
 #ifdef LAYOUT_COLEMAK
     case COLEMAK:
     case COLEMAK:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -1123,7 +1157,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 #ifdef LAYOUT_WORKMAN
 #ifdef LAYOUT_WORKMAN
     case WORKMAN:
     case WORKMAN:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_WORKMAN);
+        persistent_default_layer_set(1UL<<_WORKMAN);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -1131,7 +1165,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 #ifdef LAYOUT_NORMAN
 #ifdef LAYOUT_NORMAN
     case NORMAN:
     case NORMAN:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_NORMAN);
+        persistent_default_layer_set(1UL<<_NORMAN);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -1211,15 +1245,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     case FC_TOG:
     case FC_TOG:
 #ifdef RGBSPS_ENABLE
 #ifdef RGBSPS_ENABLE
       if (fauxclicky_enabled) {
       if (fauxclicky_enabled) {
-        rgbsps_set(LED_IND_AUDIO, 0, 0, 0);
+        rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO);
       } else {
       } else {
-        rgbsps_set(LED_IND_AUDIO, 5, 11, 13);
+        rgbsps_set(LED_IND_AUDIO, COLOR_BLANK);
       }
       }
       rgbsps_send();
       rgbsps_send();
 #endif
 #endif
       return true;
       return true;
       break;
       break;
 #endif
 #endif
+
+#ifdef RGBSPS_DEMO_ENABLE
+    case RGBDEMO:
+      led_demo();
+      return false;
+      break;
+#endif
   }
   }
   return true;
   return true;
 }
 }
@@ -1280,9 +1321,9 @@ void turn_off_capslock() {
     bool new_capslock = usb_led & (1<<USB_LED_CAPS_LOCK);
     bool new_capslock = usb_led & (1<<USB_LED_CAPS_LOCK);
     if (new_capslock ^ capslock) { // capslock state is different
     if (new_capslock ^ capslock) { // capslock state is different
       if ((capslock = new_capslock)) {
       if ((capslock = new_capslock)) {
-        rgbsps_set(LED_IND_CAPSLOCK, 15, 0, 0);
+        rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK);
       } else {
       } else {
-        rgbsps_set(LED_IND_CAPSLOCK, 0, 0, 0);
+        rgbsps_set(LED_IND_CAPSLOCK, COLOR_BLANK);
       }
       }
       rgbsps_send();
       rgbsps_send();
     }
     }

+ 1 - 0
keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h

@@ -0,0 +1 @@
+#include "rgbtheme_default.h"

+ 36 - 0
keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h

@@ -0,0 +1,36 @@
+#include "color.h"
+
+#define THEME_COLOR_LINUX                 COLOR_WHITE
+#define THEME_COLOR_APPLE                 COLOR_WHITE
+#define THEME_COLOR_WINDOWS               COLOR_WHITE
+
+#define THEME_COLOR_QWERTY                COLOR_RED
+#define THEME_COLOR_ALT                   COLOR_RED
+
+#define THEME_COLOR_AUDIO                 COLOR_GREEN
+
+#define THEME_COLOR_BLUETOOTH             7,7,15
+#define THEME_COLOR_USB                   COLOR_WHITE
+
+#define THEME_COLOR_CAPSLOCK              COLOR_RED
+
+#define THEME_COLOR_GUI                   COLOR_MAGENTA
+#define THEME_COLOR_FUN                   COLOR_RED
+#define THEME_COLOR_NUM                   7,7,15
+#define THEME_COLOR_PUNC                  COLOR_GREEN
+#define THEME_COLOR_GREEK                 COLOR_CYAN
+#define THEME_COLOR_EMOJI                 COLOR_YELLOW
+#define THEME_COLOR_OTHERLAYER            COLOR_GRAY
+
+#define THEME_COLOR_GLOW1_HOME            COLOR_ORANGE
+#define THEME_COLOR_GLOW1_HOMING          COLOR_RED
+
+#define THEME_COLOR_GLOW2_ALPHA           COLOR_ORANGE
+#define THEME_COLOR_GLOW2_MODS            COLOR_ORANGE
+#define THEME_COLOR_GLOW2_FN              COLOR_ORANGE
+#define THEME_COLOR_GLOW2_HOME            COLOR_ORANGE
+#define THEME_COLOR_GLOW2_HOMING          COLOR_RED
+
+#define THEME_COLOR_TP1                   COLOR_ORANGE
+#define THEME_COLOR_TP2                   COLOR_RED
+#define THEME_COLOR_TP3                   COLOR_ORANGE

+ 36 - 0
keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h

@@ -0,0 +1,36 @@
+#include "color.h"
+
+#define THEME_COLOR_LINUX                 COLOR_WHITE
+#define THEME_COLOR_APPLE                 COLOR_WHITE
+#define THEME_COLOR_WINDOWS               COLOR_WHITE
+
+#define THEME_COLOR_QWERTY                COLOR_RED
+#define THEME_COLOR_ALT                   COLOR_RED
+
+#define THEME_COLOR_AUDIO                 COLOR_GREEN
+
+#define THEME_COLOR_BLUETOOTH             COLOR_BLUE
+#define THEME_COLOR_USB                   COLOR_WHITE
+
+#define THEME_COLOR_CAPSLOCK              COLOR_RED
+
+#define THEME_COLOR_GUI                   COLOR_MAGENTA
+#define THEME_COLOR_FUN                   COLOR_RED
+#define THEME_COLOR_NUM                   COLOR_BLUE
+#define THEME_COLOR_PUNC                  COLOR_GREEN
+#define THEME_COLOR_GREEK                 COLOR_CYAN
+#define THEME_COLOR_EMOJI                 COLOR_YELLOW
+#define THEME_COLOR_OTHERLAYER            COLOR_GRAY
+
+#define THEME_COLOR_GLOW1_HOME            COLOR_GRAY
+#define THEME_COLOR_GLOW1_HOMING          COLOR_RED
+
+#define THEME_COLOR_GLOW2_ALPHA           COLOR_GRAY
+#define THEME_COLOR_GLOW2_MODS            COLOR_GREEN
+#define THEME_COLOR_GLOW2_FN              COLOR_BLUE
+#define THEME_COLOR_GLOW2_HOME            COLOR_RED
+#define THEME_COLOR_GLOW2_HOMING          COLOR_YELLOW
+
+#define THEME_COLOR_TP1                   COLOR_RED
+#define THEME_COLOR_TP2                   COLOR_BLUE
+#define THEME_COLOR_TP3                   COLOR_RED

+ 2 - 2
keyboards/handwired/promethium/matrix.c

@@ -133,8 +133,8 @@ void matrix_init(void) {
     matrix_init_quantum();
     matrix_init_quantum();
 }
 }
 
 
-uint8_t matrix_scan(void
-){
+uint8_t matrix_scan(void)
+{
     // Set row, read cols
     // Set row, read cols
     for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
     for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
 #       if (DEBOUNCING_DELAY > 0)
 #       if (DEBOUNCING_DELAY > 0)

+ 3 - 3
keyboards/handwired/promethium/promethium.c

@@ -4,9 +4,9 @@
 #include "matrix.h"
 #include "matrix.h"
 #include "musical_notes.h"
 #include "musical_notes.h"
 
 
-float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_F3, .03125);
-float fauxclicky_released_note[2] = MUSICAL_NOTE(_C3, .03125);
-float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C3, .03125);
+float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A4, 0.0625);
+float fauxclicky_released_note[2] = MUSICAL_NOTE(_A4, 0.0625);
+float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 0.25);
 
 
 // cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36},  {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100}
 // cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36},  {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100}
 
 

+ 23 - 0
keyboards/hhkb/keymaps/cinaeco/Makefile

@@ -0,0 +1,23 @@
+# cinaeco's HHKB firmware
+
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in
+#   the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = no         # Console for debug(+400)
+COMMAND_ENABLE = yes        # Commands for debug and configuration
+NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
+MIDI_ENABLE = no            # MIDI controls
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+	include ../../../../Makefile
+endif

+ 23 - 0
keyboards/hhkb/keymaps/cinaeco/README.md

@@ -0,0 +1,23 @@
+# QMK Keyboard Firmware for HHKB
+
+## Modifications
+
+### HHKB Fn Layer
+
+Added some Media keys.
+
+### Utility Layer (SpaceFN)
+
+Hold `Space` for:
+
+- Vi-style direction keys.
+- WASD-style mouse keys.
+- Dynamic macro playback on `1` and `2`.
+- Qwerty/Colemak/Dvorak layout selection on `-`, `=` and `\ `
+
+### Dynamic Macros
+
+Hold `q` and press:
+
+- `1` or `2` to record macro 1 or 2.
+- `s` to stop recording.

+ 20 - 0
keyboards/hhkb/keymaps/cinaeco/config.h

@@ -0,0 +1,20 @@
+#ifndef CONFIG_CINAECO_H
+#define CONFIG_CINAECO_H
+
+#include "../../config.h"
+
+#undef MANUFACTURER
+#undef PRODUCT
+#undef DESCRIPTION
+#define MANUFACTURER    QMK
+#define PRODUCT         HHKB QMK cinaeco
+#define DESCRIPTION     HHKB on QMK Firmware with cinaeco keymap
+
+// Increase "Tap" detection window. Avoid missing 'q' or 'z' when typing slowly.
+#undef TAPPING_TERM
+#define TAPPING_TERM 230
+
+// Uncomment to enable NKRO by default. May cause issues with KVM switches.
+//#define FORCE_NKRO
+
+#endif

+ 186 - 0
keyboards/hhkb/keymaps/cinaeco/keymap.c

@@ -0,0 +1,186 @@
+/*  -*-  eval: (turn-on-orgtbl); -*-
+ * cinaeco's HHKB Layout
+ */
+#include "hhkb.h"
+
+// Layers.
+#define QWER 0
+#define COLE 1
+#define DVOR 2
+#define HHKB 3
+#define UTIL 4
+#define MREC 5
+
+// Easier-to-read Layer Arrays.
+#define ____ KC_TRNS
+
+enum hhkb_keycodes {
+  DYNAMIC_MACRO_RANGE = SAFE_RANGE,
+};
+
+#include "dynamic_macro.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+    /* QWER Layer: Qwerty Default
+     *
+     * ,--------------------------------------------------------------.
+     * |Esc|    1 |  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  \|  `|
+     * |--------------------------------------------------------------|
+     * |Tab  |Q/MREC|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|Backs|
+     * |--------------------------------------------------------------|
+     * |Ctrl  |     A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Ent/Ctrl|
+     * |--------------------------------------------------------------|
+     * |Shift   |     Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift |Fn0|
+     * `--------------------------------------------------------------'
+     *       |Alt|Gui  |       Space/UTIL      |Gui  |Alt|
+     *       `-------------------------------------------'
+     *
+     */
+
+  [QWER] = KEYMAP(
+  KC_ESC,  KC_1,           KC_2,    KC_3,             KC_4,    KC_5,     KC_6, KC_7, KC_8,    KC_9,   KC_0,    KC_MINS, KC_EQL,        KC_BSLS, KC_GRV, \
+  KC_TAB,  LT(MREC, KC_Q), KC_W,    KC_E,             KC_R,    KC_T,     KC_Y, KC_U, KC_I,    KC_O,   KC_P,    KC_LBRC, KC_RBRC,       KC_BSPC,         \
+  KC_LCTL, KC_A,           KC_S,    KC_D,             KC_F,    KC_G,     KC_H, KC_J, KC_K,    KC_L,   KC_SCLN, KC_QUOT, CTL_T(KC_ENT),                  \
+  KC_LSFT, KC_Z,           KC_X,    KC_C,             KC_V,    KC_B,     KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB),                       \
+           KC_LALT,        KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
+
+
+    /* COLE Layer: Colemak
+     *
+     * ,--------------------------------------------------------------.
+     * |Esc|    1 |  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  \|  `|
+     * |--------------------------------------------------------------|
+     * |Tab  |Q/MREC|  W|  F|  P|  G|  J|  L|  U|  Y|  ;|  [|  ]|Backs|
+     * |--------------------------------------------------------------|
+     * |Ctrl  |     A|  R|  S|  T|  D|  H|  N|  E|  I|  O|  '|Ent/Ctrl|
+     * |--------------------------------------------------------------|
+     * |Shift   |     Z|  X|  C|  V|  K|  B|  M|  ,|  .|  /|Shift |Fn0|
+     * `--------------------------------------------------------------'
+     *       |Alt|Gui  |       Space/UTIL      |Gui  |Alt|
+     *       `-------------------------------------------'
+     *
+     */
+
+  [COLE] = KEYMAP(
+  KC_ESC,  KC_1,           KC_2,    KC_3,             KC_4,    KC_5,     KC_6, KC_7, KC_8,    KC_9,   KC_0,    KC_MINS, KC_EQL,        KC_BSLS, KC_GRV, \
+  KC_TAB,  LT(MREC, KC_Q), KC_W,    KC_F,             KC_P,    KC_G,     KC_J, KC_L, KC_U,    KC_Y,   KC_SCLN, KC_LBRC, KC_RBRC,       KC_BSPC,         \
+  KC_LCTL, KC_A,           KC_R,    KC_S,             KC_T,    KC_D,     KC_H, KC_N, KC_E,    KC_I,   KC_O,    KC_QUOT, CTL_T(KC_ENT),                  \
+  KC_LSFT, KC_Z,           KC_X,    KC_C,             KC_V,    KC_K,     KC_B, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB),                       \
+           KC_LALT,        KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
+
+
+    /* DVOR Layer: Dvorak
+     *
+     * ,--------------------------------------------------------------.
+     * |Esc|    1 |  2|  3|  4|  5|  6|  7|  8|  9|  0|  [|  ]|  \|  `|
+     * |--------------------------------------------------------------|
+     * |Tab  |'/MREC|  ,|  .|  P|  Y|  F|  G|  C|  R|  L|  /|  =|Backs|
+     * |--------------------------------------------------------------|
+     * |Ctrl  |     A|  O|  E|  U|  I|  D|  H|  T|  N|  S|  -|Ent/Ctrl|
+     * |--------------------------------------------------------------|
+     * |Shift   |     ;|  Q|  J|  K|  X|  B|  M|  W|  V|  Z|Shift |Fn0|
+     * `--------------------------------------------------------------'
+     *       |Alt|Gui  |       Space/UTIL      |Gui  |Alt|
+     *       `-------------------------------------------'
+     *
+     */
+
+  [DVOR] = KEYMAP(
+  KC_ESC,  KC_1,              KC_2,    KC_3,             KC_4,    KC_5,     KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC,       KC_BSLS, KC_GRV, \
+  KC_TAB,  LT(MREC, KC_QUOT), KC_COMM, KC_DOT,           KC_P,    KC_Y,     KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL,        KC_BSPC,         \
+  KC_LCTL, KC_A,              KC_O,    KC_E,             KC_U,    KC_I,     KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, CTL_T(KC_ENT),                  \
+  KC_LSFT, KC_SCLN,           KC_Q,    KC_J,             KC_K,    KC_X,     KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(HHKB),                       \
+           KC_LALT,           KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, KC_RALT),
+
+
+    /* HHKB Layer: HHKB mode (HHKB Fn)
+     *
+     * ,-----------------------------------------------------------.
+     * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
+     * |-----------------------------------------------------------|
+     * |Caps |PLA|PRV|NXT|   |   |   |   |Psc|Slk|Pus|Up |   |Backs|
+     * |-----------------------------------------------------------|
+     * |      |VoD|VoU|Mut|Ejc|   |  *|  /|Hom|PgU|Lef|Rig|Enter   |
+     * |-----------------------------------------------------------|
+     * |        |   |   |   |   |   |  +|  -|End|PgD|Dow|      |   |
+     * `-----------------------------------------------------------'
+     *       |   |     |                       |STOP |   |
+     *       `-------------------------------------------'
+     */
+
+  [HHKB] = KEYMAP(
+  KC_PWR,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_INS,  KC_DEL, \
+  KC_CAPS, KC_MPLY, KC_MPRV, KC_MNXT, ____,    ____,  ____,    ____,    KC_PSCR, KC_SLCK, KC_PAUS, KC_UP,   ____,    KC_BSPC,         \
+  ____,    KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, ____,  KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,                  \
+  ____,    ____,    ____,    ____,    ____,    ____,  KC_PPLS, KC_PMNS, KC_END,  KC_PGDN, KC_DOWN, ____,    ____,                     \
+           ____,    ____,    ____,    KC_MSTP, ____),
+
+
+    /* UTIL Layer: Extra utilities
+     *
+     * ,-------------------------------------------------------------.
+     * |DFU|PLY1|PLY2|   |   |   |   |   |   |   |   |QWE|COL|DVO|DBG|
+     * |-------------------------------------------------------------|
+     * |     |MLB |M-Up|MRB|MwU|   |Hom|PgD|PgU|End|   |   |   |     |
+     * |-------------------------------------------------------------|
+     * |      |M-Lt|M-Dn|M-R|MwD|   |LEF|DOW|UP |RIG|   |   |        |
+     * |-------------------------------------------------------------|
+     * |        |    |    |   |   |SPC|   |   |   |   |   |      |   |
+     * `-------------------------------------------------------------'
+     *       |   |     |                       |     |   |
+     *       `-------------------------------------------'
+     *
+     */
+
+  [UTIL] = KEYMAP(
+  RESET, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, ____,    ____,    ____,   ____,    ____,    ____,    ____,    ____, DF(QWER), DF(COLE), DF(DVOR), DEBUG, \
+  ____,  KC_BTN1,         KC_MS_U,         KC_BTN2, KC_WH_U, ____,   KC_HOME, KC_PGDN, KC_PGUP, KC_END,  ____, ____,     ____,     ____,            \
+  ____,  KC_MS_L,         KC_MS_D,         KC_MS_R, KC_WH_D, ____,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, ____, ____,     ____,                      \
+  ____,  ____,            ____,            ____,    ____,    KC_SPC, ____,    ____,    ____,    ____,    ____, ____,     ____,                      \
+         ____,            ____,            ____,    ____,    ____),
+
+
+    /* MREC Layer: Record macros with `q`
+     *
+     * ,-------------------------------------------------------------.
+     * |   |REC1|REC2|   |   |   |   |   |   |   |   |   |   |   |   |
+     * |-------------------------------------------------------------|
+     * |     |    |    |   |   |   |   |   |   |   |   |   |   |     |
+     * |-------------------------------------------------------------|
+     * |      |    |RSTP|   |   |   |   |   |   |   |   |   |        |
+     * |-------------------------------------------------------------|
+     * |        |    |    |   |   |   |   |   |   |   |   |      |   |
+     * `-------------------------------------------------------------'
+     *       |   |     |                       |     |   |
+     *       `-------------------------------------------'
+     *
+     */
+
+  [MREC] = KEYMAP(
+  ____, DYN_REC_START1, DYN_REC_START2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \
+  ____, ____,           ____,           ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,       \
+  ____, ____,           DYN_REC_STOP,   ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,             \
+  ____, ____,           ____,           ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,             \
+        ____,           ____,           ____, ____, ____)
+
+};
+
+
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+  return MACRO_NONE;
+};
+
+// For Dynamic Macros.
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  if (!process_record_dynamic_macro(keycode, record)) {
+    return false;
+  }
+  return true;
+}

+ 4 - 4
keyboards/hhkb/keymaps/smt/keymap.c

@@ -146,7 +146,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
     return MACRO_NONE;
     return MACRO_NONE;
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -155,19 +155,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   switch (keycode) {
   switch (keycode) {
     case QWERTY:
     case QWERTY:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
     case COLEMAK:
     case COLEMAK:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
     case DVORAK:
     case DVORAK:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 1 - 1
keyboards/hhkb/rules.mk

@@ -53,7 +53,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 #OPT_DEFS += -DBOOTLOADER_SIZE=4096
 #OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
 
 # as per original hasu settings
 # as per original hasu settings
-OPT_DEFS += -DBOOTLOADER_SIZE=512
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
 
 
 # Build Options
 # Build Options
 #   comment out to disable the options.
 #   comment out to disable the options.

+ 1 - 1
keyboards/jd45/keymaps/jeebak/keymap.c

@@ -283,7 +283,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
 /*`----------+-----------+-----------+-----------+----^^^----+----^^^----+-----------+-----------+-----------+--------'*/
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }

+ 1 - 1
keyboards/jd45/keymaps/jeebak/readme.md

@@ -8,7 +8,7 @@ needed, they will be mapped to home row keys. The `keymap.c` file will contain
 the exact changes. The diagrams in this README shows the highlights of the
 the exact changes. The diagrams in this README shows the highlights of the
 changes from the default mappings.
 changes from the default mappings.
 
 
-I also decided to change all calls to `persistant_default_layer_set()` to
+I also decided to change all calls to `persistent_default_layer_set()` to
 `default_layer_set()` since this is my personal perference.
 `default_layer_set()` since this is my personal perference.
 
 
 ## Macros
 ## Macros

+ 4 - 4
keyboards/kinesis/keymaps/xyverz/keymap.c

@@ -269,7 +269,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -279,17 +279,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
       switch(id) {
       switch(id) {
         case _DV:
         case _DV:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_DV);
+            persistent_default_layer_set(1UL<<_DV);
           }
           }
           break;
           break;
         case _QW:
         case _QW:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_QW);
+            persistent_default_layer_set(1UL<<_QW);
           }
           }
           break;
           break;
         case _CM:
         case _CM:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_CM);
+            persistent_default_layer_set(1UL<<_CM);
           }
           }
           break;
           break;
       }
       }

+ 4 - 4
keyboards/lets_split/keymaps/OLED_sample/keymap.c

@@ -186,7 +186,7 @@ float tone_goodbye[][2]    = SONG(GOODBYE_SOUND);
 bool TOG_STATUS = false;
 bool TOG_STATUS = false;
 int RGB_current_mode;
 int RGB_current_mode;
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -208,7 +208,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -217,7 +217,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -226,7 +226,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/lets_split/keymaps/hexwire/keymap.c

@@ -138,7 +138,7 @@ float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -150,7 +150,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -159,7 +159,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -168,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/lets_split/keymaps/i2c/keymap.c

@@ -147,7 +147,7 @@ float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -159,7 +159,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -168,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -177,7 +177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/lets_split/keymaps/serial/keymap.c

@@ -147,7 +147,7 @@ float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -159,7 +159,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -168,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -177,7 +177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/lets_split/keymaps/smt/keymap.c

@@ -152,7 +152,7 @@ float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -164,7 +164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -173,7 +173,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -182,7 +182,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/lets_split/keymaps/xyverz/keymap.c

@@ -141,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -150,19 +150,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   switch (keycode) {
   switch (keycode) {
     case QWERTY:
     case QWERTY:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
     case COLEMAK:
     case COLEMAK:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
     case DVORAK:
     case DVORAK:
       if (record->event.pressed) {
       if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 0 - 0
keyboards/M10A/Makefile → keyboards/m10a/Makefile


+ 0 - 0
keyboards/M10A/config.h → keyboards/m10a/config.h


+ 0 - 0
keyboards/M10A/keymaps/default/Makefile → keyboards/m10a/keymaps/default/Makefile


+ 1 - 1
keyboards/M10A/keymaps/default/keymap.c → keyboards/m10a/keymaps/default/keymap.c

@@ -1,7 +1,7 @@
 // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
 // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
 // this is the style you want to emulate.
 // this is the style you want to emulate.
 
 
-#include "M10A.h"
+#include "m10a.h"
 #include "action_layer.h"
 #include "action_layer.h"
 #include "eeconfig.h"
 #include "eeconfig.h"
 
 

+ 1 - 1
keyboards/M10A/M10A.c → keyboards/m10a/m10a.c

@@ -1,4 +1,4 @@
-#include "M10A.h"
+#include "m10a.h"
 
 
 void matrix_init_kb(void) {
 void matrix_init_kb(void) {
 	matrix_init_user();
 	matrix_init_user();

+ 0 - 0
keyboards/M10A/M10A.h → keyboards/m10a/m10a.h


+ 0 - 0
keyboards/M10A/rules.mk → keyboards/m10a/rules.mk


+ 1 - 0
keyboards/miuni32/config.h

@@ -163,6 +163,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define RGB_DI_PIN D0     // The pin your RGB strip is wired to
 #define RGB_DI_PIN D0     // The pin your RGB strip is wired to
 #define RGBLIGHT_TIMER    // Require for fancier stuff (not compatible with audio)
 #define RGBLIGHT_TIMER    // Require for fancier stuff (not compatible with audio)
 #define RGBLED_NUM 7     // Number of LEDs
 #define RGBLED_NUM 7     // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
 #define RGBLIGHT_HUE_STEP 10
 #define RGBLIGHT_HUE_STEP 10
 #define RGBLIGHT_SAT_STEP 17
 #define RGBLIGHT_SAT_STEP 17
 #define RGBLIGHT_VAL_STEP 17
 #define RGBLIGHT_VAL_STEP 17

+ 21 - 0
keyboards/miuni32/keymaps/adam-lee/Makefile

@@ -0,0 +1,21 @@
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in 
+#   the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = no         # Console for debug(+400)
+COMMAND_ENABLE = yes        # Commands for debug and configuration
+NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+MIDI_ENABLE = no            # MIDI controls
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+	include ../../../../Makefile
+endif

+ 8 - 0
keyboards/miuni32/keymaps/adam-lee/config.h

@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif

+ 119 - 0
keyboards/miuni32/keymaps/adam-lee/keymap.c

@@ -0,0 +1,119 @@
+#include "miuni32.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Level 0: Default Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |   Q   |   W   |   E   |   R   |   T   |   Y   |   U   |   I   |   O   |   P   |  BSP  |
+     * |---------------------------------------------------------------------------------------|
+     * |   A   |   S   |   D   |   F   |   G   |   H   |   J   |   K   |   L   |  ENT  |LT(1|,)|
+     * |---------------------------------------------------------------------------------------|
+     * |LT(3|Z)|   X   |   C   |   V   |   NO  |  SPC  |   B   |   N   |   M   |  RSFT |LT(2|.)|
+     * |---------------------------------------------------------------------------------------|
+     */
+	[0] ={
+		{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 
+		{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA)}, 
+		{LT(3, KC_Z), KC_X, KC_C, KC_V, KC_NO, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)}
+	},
+	/* Level 1: Numbers Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |  ESC  |   7   |   8   |   9   |   /   |   *   |   .   |   ,   |   (   |   )   |  DEL  |
+     * |---------------------------------------------------------------------------------------|
+     * |  TAB  |   4   |   5   |   6   |   -   |   +   |  HOME |   UP  |  END  |  PGUP |  TRNS |
+     * |---------------------------------------------------------------------------------------|
+     * |  LATL |   1   |   2   |   3   |   0   |   NO  |  LEFT |  DOWN |  RGHT |  PGDN | RSHFT |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[1] ={
+		{KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL}, 
+		{KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS},
+		{KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT}
+	},
+	/* Level 2: Symbols Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |   !   |   @   |   #   |   $   |   %   |   ^   |   &   |   *   |   -   |   +   |   =   |
+     * |---------------------------------------------------------------------------------------|
+     * |   {   |   }   |   [   |   ]   |  TRNS |  TRNS |   \   |   ;   |   :   |   `   |   ?   |
+     * |---------------------------------------------------------------------------------------|
+     * |  LSFT |  LCTL |   L   |   T   |  TRNS |  TAB  |   N   |  TRNS |  TRNS |  RCTL |  TRNS |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[2] ={
+		{KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL},
+		{KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES},
+		{KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TRNS, KC_TAB, KC_N, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS}
+	},
+	/* Level 3: RGB Layer
+     * ,---------------------------------------------------------------------------------------.
+     * | RESET |  TRNS |  TRNS |  TRNS |  TRNS |   F1  |   F2  |   F3  |   F4  |   F5  |   F6  |
+     * |---------------------------------------------------------------------------------------|
+     * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD|   NO  |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD|  TRNS |  TRNS |
+     * |---------------------------------------------------------------------------------------|
+     * |  TRNS |  TRNS |  TRNS |  TRNS |   NO  |   F7  |   F8  |   F9  |  F10  |  F11  |  F12  |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[3] ={
+		{RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6}, 
+		{RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS},
+		{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,  KC_F12}
+	}
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) {
+        case 0:
+          if (record->event.pressed) {
+            register_code(KC_RSFT);
+          } else {
+            unregister_code(KC_RSFT);
+          }
+        break;
+      }
+    return MACRO_NONE;
+};
+
+void matrix_init_user(void) {
+}
+
+void matrix_scan_user(void) {
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+	return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+	if (usb_led & (1 << USB_LED_NUM_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_COMPOSE)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_KANA)) {
+
+	} else {
+
+	}
+
+}

+ 1 - 0
keyboards/miuni32/keymaps/adam-lee/readme.md

@@ -0,0 +1 @@
+# The default keymap for miuni32

+ 87 - 17
keyboards/miuni32/keymaps/default/keymap.c

@@ -1,19 +1,62 @@
 #include "miuni32.h"
 #include "miuni32.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] ={
-       {KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,   KC_BSPC},
-       {KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_RSFT, KC_ENT},
-       {KC_Z,   KC_X,   KC_C,   KC_V,   KC_V,  KC_SPC, KC_B,   KC_N,   KC_M ,  MO(1), KC_RCTL}
-     },
-[1] ={
-       {KC_PGUP,  KC_UP,    KC_PGDN,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_DEL},
-       {KC_LEFT,  KC_DOWN,  KC_RGHT,  KC_TRNS,  KC_HOME,  KC_LEFT,  KC_DOWN,  KC_UP,    KC_RGHT,  KC_END,   KC_TRNS},
-       {RGB_TOG,  RGB_HUI,  RGB_HUD,  RGB_SAI,  KC_TRNS,  RGB_SAD,  RGB_VAI,  RGB_VAD, KC_TRNS, KC_TRNS, RGB_MOD},
-     }
-};
-const uint16_t PROGMEM fn_actions[] = {
-
+    /* Level 0: Default Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |   Q   |   W   |   E   |   R   |   T   |   Y   |   U   |   I   |   O   |   P   |  BSP  |
+     * |---------------------------------------------------------------------------------------|
+     * |   A   |   S   |   D   |   F   |   G   |   H   |   J   |   K   |   L   |  ENT  |LT(1|,)|
+     * |---------------------------------------------------------------------------------------|
+     * |LT(3|Z)|   X   |   C   |   V   |   NO  |  SPC  |   B   |   N   |   M   |  RSFT |LT(2|.)|
+     * |---------------------------------------------------------------------------------------|
+     */
+	[0] ={
+		{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 
+		{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, LT(1, KC_COMMA)}, 
+		{LT(3, KC_Z), KC_X, KC_C, KC_V, KC_NO, KC_SPC, KC_B, KC_N, KC_M, KC_RSFT, LT(2, KC_DOT)}
+	},
+	/* Level 1: Numbers Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |  ESC  |   7   |   8   |   9   |   /   |   *   |   .   |   ,   |   (   |   )   |  DEL  |
+     * |---------------------------------------------------------------------------------------|
+     * |  TAB  |   4   |   5   |   6   |   -   |   +   |  HOME |   UP  |  END  |  PGUP |  TRNS |
+     * |---------------------------------------------------------------------------------------|
+     * |  LATL |   1   |   2   |   3   |   0   |   NO  |  LEFT |  DOWN |  RGHT |  PGDN | RSHFT |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[1] ={
+		{KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL}, 
+		{KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS},
+		{KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_RSFT}
+	},
+	/* Level 2: Symbols Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |   !   |   @   |   #   |   $   |   %   |   ^   |   &   |   *   |   -   |   +   |   =   |
+     * |---------------------------------------------------------------------------------------|
+     * |   {   |   }   |   [   |   ]   |  TRNS |  TRNS |   \   |   ;   |   :   |   `   |   ?   |
+     * |---------------------------------------------------------------------------------------|
+     * |  LSFT |  LCTL |   L   |   T   |  TRNS |  TAB  |   N   |  TRNS |  TRNS |  RCTL |  TRNS |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[2] ={
+		{KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_PLUS, KC_EQL},
+		{KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_BSLS, KC_SCLN, KC_COLN, KC_GRV, KC_QUES},
+		{KC_LSFT, KC_LCTL, KC_L, KC_T, KC_TRNS, KC_TAB, KC_N, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS}
+	},
+	/* Level 3: RGB Layer
+     * ,---------------------------------------------------------------------------------------.
+     * | RESET |  TRNS |  TRNS |  TRNS |  TRNS |   F1  |   F2  |   F3  |   F4  |   F5  |   F6  |
+     * |---------------------------------------------------------------------------------------|
+     * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD|   NO  |RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD|  TRNS |  TRNS |
+     * |---------------------------------------------------------------------------------------|
+     * |  TRNS |  TRNS |  TRNS |  TRNS |   NO  |   F7  |   F8  |   F9  |  F10  |  F11  |  F12  |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[3] ={
+		{RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6}, 
+		{RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS},
+		{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,  KC_F12}
+	}
 };
 };
 
 
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@@ -31,19 +74,46 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
     return MACRO_NONE;
     return MACRO_NONE;
 };
 };
 
 
-
 void matrix_init_user(void) {
 void matrix_init_user(void) {
-
 }
 }
 
 
 void matrix_scan_user(void) {
 void matrix_scan_user(void) {
-
 }
 }
 
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-  return true;
+	return true;
 }
 }
 
 
 void led_set_user(uint8_t usb_led) {
 void led_set_user(uint8_t usb_led) {
 
 
+	if (usb_led & (1 << USB_LED_NUM_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_COMPOSE)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_KANA)) {
+
+	} else {
+
+	}
+
 }
 }

+ 21 - 0
keyboards/miuni32/keymaps/ht_156/Makefile

@@ -0,0 +1,21 @@
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in 
+#   the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = no         # Console for debug(+400)
+COMMAND_ENABLE = yes        # Commands for debug and configuration
+NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+MIDI_ENABLE = no            # MIDI controls
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+	include ../../../../Makefile
+endif

+ 8 - 0
keyboards/miuni32/keymaps/ht_156/config.h

@@ -0,0 +1,8 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif

+ 181 - 0
keyboards/miuni32/keymaps/ht_156/keymap.c

@@ -0,0 +1,181 @@
+#include "miuni32.h"
+
+// Keyboard layer definitions
+#define BASE    0
+#define NUMBERS 1
+#define SYMBOLS 2
+#define MEDIA   3
+
+// Keyboard macro defintions
+#define GIT_ST  M(0)
+#define GIT_PU  M(1)
+#define GIT_CM  M(2)
+#define HM_DIR  M(3)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Level 0: Default Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |   Q   |   W   |   E   |   R   |   T   |   Y   |   U   |   I   |   O   |   P   |  BSP  |
+     * |---------------------------------------------------------------------------------------|
+     * |   A   |   S   |   D   |   F   |   G   |   H   |   J   |   K   |   L   |  ENT  |  RSFT |
+     * |---------------------------------------------------------------------------------------|
+     * |LT(2|Z)|LT(3|X)|   C   |   V   |   B   |  SPC  |   N   |   M   |   ,   |LT(1|.)|  RCTL |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[BASE] ={
+		{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 
+		{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_RSFT}, 
+		{LT(2, KC_Z), LT(3, KC_X), KC_C, KC_V, KC_B, KC_SPC, KC_N, KC_M, KC_COMMA, LT(1, KC_DOT), KC_RCTL}
+	},
+	/* Level 1: Numbers Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |  ESC  |   7   |   8   |   9   |   /   |   *   |   .   |   ,   |   (   |   )   |  DEL  |
+     * |---------------------------------------------------------------------------------------|
+     * |  TAB  |   4   |   5   |   6   |   -   |   +   |  HOME |   UP  |  END  |  INS  |  PGUP |
+     * |---------------------------------------------------------------------------------------|
+     * |  LATL |   1   |   2   |   3   |   0   |  ENT  |  LEFT |  DOWN |  RGHT | !TRNS!|  PGDN |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[NUMBERS] ={
+		{KC_ESC, KC_7, KC_8, KC_9, KC_SLSH, KC_ASTR, KC_DOT, KC_COMM, KC_LPRN, KC_RPRN, KC_DEL}, 
+		{KC_TAB, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS, KC_HOME, KC_UP, KC_END, KC_INSERT, KC_PGUP},
+		{KC_LALT, KC_1, KC_2, KC_3, KC_0, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_PGDN}
+	},
+	/* Level 2: Symbols Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |   !   |   @   |   #   |   $   |   %   |   ^   |   &   |   *   |   _   |   =   |   ?   |
+     * |---------------------------------------------------------------------------------------|
+     * | RESET |  LSFT |   ~   |   {   |   }   |   \   |   |   |   ;   |   :   |   `   |   "   |
+     * |---------------------------------------------------------------------------------------|
+     * | !TRNS!|  LCTL |  TRNS |   [   |   ]   |  TAB  |   <   |   >   |  TRNS |  RCTL |  TRNS |
+     * |---------------------------------------------------------------------------------------|
+     */
+	[SYMBOLS] ={
+		{KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_EQL, KC_QUES},
+		{RESET, KC_LSFT, KC_TILD, KC_LCBR, KC_RCBR, KC_BSLS, KC_PIPE, KC_SCLN, KC_COLN, KC_GRV, KC_DQUO},
+		{KC_TRNS, KC_LCTL, KC_TRNS, KC_LBRC, KC_RBRC, KC_TAB, KC_LABK, KC_RABK, KC_TRNS, KC_RCTL, KC_TRNS}
+	},
+    /* Level 3: Media Layer
+     * ,---------------------------------------------------------------------------------------.
+     * |RGB_TOG|RGB_HUI|RGB_SAI|RGB_VAI| GIT_CM|  CALC |  WREF |  WFAV |  MUTE |  VOLD |  VOLU |
+     * |---------------------------------------------------------------------------------------|
+     * |RGB_MOD|RGB_HUD|RGB_SAD|RGB_VAD| GIT_ST|  WHOM |  WBAK |  WFWD |  TRNS |  STOP |  PLAY |
+     * |---------------------------------------------------------------------------------------|
+     * |  TRNS | !TRNS!|  TRNS | HM_DIR| GIT_PU|  MYCM |  WSTP |  WSCH |  MSEL |  MPRV |  MNXT |
+     * |---------------------------------------------------------------------------------------|
+     */
+    [MEDIA] ={
+        {RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, GIT_CM, KC_CALC, KC_WREF, KC_WFAV, KC_MUTE, KC_VOLD, KC_VOLU},
+        {RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, GIT_ST, KC_WHOM, KC_WBAK, KC_WFWD, KC_TRNS, KC_MSTP, KC_MPLY},
+        {KC_TRNS, KC_TRNS, KC_TRNS, HM_DIR, GIT_PU, KC_MYCM, KC_WSTP, KC_WSCH, KC_MSEL, KC_MPRV, KC_MNXT}
+    }
+};
+
+void press_and_release_key(uint8_t code)
+{
+    register_code(code);
+    unregister_code(code);
+}
+
+void press_and_release_mod_key(uint8_t mod, uint8_t code)
+{
+    register_code(mod);
+    register_code(code);
+    unregister_code(code);
+    unregister_code(mod);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  // MACRODOWN only works in this function
+      switch(id) 
+      {
+        case 0:
+          if (record->event.pressed) 
+          {
+            return MACRO(T(G), T(I), T(T), T(SPC),
+                         T(S), T(T), T(A), T(T), T(U), T(S), END);
+          }
+        break;
+        case 1:
+          if (record->event.pressed) 
+          {
+            return MACRO(T(G), T(I), T(T), T(SPC),
+                         T(P), T(U), T(L), T(L), END);
+          }
+        break;
+        case 2:
+          if (record->event.pressed) 
+          {
+            return MACRO(T(G), T(I), T(T), T(SPC),
+                         T(C), T(O), T(M), T(M), T(I), T(T), END);
+          }
+        break;
+        case 3:
+          if (record->event.pressed) 
+          {
+            /*press_and_release_key(KC_C);
+            press_and_release_key(KC_D);
+            press_and_release_key(KC_SPC);
+            press_and_release_mod_key(KC_LSFT, KC_GRV);
+            press_and_release_key(KC_SLSH);
+            press_and_release_key(KC_Q);
+            press_and_release_key(KC_M);
+            press_and_release_key(KC_K);
+            press_and_release_mod_key(KC_LSFT, KC_MINS);*/
+            return MACRO(I(0),
+                         T(C), T(D), T(SPC),
+                         D(LSFT), T(GRV), U(LSFT), T(SLSH),
+                         T(Q), T(M), T(K), D(LSFT), T(MINS), U(LSFT),
+                         T(F), T(I), T(R), T(M), T(W), T(A), T(R), T(E), T(SLSH),
+                         T(K), T(E), T(Y), T(B), T(O), T(A), T(R), T(D), T(S), T(SLSH), 
+                         T(M), T(I), T(U), T(N), T(I), T(3), T(2), T(SLSH),
+                         T(K), T(E), T(Y), T(M), T(A), T(P), T(S), END);
+          }
+      }
+    return MACRO_NONE;
+};
+
+void matrix_init_user(void) {
+}
+
+void matrix_scan_user(void) {
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+	return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+	if (usb_led & (1 << USB_LED_NUM_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_COMPOSE)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_KANA)) {
+
+	} else {
+
+	}
+
+}

+ 1 - 0
keyboards/miuni32/keymaps/ht_156/readme.md

@@ -0,0 +1 @@
+# ht_156's keymap for miuni32, using 33 keys

+ 2 - 2
keyboards/miuni32/miuni32.h

@@ -6,10 +6,10 @@
 #define KEYMAP( \
 #define KEYMAP( \
     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
     K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
     K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
-    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A ) { \
+    K20, K21, K22, K23,      K25, K26, K27, K28, K29, K2A ) { \
     { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A }, \
     { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A }, \
     { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A }, \
     { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A }, \
-    { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24,    KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A }  \
+    { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_NO, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A }  \
 }
 }
 
 
 #endif
 #endif

+ 4 - 4
keyboards/phantom/keymaps/xyverz/keymap.c

@@ -76,7 +76,7 @@ const uint16_t PROGMEM fn_actions[] = {
 
 
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -86,17 +86,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
       switch(id) {
       switch(id) {
         case _DV:
         case _DV:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_DV);
+            persistent_default_layer_set(1UL<<_DV);
           }
           }
           break;
           break;
         case _QW:
         case _QW:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_QW);
+            persistent_default_layer_set(1UL<<_QW);
           }
           }
           break;
           break;
         case _CM:
         case _CM:
           if (record->event.pressed) {
           if (record->event.pressed) {
-            persistant_default_layer_set(1UL<<_CM);
+            persistent_default_layer_set(1UL<<_CM);
           }
           }
           break;
           break;
       }
       }

+ 2 - 2
keyboards/planck/keymaps/ab/keymap.c

@@ -80,8 +80,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 }
 }
 };
 };
 
 
-// Set a layer persistantly.
-void persistant_default_layer_set(uint16_t default_layer) {
+// Set a layer persistently.
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }

+ 2 - 2
keyboards/planck/keymaps/dbroqua/keymap.c

@@ -149,7 +149,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -161,7 +161,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/planck/keymaps/default/keymap.c

@@ -186,7 +186,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -198,7 +198,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -207,7 +207,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -216,7 +216,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 12 - 0
keyboards/planck/keymaps/dshields/Makefile

@@ -0,0 +1,12 @@
+ifndef QUANTUM_DIR
+	include ../../../../Makefile
+endif
+
+MOUSEKEY_ENABLE  = yes # Mouse keys(+4700)
+COMMAND_ENABLE   = yes # Commands for debug and configuration
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
+TAP_DANCE_ENABLE = yes 
+AUDIO_ENABLE     = no
+API_SYSEX_ENABLE = no

+ 31 - 0
keyboards/planck/keymaps/dshields/config.h

@@ -0,0 +1,31 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+#define ONESHOT_TAP_TOGGLE      2
+#define ONESHOT_TIMEOUT         500
+
+#define MOUSEKEY_INTERVAL       20
+#define MOUSEKEY_DELAY          0
+#define MOUSEKEY_TIME_TO_MAX    60
+#define MOUSEKEY_MAX_SPEED      7
+#define MOUSEKEY_WHEEL_DELAY    0
+
+#define DM_PLAY DYN_MACRO_PLAY1
+#define DM_STRT DYN_REC_START1
+#define DM_STOP DYN_REC_STOP
+
+#define OSL_RSE OSL(RSE)
+#define OSL_LWR OSL(LWR)
+#define OSL_FUN OSL(FUN)
+
+#define OSM_CTL OSM(MOD_LCTL)
+#define OSM_ALT OSM(MOD_LALT)
+#define OSM_SFT OSM(MOD_LSFT)
+
+#endif
+

二进制
keyboards/planck/keymaps/dshields/keyboard-layout.jpg


+ 100 - 0
keyboards/planck/keymaps/dshields/keymap.c

@@ -0,0 +1,100 @@
+#include "planck.h"
+#include "backlight.h"
+#include "config.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+enum planck_layers { DEF, LWR, RSE, FUN };
+enum planck_keycodes { DYNAMIC_MACRO_RANGE = SAFE_RANGE };
+enum tap_dance_keys { TD_SCLN };
+
+#include "dynamic_macro.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    /* Default
+     * ,-----------------------------------------------------------------------------------.
+     * |   Q  |   W  |   E  |   R  |   T  | Esc  | Bksp |   Y  |   U  |   I  |   O  |   P  |
+     * |------+------+------+------+------+-------------+------+------+------+------+------|
+     * |   A  |   S  |   D  |   F  |   G  | Tab  | Enter|   H  |   J  |   K  |   L  |   ;  |
+     * |------+------+------+------+------+------|------+------+------+------+------+------|
+     * |   Z  |   X  |   C  |   V  |   B  | Shift|DmPlay|   N  |   M  |   ,  |   .  |   /  |
+     * |------+------+------+------+------+------+------+------+------+------+------+------|
+     * | Ctrl | Super| Alt  | Fun  | Lower|    Space    | Raise| Left | Down |  Up  |Right |
+     * `-----------------------------------------------------------------------------------'
+     */
+    [DEF] = {
+        {KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_ESC,  KC_BSPC, KC_Y,    KC_U,    KC_I,    KC_O,   KC_P},
+        {KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_TAB,  KC_ENT,  KC_H,    KC_J,    KC_K,    KC_L,   TD(TD_SCLN)},
+        {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    OSM_SFT, DM_PLAY, KC_N,    KC_M,    KC_COMM, KC_DOT, KC_SLSH},
+        {OSM_CTL, KC_LGUI, OSM_ALT, OSL_FUN, OSL_LWR, KC_SPC,  KC_SPC,  OSL_RSE, KC_LEFT, KC_DOWN, KC_UP,  KC_RGHT}
+    },
+    /* Lower
+     * ,-----------------------------------------------------------------------------------.
+     * |   !  |   @  |   #  |   $  |   %  |      |      |   ^  |   &  |   *  |   (  |   )  |
+     * |------+------+------+------+------+-------------+------+------+------+------+------|
+     * |   ~  |      |      |      |      |      |      |   _  |   +  |      |   {  |   }  |
+     * |------+------+------+------+------+------|------+------+------+------+------+------|
+     * |      |      |      |      |      |      |      |      |      |      |   "  |   |  |
+     * |------+------+------+------+------+------+------+------+------+------+------+------|
+     * |      |      |      |      |      |             |      | Home | PgDn | PgUp | End  |
+     * `-----------------------------------------------------------------------------------'
+     */
+    [LWR] = {
+        {KC_EXLM,   KC_AT,   KC_HASH, KC_DLR,  KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR,  KC_LPRN,    KC_RPRN},
+        {S(KC_GRV), _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______,  S(KC_LBRC), S(KC_RBRC)},
+        {_______,   _______, _______, _______, _______, _______, _______, _______, _______, _______,  S(KC_QUOT), S(KC_BSLS)},
+        {_______,   _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN,  KC_PGUP,    KC_END}
+    },
+    /* Raise
+     * ,-----------------------------------------------------------------------------------.
+     * |   1  |   2  |   3  |   4  |   5  |      |      |   6  |   7  |   8  |   9  |   0  |
+     * |------+------+------+------+------+-------------+------+------+------+------+------|
+     * |   `  |      |      |      |      |      |      |   -  |   =  |      |   [  |   ]  |
+     * |------+------+------+------+------+------|------+------+------+------+------+------|
+     * |      |      |      |      |      |      |      |      |      |      |   '  |   \  |
+     * |------+------+------+------+------+------+------+------+------+------+------+------|
+     * |      |      |      |      |      |             |      | Home | PgDn | PgUp | End  |
+     * `-----------------------------------------------------------------------------------'
+     */
+    [RSE] = {
+        {KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    _______, _______, KC_6,    KC_7,    KC_8,     KC_9,    KC_0},
+        {KC_GRV,  _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL,  _______,  KC_LBRC, KC_RBRC},
+        {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,  KC_QUOT, KC_BSLS},
+        {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN,  KC_PGUP, KC_END}
+    },
+    /* Function
+     * ,-----------------------------------------------------------------------------------.
+     * |  F1  |  F2  |  F3  |  F4  |  F5  | Reset|Delete|  F6  |  F7  |  F8  |  F9  | F10  |
+     * |------+------+------+------+------+-------------+------+------+------+------+------|
+     * | F11  | F12  | F13  | F14  | F15  |      |      |      |MsWhLt|MsWhDn|MsWhUp|MsWhRt|
+     * |------+------+------+------+------+------|------+------+------+------+------+------|
+     * |BlTggl|BlStep|      |      |      |DmStrt|DmStop|      |      |MsBtn1|MsBtn2|MsBtn3|
+     * |------+------+------+------+------+------+------+------+------+------+------+------|
+     * |      |      |      |      |      |             |      |MsLeft|MsDown| MsUp |MsRght|
+     * `-----------------------------------------------------------------------------------'
+     */
+    [FUN] = {
+        {KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   RESET,   KC_DEL,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10},
+        {KC_F11,  KC_F12,  KC_F13,  KC_F14,  KC_F15,  _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R},
+        {BL_TOGG, BL_STEP, _______, _______, _______, DM_STRT, DM_STOP, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3},
+        {_______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R}
+    },
+
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+    [TD_SCLN]  = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, S(KC_SCLN))  // once for semi-colon, twice for colon
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    if (!process_record_dynamic_macro(keycode, record)) {
+        return false;
+    }
+    return true;
+}
+
+void matrix_init_user(void) {
+}
+

+ 12 - 0
keyboards/planck/keymaps/dshields/readme.md

@@ -0,0 +1,12 @@
+
+About
+------
+
+A simple split qwerty Planck layout that makes use of one-shot modifiers,
+one-shot layers, tap-dance keys and dynamic macros.
+
+Layout
+-------
+
+![Layout](keyboard-layout.jpg "Keyboard Layout")
+

+ 2 - 2
keyboards/planck/keymaps/espynn/keymap.c

@@ -88,8 +88,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 }
 }
 };
 };
 
 
-// Set a layer persistantly.
-void persistant_default_layer_set(uint16_t default_layer) {
+// Set a layer persistently.
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }

+ 4 - 4
keyboards/planck/keymaps/experimental/keymap.c

@@ -204,7 +204,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 
 
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -217,7 +217,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           break;
           break;
       return false;
       return false;
@@ -226,7 +226,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           break;
           break;
       return false;
       return false;
@@ -235,7 +235,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           break;
           break;
       return false;
       return false;

+ 4 - 4
keyboards/planck/keymaps/impossible/keymap.c

@@ -164,7 +164,7 @@ float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -176,7 +176,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_workman, false, 0);
           PLAY_NOTE_ARRAY(tone_workman, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_WORKMAN);
+        persistent_default_layer_set(1UL<<_WORKMAN);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -185,7 +185,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -200,7 +200,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         keymap_config.raw = eeconfig_read_keymap();
         keymap_config.raw = eeconfig_read_keymap();
         keymap_config.nkro = 1;
         keymap_config.nkro = 1;
         eeconfig_update_keymap(keymap_config.raw);
         eeconfig_update_keymap(keymap_config.raw);
-        persistant_default_layer_set(1UL<<_PLOVER);
+        persistent_default_layer_set(1UL<<_PLOVER);
       }
       }
       return false;
       return false;
       break;
       break;

+ 1 - 1
keyboards/planck/keymaps/jeebak/keymap.c

@@ -270,7 +270,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }

+ 1 - 1
keyboards/planck/keymaps/jeebak/readme.md

@@ -6,7 +6,7 @@ needed, they will be mapped to home row keys. The `keymap.c` file will contain
 the exact changes. The diagrams in this README shows the highlights of the
 the exact changes. The diagrams in this README shows the highlights of the
 changes from the default mappings.
 changes from the default mappings.
 
 
-I also decided to change all calls to `persistant_default_layer_set()` to
+I also decided to change all calls to `persistent_default_layer_set()` to
 `default_layer_set()` since this is my personal perference.
 `default_layer_set()` since this is my personal perference.
 
 
 ## Macros
 ## Macros

+ 3 - 3
keyboards/planck/keymaps/jhenahan/keymap.c

@@ -183,7 +183,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -195,7 +195,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_workman, false, 0);
           PLAY_NOTE_ARRAY(tone_workman, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_WORKMAN);
+        persistent_default_layer_set(1UL<<_WORKMAN);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -212,7 +212,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/planck/keymaps/khord/keymap.c

@@ -213,7 +213,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -251,7 +251,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -260,7 +260,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -269,7 +269,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/planck/keymaps/pete/keymap.c

@@ -143,7 +143,7 @@ float goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -156,7 +156,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           break;
           break;
         case _COLEMAK:
         case _COLEMAK:
@@ -164,7 +164,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           break;
           break;
         case _DVORAK:
         case _DVORAK:
@@ -172,7 +172,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           break;
           break;
         case _LOWER:
         case _LOWER:

+ 4 - 4
keyboards/planck/keymaps/premek/keymap.c

@@ -100,7 +100,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -112,7 +112,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -121,7 +121,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -130,7 +130,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 2 - 2
keyboards/planck/keymaps/pvc/keymap.c

@@ -233,7 +233,7 @@ float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 
 
 #endif /* AUDIO_ENABLE */
 #endif /* AUDIO_ENABLE */
 
 
-void persistant_default_layer_set(uint16_t default_layer)
+void persistent_default_layer_set(uint16_t default_layer)
 {
 {
     eeconfig_update_default_layer(default_layer);
     eeconfig_update_default_layer(default_layer);
     default_layer_set(default_layer);
     default_layer_set(default_layer);
@@ -344,7 +344,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
         case MACRO_QWERTY:
         case MACRO_QWERTY:
             if (record->event.pressed)
             if (record->event.pressed)
             {
             {
-                persistant_default_layer_set(1UL<<LAYER_QWERTY);
+                persistent_default_layer_set(1UL<<LAYER_QWERTY);
             }
             }
             break;
             break;
 
 

+ 3 - 3
keyboards/planck/keymaps/sgoodwin/keymap.c

@@ -139,7 +139,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -151,7 +151,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -160,7 +160,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/planck/keymaps/smt/keymap.c

@@ -162,7 +162,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -174,7 +174,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -183,7 +183,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -192,7 +192,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/planck/keymaps/thermal_printer/keymap.c

@@ -183,7 +183,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -195,7 +195,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -204,7 +204,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -213,7 +213,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 4 - 4
keyboards/planck/keymaps/unicode/keymap.c

@@ -209,7 +209,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 
 
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -222,7 +222,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           break;
           break;
         case _COLEMAK:
         case _COLEMAK:
@@ -230,7 +230,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           break;
           break;
         case _DVORAK:
         case _DVORAK:
@@ -238,7 +238,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           break;
           break;
         case _LOWER:
         case _LOWER:

+ 2 - 1
keyboards/planck/keymaps/vifon/keymap.c

@@ -107,7 +107,8 @@ const uint16_t PROGMEM fn_actions[] = {
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     static uint16_t key_timer;
     static uint16_t key_timer;
 
 
-    if (!process_record_dynamic_macro(keycode, record)) {
+    uint16_t macro_kc = (keycode == MO(_DYN) ? DYN_REC_STOP : keycode);
+    if (!process_record_dynamic_macro(macro_kc, record)) {
         return false;
         return false;
     }
     }
 
 

+ 4 - 4
keyboards/planck/keymaps/xyverz/keymap.c

@@ -159,7 +159,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -171,7 +171,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
           PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_QWERTY);
+        persistent_default_layer_set(1UL<<_QWERTY);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -180,7 +180,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
           PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       return false;
       return false;
       break;
       break;
@@ -189,7 +189,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
           PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_DVORAK);
+        persistent_default_layer_set(1UL<<_DVORAK);
       }
       }
       return false;
       return false;
       break;
       break;

+ 3 - 3
keyboards/planck/keymaps/zach/zach_common_functions.c

@@ -16,7 +16,7 @@ void tap(uint16_t keycode){
     unregister_code(keycode);
     unregister_code(keycode);
 };
 };
 
 
-void persistant_default_layer_set(uint16_t default_layer){
+void persistent_default_layer_set(uint16_t default_layer){
     eeconfig_update_default_layer(default_layer);
     eeconfig_update_default_layer(default_layer);
     default_layer_set(default_layer);
     default_layer_set(default_layer);
 };
 };
@@ -200,7 +200,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   switch (keycode) {
   switch (keycode) {
     case COLEMAK:
     case COLEMAK:
         if(record->event.pressed){
         if(record->event.pressed){
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
@@ -209,7 +209,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         break;
         break;
     case SWCOLE:
     case SWCOLE:
         if(record->event.pressed){
         if(record->event.pressed){
-            persistant_default_layer_set(1UL<<_SWCOLE);
+            persistent_default_layer_set(1UL<<_SWCOLE);
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_swcole, false, 0);
               PLAY_NOTE_ARRAY(tone_swcole, false, 0);
             #endif
             #endif

+ 3 - 3
keyboards/preonic/keymaps/0xdec/keymap.c

@@ -134,7 +134,7 @@ void matrix_init_user(void) {
   #endif
   #endif
 }
 }
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -146,7 +146,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
         PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         PLAY_NOTE_ARRAY(tone_colemak, false, 0);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_COLEMAK);
+        persistent_default_layer_set(1UL<<_COLEMAK);
       }
       }
       break;
       break;
     case GAME:
     case GAME:
@@ -154,7 +154,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
         #ifdef AUDIO_ENABLE
         PLAY_NOTE_ARRAY(tone_game, false, STACCATO);
         PLAY_NOTE_ARRAY(tone_game, false, STACCATO);
         #endif
         #endif
-        persistant_default_layer_set(1UL<<_GAME);
+        persistent_default_layer_set(1UL<<_GAME);
       }
       }
       break;
       break;
     case RAISE:
     case RAISE:

+ 7 - 7
keyboards/preonic/keymaps/CMD-Preonic/keymap.c

@@ -225,7 +225,7 @@ float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
 float goodbye[][2] = SONG(GOODBYE_SOUND);
 float goodbye[][2] = SONG(GOODBYE_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -238,7 +238,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           break;
           break;
         case _COLEMAK:
         case _COLEMAK:
@@ -246,7 +246,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           break;
           break;
         case _DVORAK:
         case _DVORAK:
@@ -254,7 +254,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           break;
           break;
         case _GAME:
         case _GAME:
@@ -262,7 +262,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_GAME);
+            persistent_default_layer_set(1UL<<_GAME);
           }
           }
           break;
           break;
         case _NUMPAD:
         case _NUMPAD:
@@ -270,7 +270,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_NUMPAD);
+            persistent_default_layer_set(1UL<<_NUMPAD);
           }
           }
           break;
           break;
         case _ARROW:
         case _ARROW:
@@ -278,7 +278,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_LOWER);
+            persistent_default_layer_set(1UL<<_LOWER);
           }
           }
           break;
           break;
         case _LOWER:
         case _LOWER:

+ 4 - 4
keyboards/preonic/keymaps/default/keymap.c

@@ -180,7 +180,7 @@ float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 #endif
 #endif
 
 
-void persistant_default_layer_set(uint16_t default_layer) {
+void persistent_default_layer_set(uint16_t default_layer) {
   eeconfig_update_default_layer(default_layer);
   eeconfig_update_default_layer(default_layer);
   default_layer_set(default_layer);
   default_layer_set(default_layer);
 }
 }
@@ -192,7 +192,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
               PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_QWERTY);
+            persistent_default_layer_set(1UL<<_QWERTY);
           }
           }
           return false;
           return false;
           break;
           break;
@@ -201,7 +201,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
               PLAY_NOTE_ARRAY(tone_colemak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_COLEMAK);
+            persistent_default_layer_set(1UL<<_COLEMAK);
           }
           }
           return false;
           return false;
           break;
           break;
@@ -210,7 +210,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             #ifdef AUDIO_ENABLE
             #ifdef AUDIO_ENABLE
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
               PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
             #endif
             #endif
-            persistant_default_layer_set(1UL<<_DVORAK);
+            persistent_default_layer_set(1UL<<_DVORAK);
           }
           }
           return false;
           return false;
           break;
           break;

部分文件因为文件数量过多而无法显示