]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
update Helix keymap 'five_rows' (#2635)
authorTakeshi ISHII <2170248+mtei@users.noreply.github.com>
Sun, 15 Apr 2018 16:54:56 +0000 (01:54 +0900)
committerDrashna Jaelre <drashna@live.com>
Sun, 15 Apr 2018 16:54:56 +0000 (09:54 -0700)
* add 'HELIX=' option for build

* add IOS_DEVICE_ENABLE for iPad

* shrink size to helix five_rows keymap.c

* shrink size. _ADJUST number change

* add KEYPAD layer

* modify keypad leyer

* display RGB mode on slave side OLED

* fix Colemak, Dvorak center DEL to BS

* change LEFT BS to LEFT SP and add AUX layer for try old map

* update update_base_layer()

* add right keypad and keypad func layer

* use MO() macro insted of LOWER,RAISE,ADJUST custom key-code

* remove LOWER,RAISE,ADJUST custom key-code
* use MO(_LOWER|_RAISE|_ADJUST)
* relayout ADJUST layer

* modify Function Layer. PGUP,PGDN swap HOME,END

* add Keypad aux layer for '00' send

* update README.md, README_jp.md

* fix README.md

* fix README.md, README_jp.md

keyboards/helix/rev2/keymaps/five_rows/README.md
keyboards/helix/rev2/keymaps/five_rows/README_jp.md
keyboards/helix/rev2/keymaps/five_rows/config.h
keyboards/helix/rev2/keymaps/five_rows/keymap.c
keyboards/helix/rev2/keymaps/five_rows/rules.mk

index edb768f3b22bcaaac747e6e4b0d4ceaa347b499c..4feaac2efbfd2b532bba1b7a58f6a9583b15f012 100644 (file)
@@ -4,15 +4,17 @@ This keymap is only for 5 rows Helix keyboard.
 
 ## Layout
 
-![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png)
+![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png)
 
 ## Layer
 
 |Priority|Number|Name|Discription|
 | ---- | ---- | --- | --- |
-|high|16|Adjust| keyboard local functions|
-||4|Extra char| some charactors |
-||3|Function| function keys |
+|high|9|Adjust| keyboard local functions (violet)|
+||8|KFunction| TenkeyPad function keys (bule)|
+||7|Extra char| some charactors (red)|
+||6|Function| function keys (blue)|
+||2|Keypad|TenkeyPad|
 ||2|Dvorak|Dvorak|
 ||1|Colemak|Colemak|
 |low|0|Qwerty|QWERTY (base)|
@@ -23,7 +25,9 @@ Adjust Layer has keyboard local function keys.
 
 * LED control.
 * Mac/Win mode change.
-* Qwerty/Colemak/Dvorak change.
+* Qwerty/Colemak/Dvorak/TenkeyPad change.
+
+![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png)
 
 ### Mac mode and Win mode
 
@@ -32,42 +36,49 @@ Mac mode swap Alt/Win(GUI) key.
 |mode|key|code|
 | ---- | ---- | --- |
 |Mac mode|Adjust + g(Qwerty)|AG_NORM|
-|Win mode|Adjust + h(Qwerty)|AG_SWAP|
-|        |Adjust + t(Qwerty)|       |
+|        |Adjust + h(Qwerty)|       |
+|Win mode|Adjust + t(Qwerty)|AG_SWAP|
+|        |Adjust + y(Qwerty)|       |
 
 ### LED control
 
 |command|key|code|
 | ---- | ---- | --- |
-|on/off|Adjust + ,(Qwerty)|RGB_TOG|
-|      |Adjust + v(Qwerty)|       |
-|change mode|Adjust + Right option |RGB_SMOD|
-|           |Adjust + c(Qwerty)|       |
-|HUE +|Adjust + .(Qwerty)   |RGB_HUI|
-|     |Adjust + Left Control|       |
-|HUE -|Adjust + menu        |RGB_HUD|
-|     |Adjust + Left Shift  |       |
-|SAT +|Adjust + /(Qwerty)   |RGB_SAI|
+|on/off|Adjust + e(Qwerty)|RGB_TOG|
+|      |Adjust + i(Qwerty)|       |
+|change mode|Adjust + d(Qwerty) |RGB_SMOD|
+|           |Adjust + k(Qwerty)|       |
+|HUE +|Adjust + Left Control|RGB_HUI|
+|     |Adjust + Right Control|       |
+|HUE -|Adjust + Left Shift  |RGB_HUD|
+|     |Adjust + Right Shift  |       |
+|SAT +|Adjust + ;(Qwerty)   |RGB_SAI|
 |     |Adjust + a(Qwerty)   |       |
-|SAT -|Adjust + right hand left side Fn|RGB_SAD|
-|     |Adjust + z(Qwerty)              |       |
-|Bright +|Adjust + Right Shift    |RGB_VAI|
-|        |Adjust + s(Qwerty)|       |
-|Bright -|Adjust + right hand right side Fn|RGB_VAD|
-|        |Adjust + x(Qwerty)               |       |
-|reset|Adjust + w(Qwerty)|RGBRST|
+|SAT -|Adjust + z(Qwerty)  |RGB_SAD|
+|     |Adjust + /(Qwerty)  |       |
+|Bright +|Adjust + s(Qwerty)  |RGB_VAI|
+|     |Adjust + l(Qwerty)  |       |
+|Bright -|Adjust + x(Qwerty)  |RGB_VAD|
+|     |Adjust + >(Qwerty)  |       |
+|reset|Adjust + w|RGBRST|
 
-### Qwerty, Colemak, Dvorak selection
+### Qwerty, Colemak, Dvorak, TenkeyPad selection
 
 |char layout|key|
 | ---- | ---- |
-|Qwerty | Adjust + j(Qwerty) |
-|       | Adjust + 5|
-|Calemak| Adjust + k(Qwerty) |
-|       | Adjust + 4|
-|Dvorak | Adjust + l(Qwerty) |
-|       | Adjust + 3|
+|Qwerty | Adjust + 5 |
+|       | Adjust + 6 |
+|Calemak| Adjust + 4 |
+|       | Adjust + 7 |
+|Dvorak | Adjust + 3 |
+|       | Adjust + 8 |
+|Keypad | Adjust + 2 |
+|       | Adjust + 9 |
+
+## TenkeyPad layout
+
+![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png)
 
 ## Note
 
-![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg)
+![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg)
index 8d3d8f2def802cb924233b04ede54f864ab8bf8d..932e200a5638d9bd6981d24b51a55fdaedba0c7d 100644 (file)
@@ -7,33 +7,38 @@
 ## キー配置
 以下に、Qwerty配列時の、文字配列の図を示します。
 
-![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/662082b66231eb8d1f45776d813c57f29d445e68/helix-five_rows_r2.png)
+![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png)
 
 ## レイヤー
 
 |優先順位|番号|名称|内容|
 | ---- | ---- | --- | --- |
-|高い|16|Adjust|機能キー(紫)|
-||4|Extra char|記号類(赤)|
-||3|Function|ファンクションキー類(青)|
+|高い|9|Adjust|機能キー(紫)|
+||8|KFunction|テンキーパッド用ファンクションキー類(青)|
+||7|Extra char|記号類(赤)|
+||6|Function|ファンクションキー類(青)|
+||3|Keypad|テンキーパッド配列|
 ||2|Dvorak|Dvorak配列|
 ||1|Colemak|Colemak配列|
 |低い|0|Qwerty|QWERTY配列(ベース)|
 
-Qwerty/Colemak/Dvorak の各レイヤーは、後述する、Ajuest キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。
+Qwerty/Colemak/Dvorak/Keypad の各レイヤーは、後述する、Ajuestレイヤーの キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。
 
-Adjust レイヤーは、Adjust キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
+Function レイヤーは、下段両端の4つのFnキーのどれかひとつを押している間だけ有効になり、矢印キー等のナビゲーションキーや F1, F2, ...F12キーなどが配置されています。  
+上の図の青色の刻印のキーのあるレイヤーです。
 
-Function レイヤーは、Fn キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
+Extra レイヤーは、下段中央部の Enter キーか BS キーを一定時間(0.2秒)以上押していると押している間だけ有効になり、'+=-_[]{}' の 8つの記号と「英数」キー、「かな」キーが配置されています。
+このため、Enter/BS キーで Enter/BS を入力するには、Enter/BSキーを押して短時間ですぐ離してください。  
+上の図の赤色の刻印のキーのあるレイヤーです。
 
-Extra レイヤーは、Enter キーを一定時間(0.1秒)以上押していると押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
-このため、Enterキーで Enter を入力するには、Enterキーを押して短時間ですぐ離してください。
+Adjust レイヤーは、Adjust キーを押している間有効になります。
+Adjust キーは Function レイヤーに有り、下段両端の4つのFnキーのどれか一つを押しながら、下段中央部の Enter キーか BS キーを押すことで Adjust レイヤーが有効になります。  
+Adjust キー (Enter/BS)を押した後は、Fnキーは離して構いません。  
 
 ### Adjust レイヤー
-Ajust レイヤーは、Helix の標準キーマップ "default" から F1,F2..F12 を除き、右側にあった機能キーを
-左側にも追加したものとなっています。
+Ajust レイヤーは、LEDのコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列, TenkeyPad配列の切り替えが行えます。
 
-LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列の切り替えが行えます。
+![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png)
 
 ### MacモードとWinモード
 キーボードには、Mac モードと、Win モードの二つのモードがあります。
@@ -44,12 +49,13 @@ LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak
 |コマンド|指定キー|コード|
 | ---- | ---- | --- |
 |Macモード|Adjust + g(Qwerty)|AG_NORM|
-|Winモード|Adjust + h(Qwerty)|AG_SWAP|
-|        |Adjust + t(Qwerty)|       |
+|        |Adjust + h(Qwerty)|       |
+|Winモード|Adjust + t(Qwerty)|AG_SWAP|
+|        |Adjust + y(Qwerty)|       |
 
 Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。
 
-Mac モードでは、上の配列図の「英数キー」と「かなキー」で英語モードと日本語モードの切り替えができます。
+Mac モードでは、Extra レイヤー の「英数」キーと「かな」キーで英語モードと日本語モードの切り替えができます
 
 Winモードでは、該当のキーはどちらも共に Alt + `(日本語IMEの切り替え)として入力されます。
 
@@ -60,35 +66,48 @@ Winモードでは、該当のキーはどちらも共に Alt + `(日本語IME
 
 |コマンド|指定キー|コード|
 | ---- | ---- | --- |
-|オン/オフ|Adjust + ,(Qwerty)|RGB_TOG|
-|      |Adjust + v(Qwerty)|       |
-|モード切り替え|Adjust + Right option |RGB_SMOD|
-|           |Adjust + c(Qwerty)|       |
-|色相 +|Adjust + .(Qwerty)|RGB_HUI|
-|     |Adjust + Left Control|       |
-|色相 -|Adjust + menu|RGB_HUD|
-|     |Adjust + Left Shift  |       |
-|彩度 +|Adjust + /(Qwerty)   |RGB_SAI|
+|オン/オフ|Adjust + e(Qwerty)|RGB_TOG|
+|      |Adjust + i(Qwerty)|       |
+|モード切り替え|Adjust + d(Qwerty) |RGB_SMOD|
+|           |Adjust + k(Qwerty)|       |
+|色相 +|Adjust + Left Control|RGB_HUI|
+|     |Adjust + Right Control|       |
+|色相 -|Adjust + Left Shift  |RGB_HUD|
+|     |Adjust + Right Shift  |       |
+|彩度 +|Adjust + ;(Qwerty)   |RGB_SAI|
 |     |Adjust + a(Qwerty)   |       |
-|彩度 -|Adjust + 右手Fnの左側|RGB_SAD|
-|     |Adjust + z(Qwerty)  |       |
-|明度 +|Adjust + Right Shift|RGB_VAI|
-|     |Adjust + s(Qwerty)  |       |
-|明度 -|Adjust + 右手Fnの右側|RGB_VAD|
-|     |Adjust + x(Qwerty)  |       |
+|彩度 -|Adjust + z(Qwerty)  |RGB_SAD|
+|     |Adjust + /(Qwerty)  |       |
+|明度 +|Adjust + s(Qwerty)  |RGB_VAI|
+|     |Adjust + l(Qwerty)  |       |
+|明度 -|Adjust + x(Qwerty)  |RGB_VAD|
+|     |Adjust + >(Qwerty)  |       |
 |リセット|Adjust + w|RGBRST|
 
 ### 文字配列選択
-Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキーを使います。
+Qwerty, Colemak, Dvorak, Keypad それぞれの文字配列の選択は以下のキーを使います。
 
 |選択配列|指定キー|
 | ---- | ---- |
-|Qwerty | Adjust + j(Qwerty) |
-|       | Adjust + 5|
-|Calemak| Adjust + k(Qwerty) |
-|       | Adjust + 4|
-|Dvorak | Adjust + l(Qwerty) |
-|       | Adjust + 3|
+|Qwerty | Adjust + 5 |
+|       | Adjust + 6 |
+|Calemak| Adjust + 4 |
+|       | Adjust + 7 |
+|Dvorak | Adjust + 3 |
+|       | Adjust + 8 |
+|Keypad | Adjust + 2 |
+|       | Adjust + 9 |
+
+## テンキーパッドのキー配置
+以下に、テンキーパッド配列時の、文字配列の図を示します。
+
+![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png)
+
+図でわかるように、テンキーと F1,F2..F12 のキー入力ができる配列です。  
+F12キーは一定時間(0.2秒)以上押していると KFunc キーとして働き、押している間は、青色の刻印のキー入力を行えます。  
+F12 そのものを入力するときは押して短時間ですぐ離してください。  
+F12キーを押しているときは、F11キー は Adjust キーとなり、Adjust レイヤーが有効になります。
+これによって、Qwerty 配列などに戻すことが可能になります。
 
 ## 備考
 本キーマップは、通常のキーボードの主要部分のホームポジション周辺をなるべくそのまま踏襲する方針で作成しました。
@@ -99,4 +118,4 @@ Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキー
  * Control キーを左右共にホームポジションの行に移動。
  * 左手親指に BackSpace キーを割り当てる。
 
-![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/9979482e9aa0b25962fad9ee634cd1c23cef1751/five_rows_making.jpg)
+![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg)
index 8b1f00d9c0be69a055207e59e62f243520c26861..10d9fc1c4b9af93351b74a9b9af63a8152e9d550 100644 (file)
@@ -78,30 +78,45 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
   #define RGBLED_NUM 6
 #endif
 
-#if RGBLED_NUM <= 6
-  #define RGBLIGHT_LIMIT_VAL 255
+#ifndef IOS_DEVICE_ENABLE
+  #if RGBLED_NUM <= 6
+    #define RGBLIGHT_LIMIT_VAL 255
+  #else
+    #if HELIX_ROWS == 5
+      #define RGBLIGHT_LIMIT_VAL 120
+    #else
+      #define RGBLIGHT_LIMIT_VAL 130
+    #endif
+  #endif
+  #define RGBLIGHT_VAL_STEP 17
 #else
-  #if HELIX_ROWS == 5
-    #define RGBLIGHT_LIMIT_VAL 120
+  #if RGBLED_NUM <= 6
+    #define RGBLIGHT_LIMIT_VAL 90
   #else
-    #define RGBLIGHT_LIMIT_VAL 130
+    #if HELIX_ROWS == 5
+      #define RGBLIGHT_LIMIT_VAL 35
+    #else
+      #define RGBLIGHT_LIMIT_VAL 45
+    #endif
   #endif
+  #define RGBLIGHT_VAL_STEP 4
 #endif
 #define RGBLIGHT_HUE_STEP 10
 #define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
-#endif
 
-#ifdef RGBLIGHT_ENABLE
+
+#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
 // USB_MAX_POWER_CONSUMPTION value for Helix keyboard
 //  120  RGBoff, OLEDoff
 //  120  OLED
 //  330  RGB 6
 //  300  RGB 32
 //  310  OLED & RGB 32
-  #define USB_MAX_POWER_CONSUMPTION 330
+  #define USB_MAX_POWER_CONSUMPTION 400
 #else
   // fix iPhone and iPad power adapter issue
   // iOS device need lessthan 100
   #define USB_MAX_POWER_CONSUMPTION 100
 #endif
+
+#endif /* CONFIG_USER_H */
index f036c94ef85fa9ff540035f9942f92e1230ccef9..d4fabd5a2491837e17a40f475c3a9783359d894c 100644 (file)
@@ -27,23 +27,27 @@ extern uint8_t is_master;
 // 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 _LOWER 3
-#define _RAISE 4
-#define _ADJUST 16
+enum layer_number {
+    _QWERTY = 0,
+    _COLEMAK,
+    _DVORAK,
+    _KEYPAD,
+    _AUX,
+    _KAUX,
+    _LOWER,
+    _RAISE,
+    _PADFUNC,
+    _ADJUST,
+};
 
 enum custom_keycodes {
   QWERTY = SAFE_RANGE,
   COLEMAK,
   DVORAK,
-  LOWER,
-  RAISE,
-  ADJUST,
-  BACKLIT,
+  KEYPAD,
   EISU,
   KANA,
+  ZERO2,
   RGBRST
 };
 
@@ -63,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
   /* Qwerty
    * ,-----------------------------------------.             ,-----------------------------------------.
-   * | ESC  |   1  |   2  |   3  |   4  |   5  |             |   6  |   7  |   8  |   9  |   0  | BS   |
+   * | ESC  |   1  |   2  |   3  |   4  |   5  |             |   6  |   7  |   8  |   9  |   0  |  BS  |
    * |------+------+------+------+------+------|             |------+------+------+------+------+------|
    * | Tab  |   Q  |   W  |   E  |   R  |   T  |             |   Y  |   U  |   I  |   O  |   P  |  \   |
    * |------+------+------+------+------+------|             |------+------+------+------+------+------|
@@ -71,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
    * | Shift|   Z  |   X  |   C  |   V  |   B  |   `  |   '  |   N  |   M  |   ,  |   .  |   /  | Shift|
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
-   * |Adjust| Lower| Caps  | GUI  | Alt | Del  | Enter| Enter| Space| Alt  | GUI  | Menu |Lower |Lower |
+   * |Lower | Lower| Caps  | GUI  | Alt | Space|  BS  | Enter| Space| Alt  | GUI  | Menu |Lower |Lower |
    * `-------------------------------------------------------------------------------------------------'
    */
   [_QWERTY] = KEYMAP( \
@@ -79,8 +83,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                      KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS, \
       KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                      KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_RCTL, \
       KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_GRV, KC_QUOT,  KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, \
-      ADJUST,  LOWER,   KC_CAPS, KC_LALT, KC_LGUI, KC_BSPC,  LT(_RAISE,KC_ENT), \
-                                                           LT(_RAISE,KC_ENT), KC_SPC,  KC_RGUI, KC_RALT, KC_APP,  LOWER,   LOWER \
+      MO(_LOWER),MO(_LOWER),  KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \
+                                                         LT(_RAISE,KC_ENT), KC_SPC,  KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
       ),
 
   /* Colemak
@@ -93,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
    * | Shift|   Z  |   X  |   C  |   V  |   B  |   `  |   '  |   K  |   M  |   ,  |   .  |   /  | Shift|
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
-   * |Adjust| Lower| Caps  | GUI  | Alt | Del  | Enter| Enter| Space| Alt  | GUI  | Menu |Lower |Lower |
+   * |Lower | Lower| Caps  | GUI  | Alt | Space|  BS  | Enter| Space| Alt  | GUI  | Menu |Lower |Lower |
    * `-------------------------------------------------------------------------------------------------'
    */
   [_COLEMAK] = KEYMAP( \
@@ -101,8 +105,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,                      KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSLS, \
       KC_LCTL, KC_A,    KC_R,    KC_S,    KC_T,    KC_D,                      KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_RCTL, \
       KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_GRV, KC_QUOT,  KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, \
-      ADJUST,  LOWER,   KC_CAPS, KC_LALT, KC_LGUI, KC_DEL,  LT(_RAISE,KC_ENT), \
-                                                           LT(_RAISE,KC_ENT), KC_SPC,  KC_RGUI, KC_RALT, KC_APP,  LOWER,   LOWER \
+      MO(_LOWER),MO(_LOWER),  KC_CAPS, KC_LALT, KC_LGUI, KC_SPC,  LT(_RAISE,KC_BSPC), \
+                                                         LT(_RAISE,KC_ENT), KC_SPC,  KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
       ),
 
   /* Dvorak
@@ -115,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
    * | Shift|   ;  |   Q  |   J  |   K  |   X  |   `  |   /  |   B  |   M  |   W  |   V  |   Z  | Shift|
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
-   * |Adjust| Lower| Caps  | GUI  | Alt | Del  | Enter| Enter| Space| Alt  | GUI  | Menu |Lower |Lower |
+   * |Lower | Lower| Caps  | GUI  | Alt | Space|  BS  | Enter| Space| Alt  | GUI  | Menu |Lower |Lower |
    * `-------------------------------------------------------------------------------------------------'
    */
   [_DVORAK] = KEYMAP( \
@@ -123,10 +127,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,                      KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSLS, \
       KC_LCTL, KC_A,    KC_O,    KC_E,    KC_U,    KC_I,                      KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_RCTL, \
       KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_GRV, KC_SLSH,  KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_RSFT, \
-      ADJUST,  LOWER,   KC_CAPS, KC_LALT, KC_LGUI, KC_DEL,  LT(_RAISE,KC_ENT), \
-                                                           LT(_RAISE,KC_ENT), KC_SPC,  KC_RGUI, KC_RALT, KC_APP,  LOWER,   LOWER \
+      MO(_LOWER),MO(_LOWER),  KC_CAPS, KC_LALT, KC_LGUI, KC_SPC,  LT(_RAISE,KC_BSPC), \
+                                                         LT(_RAISE,KC_ENT), KC_SPC,  KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
+      ),
+
+  /* Keypad
+   * ,-----------------------------------------.             ,-----------------------------------------.
+   * | Tab  |   /  |   *  | Del  |  F1  |  F6  |             |  F1  |  F6  | Del  | Tab  |   /  |   *  |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |   7  |   8  |   9  | BS   |  F2  |  F7  |             |  F2  |  F7  | BS   |   7  |   8  |   9  |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |   4  |   5  |   6  |  -   |  F3  |  F8  |             |  F3  |  F8  |  -   |   4  |   5  |   6  |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |   1  |   2  |   3  |  +   |  F4  |  F9  |  F11 |  F11 |  F4  |  F9  |  +   |   1  |   2  |   3  |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |   0  |   ,  |   .  | Enter|  F5  |  F10 |  F12 |  F12 |  F5  |  F10 | Enter|   0  |  ,   |   .  |
+   * `-------------------------------------------------------------------------------------------------'
+   */
+  [_KEYPAD] = KEYMAP( \
+      KC_TAB,  KC_PSLS, KC_PAST, KC_DEL,    KC_F1,   KC_F6,                     KC_F1,   KC_F6, KC_DEL,  KC_TAB,  KC_PSLS, KC_PAST, \
+      KC_KP_7, KC_KP_8, KC_KP_9, KC_BSPC,   KC_F2,   KC_F7,                     KC_F2,   KC_F7, KC_BSPC, KC_KP_7, KC_KP_8, KC_KP_9, \
+      KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS,   KC_F3,   KC_F8,                     KC_F3,   KC_F8, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, \
+      KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS,   KC_F4,   KC_F9,  KC_F11,  KC_F11,   KC_F4,   KC_F9, KC_PPLS, KC_KP_1, KC_KP_2, KC_KP_3, \
+      KC_KP_0, KC_COMM, KC_PDOT, KC_PENT,   KC_F5,  KC_F10,  LT(_PADFUNC,KC_F12),
+                                                            LT(_PADFUNC,KC_F12),KC_F5,  KC_F10, KC_PENT, KC_KP_0, KC_COMM, KC_PDOT \
       ),
 
+  /*  AUX modifier key layer
+   * ,-----------------------------------------.             ,-----------------------------------------.
+   * |      |      |      |      |      |      |             |      |      |      |      |      |      |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |      |      |      |      |      |      |             |      |      |      |      |      |      |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |      |      |      |      |      |      |             |      |      |      |      |      |      |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |      |  00  |      |      |      |      |      |      |      |      |      |      |  00  |      |
+   * `-------------------------------------------------------------------------------------------------'
+   */
+  [_KAUX] = KEYMAP( \
+      _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
+      _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
+      _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+      _______, ZERO2,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ZERO2,   _______ \
+   ),
+
+  /*  Keypad function layer
+   * ,-----------------------------------------.             ,-----------------------------------------.
+   * |      |      |      | Pause| ScrLk| PtrSc|             | PtrSc| ScrLk| Pause|      |      |      |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |      |      |      | Home |  Up  | PgUp |             | PgUp |  Up  | Home |      |      |      |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |      |Delete|Insert| Left | Down | Right|             | Left | Down | Right|Insert|Delete|      |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |      |      |      | End  |      | PgDn |Adjust|Adjust| PgDn |      | End  |      |      |      |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
+   * `-------------------------------------------------------------------------------------------------'
+   */
+  [_PADFUNC] = KEYMAP( \
+      XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_PSCR,                   KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, XXXXXXX, \
+      XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_UP,   KC_PGUP,                   KC_PGUP, KC_UP,   KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, \
+      XXXXXXX,  KC_DEL,  KC_INS, KC_LEFT, KC_DOWN, KC_RGHT,                   KC_LEFT, KC_DOWN, KC_RGHT, KC_INS,  KC_DEL,  XXXXXXX, \
+      XXXXXXX, XXXXXXX, XXXXXXX, KC_END,  XXXXXXX, KC_PGDN,MO(_ADJUST),
+                                                                 MO(_ADJUST), KC_PGDN, XXXXXXX, KC_END,  XXXXXXX, XXXXXXX, XXXXXXX, \
+      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
+   ),
+
   /* Lower
    * ,-----------------------------------------.             ,-----------------------------------------.
    * |      |  F1  |  F2  |  F3  |  F4  |  F5  |             |  F6  |  F7  |  F8  |  F9  |  F10 | F11  |
@@ -135,7 +204,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    * |------+------+------+------+------+------|             |------+------+------+------+------+------|
    * |      | PgUp |      | Up   |Delete| Home |             | Home |Delete| Up   |      | PgUp |      |
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
-   * |      | PgDn | Left | Down | Right| End  |      |      | End  | Left | Down | Right| PgDn |      |
+   * |      | PgDn | Left | Down | Right| End  |Adjust|Adjust| End  | Left | Down | Right| PgDn |      |
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
    * |      |      | PrtSc|      |      |      |      |      |      |      |      | PrtSc|      |      |
    * `-------------------------------------------------------------------------------------------------'
@@ -143,9 +212,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   [_LOWER] = KEYMAP( \
       XXXXXXX,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,                    KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11, \
       XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_INS,  XXXXXXX,                   XXXXXXX, KC_INS,  KC_SLCK, KC_PAUS, XXXXXXX, KC_F12, \
-      _______, KC_PGUP, XXXXXXX, KC_UP,   KC_DEL,  KC_HOME,                   KC_HOME, KC_DEL,  KC_UP,   XXXXXXX, KC_PGUP, _______, \
-      _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  XXXXXXX, XXXXXXX, KC_END,  KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, \
-      XXXXXXX, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______ \
+      _______, KC_HOME, XXXXXXX, KC_UP,   KC_DEL,  KC_PGUP,                   KC_PGUP, KC_DEL,  KC_UP,   XXXXXXX, KC_HOME, _______, \
+      _______, KC_END,  KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,  XXXXXXX, XXXXXXX,KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,  _______, \
+      _______, _______, KC_PSCR, _______, _______, _______, MO(_ADJUST),
+                                                                 MO(_ADJUST), _______, _______, _______, KC_PSCR, _______, _______ \
       ),
 
   /* Raise
@@ -166,28 +236,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_MINS), KC_MINS,         KC_EQL, LSFT(KC_EQL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
       _______, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), KC_LBRC,       KC_RBRC, LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, _______, \
       _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,    EISU,    EISU,    KANA,    KANA, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, \
-      _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______ \
+      MO(_ADJUST),MO(_ADJUST),XXXXXXX, _______, _______, XXXXXXX, _______,
+                                                                _______, XXXXXXX, _______, _______, XXXXXXX,MO(_ADJUST),MO(_ADJUST) \
       ),
 
   /* Adjust (Lower + Raise)
    * ,-----------------------------------------.             ,-----------------------------------------.
-   * |      |      |      |Dvorak|Colemk|Qwerty|             |      |      |      |      |      |      |
+   * |      |      |Keypad|Dvorak|Colemk|Qwerty|             |Qwerty|Colemk|Dvorak|Keypad|      |      |
    * |------+------+------+------+------+------|             |------+------+------+------+------+------|
-   * |      | Reset|RGBRST|      |      | Win  |             |      |      |      |      |      |      |
+   * |      | Reset|RGBRST|RGB ON|Aud on| Win  |             | Win  |Aud on|RGB ON|RGBRST|      |      |
    * |------+------+------+------+------+------|             |------+------+------+------+------+------|
-   * | HUE+ | SAT+ | VAL+ |Aud on|Audoff| Mac  |             | Win  |Qwerty|Colemk|Dvorak|      |      |
+   * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac  |             | Mac  |Audoff|RGB md| VAL+ | SAT+ | HUE+ |
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
-   * | HUE- | SAT- | VAL- |RGB md|RGB ON|      |      |      |      |      |RGB ON| HUE+ | SAT+ | VAL+ |
+   * | HUE- | SAT- | VAL- |      |      |      |      |      |      |      |      | VAL- | SAT- | HUE- |
    * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
-   * |      |      |      |      |      |      |      |      |      |      | MODE | HUE- | SAT- | VAL- |
+   * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
    * `-------------------------------------------------------------------------------------------------'
    */
   [_ADJUST] =  KEYMAP( \
-      XXXXXXX, XXXXXXX, XXXXXXX,  DVORAK, COLEMAK,  QWERTY,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
-      XXXXXXX, RESET,   RGBRST,  XXXXXXX, XXXXXXX, AG_SWAP,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
-      RGB_HUI, RGB_SAI, RGB_VAI, AU_ON,   AU_OFF,  AG_NORM,                   AG_SWAP, QWERTY,  COLEMAK, DVORAK,  XXXXXXX, XXXXXXX, \
-      RGB_HUD, RGB_SAD, RGB_VAD,RGB_SMOD, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
-      _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \
+      XXXXXXX, XXXXXXX, KEYPAD,   DVORAK, COLEMAK,  QWERTY,                   QWERTY,  COLEMAK,  DVORAK,  KEYPAD, XXXXXXX, XXXXXXX, \
+      XXXXXXX, RESET,   RGBRST,  RGB_TOG,   AU_ON, AG_SWAP,                   AG_SWAP,   AU_ON, RGB_TOG,  RGBRST, XXXXXXX, XXXXXXX, \
+      RGB_HUI, RGB_SAI, RGB_VAI,RGB_SMOD,  AU_OFF, AG_NORM,                   AG_NORM,  AU_OFF,RGB_SMOD, RGB_VAI, RGB_SAI, RGB_HUI, \
+      RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, \
+      _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ \
+   ),
+
+  /*  AUX modifier key layer
+   * ,-----------------------------------------.             ,-----------------------------------------.
+   * |      |      |      |      |      |      |             |      |      |      |      |      |      |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |      |      |      |      |      |      |             |      |      |      |      |      |      |
+   * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+   * |      |      |      |      |      |      |             |      |      |      |      |      |      |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
+   * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+   * |      |      |      |      |      |  BS  | Enter|      |      |      |      |      |      |      |
+   * `-------------------------------------------------------------------------------------------------'
+   */
+  [_AUX] = KEYMAP( \
+      _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
+      _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
+      _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, \
+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+      _______, _______, _______, _______, _______,  KC_BSPC,  LT(_RAISE,KC_ENT), \
+                                                                     _______, _______, _______, _______, _______, _______, _______ \
       )
 };
 
@@ -206,31 +299,32 @@ float tone_plover_gb[][2]  = SONG(PLOVER_GOODBYE_SOUND);
 float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);
 #endif
 
-// define variables for reactive RGB
-bool TOG_STATUS = false;
-int RGB_current_mode;
-static uint32_t current_default_layer_state;
+static int current_default_layer;
 
 uint32_t default_layer_state_set_kb(uint32_t state) {
-    current_default_layer_state = state;
+    // 1<<_QWERTY  - 1 == 1 - 1 == _QWERTY (=0)
+    // 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1)
+    current_default_layer = state - 1;
+    // 1<<_DVORAK  - 2 == 4 - 2 == _DVORAK (=2)
+    if ( current_default_layer == 3 ) current_default_layer -= 1;
+    // 1<<_KEYPAD  - 5 == 8 - 5 == _KEYPAD (=3)
+    if ( current_default_layer == 7 ) current_default_layer -= 4;
     return state;
 }
 
-void persistent_default_layer_set(uint16_t default_layer) {
-  eeconfig_update_default_layer(default_layer);
-  default_layer_set(default_layer);
-}
-
-// Setting ADJUST layer RGB back to default
-void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
-  if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
-    #ifdef RGBLIGHT_ENABLE
-      //rgblight_mode(RGB_current_mode);
-    #endif
-    layer_on(layer3);
-  } else {
-    layer_off(layer3);
-  }
+void update_base_layer(int base)
+{
+    if( current_default_layer != base ) {
+       eeconfig_update_default_layer(1UL<<base);
+       default_layer_set(1UL<<base);
+       layer_off(_AUX);
+       layer_off(_KAUX);
+    } else {
+       if( base < _KEYPAD )
+           layer_invert(_AUX);
+       else
+           layer_invert(_KAUX);
+    }
 }
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
@@ -240,7 +334,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
           PLAY_SONG(tone_qwerty);
         #endif
-        persistent_default_layer_set(1UL<<_QWERTY);
+       update_base_layer(_QWERTY);
       }
       return false;
       break;
@@ -249,7 +343,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
           PLAY_SONG(tone_colemak);
         #endif
-        persistent_default_layer_set(1UL<<_COLEMAK);
+       update_base_layer(_COLEMAK);
       }
       return false;
       break;
@@ -258,75 +352,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         #ifdef AUDIO_ENABLE
           PLAY_SONG(tone_dvorak);
         #endif
-        persistent_default_layer_set(1UL<<_DVORAK);
+       update_base_layer(_DVORAK);
       }
       return false;
       break;
-    case LOWER:
+    case KEYPAD:
       if (record->event.pressed) {
-          //not sure how to have keyboard check mode and set it to a variable, so my work around
-          //uses another variable that would be set to true after the first time a reactive key is pressed.
-        if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
-        } else {
-          TOG_STATUS = !TOG_STATUS;
-          #ifdef RGBLIGHT_ENABLE
-            //rgblight_mode(16);
-          #endif
-        }
-        layer_on(_LOWER);
-        update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
-      } else {
-        #ifdef RGBLIGHT_ENABLE
-          //rgblight_mode(RGB_current_mode);   // revert RGB to initial mode prior to RGB mode change
+        #ifdef AUDIO_ENABLE
+          PLAY_SONG(tone_dvorak);
         #endif
-        TOG_STATUS = false;
-        layer_off(_LOWER);
-        update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+       update_base_layer(_KEYPAD);
       }
       return false;
       break;
-    case RAISE:
+    case ZERO2:
       if (record->event.pressed) {
-        //not sure how to have keyboard check mode and set it to a variable, so my work around
-        //uses another variable that would be set to true after the first time a reactive key is pressed.
-        if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
-        } else {
-          TOG_STATUS = !TOG_STATUS;
-          #ifdef RGBLIGHT_ENABLE
-            //rgblight_mode(15);
-          #endif
-        }
-        layer_on(_RAISE);
-        update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
-      } else {
-        #ifdef RGBLIGHT_ENABLE
-          //rgblight_mode(RGB_current_mode);  // revert RGB to initial mode prior to RGB mode change
-        #endif
-        layer_off(_RAISE);
-        TOG_STATUS = false;
-        update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+          SEND_STRING("00");
       }
       return false;
       break;
-    case ADJUST:
-        if (record->event.pressed) {
-          layer_on(_ADJUST);
-        } else {
-          layer_off(_ADJUST);
-        }
-        return false;
-        break;
-      //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
-    case RGB_MOD:
-      #ifdef RGBLIGHT_ENABLE
-        if (record->event.pressed) {
-          rgblight_mode(RGB_current_mode);
-          rgblight_step();
-          RGB_current_mode = rgblight_config.mode;
-        }
-      #endif
-      return false;
-      break;
     case EISU:
       if (record->event.pressed) {
         if(keymap_config.swap_lalt_lgui==false){
@@ -356,7 +400,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         if (record->event.pressed) {
           eeconfig_update_rgblight_default();
           rgblight_enable();
-          RGB_current_mode = rgblight_config.mode;
         }
       #endif
       break;
@@ -368,9 +411,6 @@ void matrix_init_user(void) {
     #ifdef AUDIO_ENABLE
         startup_user();
     #endif
-    #ifdef RGBLIGHT_ENABLE
-      RGB_current_mode = rgblight_config.mode;
-    #endif
     //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
     #ifdef SSD1306OLED
         TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000));
@@ -428,36 +468,45 @@ static void render_logo(struct CharacterMatrix *matrix) {
     0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
     0};
   matrix_write(matrix, logo);
+#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_ANIMATIONS)
+  char buf[30];
+  if(rgblight_config.enable) {
+      snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ",
+              rgblight_config.mode,
+              rgblight_config.hue/RGBLIGHT_HUE_STEP,
+              rgblight_config.sat/RGBLIGHT_SAT_STEP,
+              rgblight_config.val/RGBLIGHT_VAL_STEP);
+      matrix_write(matrix, buf);
+  }
+#endif
   //matrix_write_P(&matrix, PSTR(" Split keyboard kit"));
 }
 
-// #define DEBUG_OLED_LAYER_DISPLAY
-
 static const char Qwerty_name[]  PROGMEM = " Qwerty";
 static const char Colemak_name[] PROGMEM = " Colemak";
 static const char Dvorak_name[]  PROGMEM = " Dvorak";
+static const char Keypad_name[]  PROGMEM = " Keypad";
 
-static const char Raise_name[]   PROGMEM = ":Extra";
+static const char AUX_name[]     PROGMEM = ":AUX";
+static const char KAUX_name[]    PROGMEM = ":00";
+static const char Padfunc_name[] PROGMEM = ":PadFunc";
 static const char Lower_name[]   PROGMEM = ":Func";
+static const char Raise_name[]   PROGMEM = ":Extra";
 static const char Adjust_name[]  PROGMEM = ":Adjust";
 
 static const char *layer_names[] = {
     [_QWERTY] = Qwerty_name,
     [_COLEMAK] = Colemak_name,
     [_DVORAK] = Dvorak_name,
-    [_RAISE] = Raise_name,
-    [_LOWER] = Lower_name,
+    [_KEYPAD] = Keypad_name,
+    [_AUX]    = AUX_name,
+    [_KAUX]   = KAUX_name,
+    [_LOWER]  = Lower_name,
+    [_RAISE]  = Raise_name,
+    [_PADFUNC]= Padfunc_name,
     [_ADJUST] = Adjust_name
 };
 
-static int search_bit_form_lsb(uint32_t data)
-{
-    int i;
-    for( i = 0; i < 32 && (data & 1)==0 ; data >>= 1, i++ )
-       {}
-    return i;
-}
-
 void render_status(struct CharacterMatrix *matrix) {
 
   // Render to mode icon
@@ -473,21 +522,9 @@ void render_status(struct CharacterMatrix *matrix) {
   }
 
   // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
-#ifdef DEBUG_OLED_LAYER_DISPLAY
-  char buf[40];
-#endif
   int name_num;
   uint32_t lstate;
-
-  name_num = search_bit_form_lsb(current_default_layer_state);
-  if( name_num < sizeof(layer_names)/sizeof(char *) ) {
-      matrix_write_P(matrix, layer_names[name_num]);
-#ifdef DEBUG_OLED_LAYER_DISPLAY
-  } else {
-      snprintf(buf, sizeof(buf), "base=%d? ", name_num);
-      matrix_write(matrix, buf);
-#endif
-  }
+  matrix_write_P(matrix, layer_names[current_default_layer]);
   matrix_write_P(matrix, PSTR("\n"));
   for( lstate = layer_state, name_num = 0;
        lstate && name_num < sizeof(layer_names)/sizeof(char *);
@@ -495,11 +532,6 @@ void render_status(struct CharacterMatrix *matrix) {
       if( (lstate & 1) != 0 ) {
          if( layer_names[name_num] ) {
              matrix_write_P(matrix, layer_names[name_num]);
-#ifdef DEBUG_OLED_LAYER_DISPLAY
-         } else {
-             snprintf(buf, sizeof(buf), ":L=%d?", name_num);
-             matrix_write(matrix, buf);
-#endif
          }
       }
   }
index bde606238e2d3cbe66b9c6d7603f89ab66b38ce0..67344f94f037246e9a2c270ed952229419969745 100644 (file)
@@ -23,19 +23,50 @@ define HELIX_CUSTOMISE_MSG
   $(info -  LED_BACK_ENABLE=$(LED_BACK_ENABLE))
   $(info -  LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE))
   $(info -  LED_ANIMATION=$(LED_ANIMATIONS))
+  $(info -  IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE))
 endef
 
 # Helix keyboard customize
-# you can edit follows 4 Variables
-#  jp: 以下の4つの変数を必要に応じて編集します。
+# you can edit follows 5 Variables
+#  jp: 以下の5つの変数を必要に応じて編集します。
 OLED_ENABLE = no            # OLED_ENABLE
 LED_BACK_ENABLE = no        # LED backlight (Enable WS2812 RGB underlight.)
 LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)
 LED_ANIMATIONS = yes        # LED animations
+IOS_DEVICE_ENABLE = no      # connect to IOS device (iPad,iPhone)
 
 ####  LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
 ####    Do not enable these with audio at the same time.
 
+### Helix keyboard 'five_rows' keymap: convenient command line option
+##    make HELIX=<options> helix:five_rows
+##    option= oled | back | under | na | ios
+##    ex.
+##      make HELIX=oled          helix:five_rows
+##      make HELIX=oled,back     helix:five_rows
+##      make HELIX=oled,under    helix:five_rows
+##      make HELIX=oled,back,na  helix:five_rows
+##      make HELIX=oled,back,ios helix:five_rows
+##
+ifneq ($(strip $(HELIX)),)
+  ifeq ($(findstring oled,$(HELIX)), oled)
+    OLED_ENABLE = yes
+  endif
+  ifeq ($(findstring back,$(HELIX)), back)
+    LED_BACK_ENABLE = yes
+  else ifeq ($(findstring under,$(HELIX)), under)
+    LED_UNDERGLOW_ENABLE = yes
+  endif
+  ifeq ($(findstring na,$(HELIX)), na)
+    LED_ANIMATIONS = no
+  endif
+  ifeq ($(findstring ios,$(HELIX)), ios)
+    IOS_DEVICE_ENABLE = yes
+  endif
+  $(eval $(call HELIX_CUSTOMISE_MSG))
+  $(info )
+endif
+
 # Uncomment these for checking
 #   jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。
 # $(eval $(call HELIX_CUSTOMISE_MSG))
@@ -54,6 +85,10 @@ else
   RGBLIGHT_ENABLE = no
 endif
 
+ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
+    OPT_DEFS += -DIOS_DEVICE_ENABLE
+endif
+
 ifeq ($(strip $(LED_ANIMATIONS)), yes)
     OPT_DEFS += -DRGBLIGHT_ANIMATIONS
 endif