1
0
Fork 0

update Helix keymap 'five_rows' (#2635)

* 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
This commit is contained in:
Takeshi ISHII 2018-04-16 01:54:56 +09:00 committed by Drashna Jaelre
parent 13cdfb465d
commit e2fb3079c7
5 changed files with 342 additions and 230 deletions

View file

@ -4,15 +4,17 @@ This keymap is only for 5 rows Helix keyboard.
## Layout ## 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 ## Layer
|Priority|Number|Name|Discription| |Priority|Number|Name|Discription|
| ---- | ---- | --- | --- | | ---- | ---- | --- | --- |
|high|16|Adjust| keyboard local functions| |high|9|Adjust| keyboard local functions (violet)|
||4|Extra char| some charactors | ||8|KFunction| TenkeyPad function keys (bule)|
||3|Function| function keys | ||7|Extra char| some charactors (red)|
||6|Function| function keys (blue)|
||2|Keypad|TenkeyPad|
||2|Dvorak|Dvorak| ||2|Dvorak|Dvorak|
||1|Colemak|Colemak| ||1|Colemak|Colemak|
|low|0|Qwerty|QWERTY (base)| |low|0|Qwerty|QWERTY (base)|
@ -23,7 +25,9 @@ Adjust Layer has keyboard local function keys.
* LED control. * LED control.
* Mac/Win mode change. * 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 ### Mac mode and Win mode
@ -32,42 +36,49 @@ Mac mode swap Alt/Win(GUI) key.
|mode|key|code| |mode|key|code|
| ---- | ---- | --- | | ---- | ---- | --- |
|Mac mode|Adjust + g(Qwerty)|AG_NORM| |Mac mode|Adjust + g(Qwerty)|AG_NORM|
|Win mode|Adjust + h(Qwerty)|AG_SWAP| | |Adjust + h(Qwerty)| |
| |Adjust + t(Qwerty)| | |Win mode|Adjust + t(Qwerty)|AG_SWAP|
| |Adjust + y(Qwerty)| |
### LED control ### LED control
|command|key|code| |command|key|code|
| ---- | ---- | --- | | ---- | ---- | --- |
|on/off|Adjust + ,(Qwerty)|RGB_TOG| |on/off|Adjust + e(Qwerty)|RGB_TOG|
| |Adjust + v(Qwerty)| | | |Adjust + i(Qwerty)| |
|change mode|Adjust + Right option |RGB_SMOD| |change mode|Adjust + d(Qwerty) |RGB_SMOD|
| |Adjust + c(Qwerty)| | | |Adjust + k(Qwerty)| |
|HUE +|Adjust + .(Qwerty) |RGB_HUI| |HUE +|Adjust + Left Control|RGB_HUI|
| |Adjust + Left Control| | | |Adjust + Right Control| |
|HUE -|Adjust + menu |RGB_HUD| |HUE -|Adjust + Left Shift |RGB_HUD|
| |Adjust + Left Shift | | | |Adjust + Right Shift | |
|SAT +|Adjust + /(Qwerty) |RGB_SAI| |SAT +|Adjust + ;(Qwerty) |RGB_SAI|
| |Adjust + a(Qwerty) | | | |Adjust + a(Qwerty) | |
|SAT -|Adjust + right hand left side Fn|RGB_SAD| |SAT -|Adjust + z(Qwerty) |RGB_SAD|
| |Adjust + z(Qwerty) | | | |Adjust + /(Qwerty) | |
|Bright +|Adjust + Right Shift |RGB_VAI| |Bright +|Adjust + s(Qwerty) |RGB_VAI|
| |Adjust + s(Qwerty)| | | |Adjust + l(Qwerty) | |
|Bright -|Adjust + right hand right side Fn|RGB_VAD| |Bright -|Adjust + x(Qwerty) |RGB_VAD|
| |Adjust + x(Qwerty) | | | |Adjust + >(Qwerty) | |
|reset|Adjust + w(Qwerty)|RGBRST| |reset|Adjust + w|RGBRST|
### Qwerty, Colemak, Dvorak selection ### Qwerty, Colemak, Dvorak, TenkeyPad selection
|char layout|key| |char layout|key|
| ---- | ---- | | ---- | ---- |
|Qwerty | Adjust + j(Qwerty) | |Qwerty | Adjust + 5 |
| | Adjust + 5| | | Adjust + 6 |
|Calemak| Adjust + k(Qwerty) | |Calemak| Adjust + 4 |
| | Adjust + 4| | | Adjust + 7 |
|Dvorak | Adjust + l(Qwerty) | |Dvorak | Adjust + 3 |
| | 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 ## 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)

View file

@ -7,33 +7,38 @@
## キー配置 ## キー配置
以下に、Qwerty配列時の、文字配列の図を示します。 以下に、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|機能キー(紫)| |高い|9|Adjust|機能キー(紫)|
||4|Extra char|記号類(赤)| ||8|KFunction|テンキーパッド用ファンクションキー類(青)|
||3|Function|ファンクションキー類(青)| ||7|Extra char|記号類(赤)|
||6|Function|ファンクションキー類(青)|
||3|Keypad|テンキーパッド配列|
||2|Dvorak|Dvorak配列| ||2|Dvorak|Dvorak配列|
||1|Colemak|Colemak配列| ||1|Colemak|Colemak配列|
|低い|0|Qwerty|QWERTY配列ベース| |低い|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秒)以上押していると押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。 Adjust レイヤーは、Adjust キーを押している間有効になります。
このため、Enterキーで Enter を入力するには、Enterキーを押して短時間ですぐ離してください。 Adjust キーは Function レイヤーに有り、下段両端の4つのFnキーのどれか一つを押しながら、下段中央部の Enter キーか BS キーを押すことで Adjust レイヤーが有効になります。
Adjust キー (Enter/BS)を押した後は、Fnキーは離して構いません。
### Adjust レイヤー ### 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モード
キーボードには、Mac モードと、Win モードの二つのモードがあります。 キーボードには、Mac モードと、Win モードの二つのモードがあります。
@ -44,12 +49,13 @@ LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak
|コマンド|指定キー|コード| |コマンド|指定キー|コード|
| ---- | ---- | --- | | ---- | ---- | --- |
|Macモード|Adjust + g(Qwerty)|AG_NORM| |Macモード|Adjust + g(Qwerty)|AG_NORM|
|Winモード|Adjust + h(Qwerty)|AG_SWAP| | |Adjust + h(Qwerty)| |
| |Adjust + t(Qwerty)| | |Winモード|Adjust + t(Qwerty)|AG_SWAP|
| |Adjust + y(Qwerty)| |
Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。 Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。
Mac モードでは、上の配列図の「英数キー」と「かなキー」で英語モードと日本語モードの切り替えができます。 Mac モードでは、Extra レイヤー の「英数」キーと「かな」キーで英語モードと日本語モードの切り替えができます。
Winモードでは、該当のキーはどちらも共に Alt + `日本語IMEの切り替えとして入力されます。 Winモードでは、該当のキーはどちらも共に Alt + `日本語IMEの切り替えとして入力されます。
@ -60,35 +66,48 @@ Winモードでは、該当のキーはどちらも共に Alt + `日本語IME
|コマンド|指定キー|コード| |コマンド|指定キー|コード|
| ---- | ---- | --- | | ---- | ---- | --- |
|オン/オフ|Adjust + ,(Qwerty)|RGB_TOG| |オン/オフ|Adjust + e(Qwerty)|RGB_TOG|
| |Adjust + v(Qwerty)| | | |Adjust + i(Qwerty)| |
|モード切り替え|Adjust + Right option |RGB_SMOD| |モード切り替え|Adjust + d(Qwerty) |RGB_SMOD|
| |Adjust + c(Qwerty)| | | |Adjust + k(Qwerty)| |
|色相 +|Adjust + .(Qwerty)|RGB_HUI| |色相 +|Adjust + Left Control|RGB_HUI|
| |Adjust + Left Control| | | |Adjust + Right Control| |
|色相 -|Adjust + menu|RGB_HUD| |色相 -|Adjust + Left Shift |RGB_HUD|
| |Adjust + Left Shift | | | |Adjust + Right Shift | |
|彩度 +|Adjust + /(Qwerty) |RGB_SAI| |彩度 +|Adjust + ;(Qwerty) |RGB_SAI|
| |Adjust + a(Qwerty) | | | |Adjust + a(Qwerty) | |
|彩度 -|Adjust + 右手Fnの左側|RGB_SAD| |彩度 -|Adjust + z(Qwerty) |RGB_SAD|
| |Adjust + z(Qwerty) | | | |Adjust + /(Qwerty) | |
|明度 +|Adjust + Right Shift|RGB_VAI| |明度 +|Adjust + s(Qwerty) |RGB_VAI|
| |Adjust + s(Qwerty) | | | |Adjust + l(Qwerty) | |
|明度 -|Adjust + 右手Fnの右側|RGB_VAD| |明度 -|Adjust + x(Qwerty) |RGB_VAD|
| |Adjust + x(Qwerty) | | | |Adjust + >(Qwerty) | |
|リセット|Adjust + w|RGBRST| |リセット|Adjust + w|RGBRST|
### 文字配列選択 ### 文字配列選択
Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキーを使います。 Qwerty, Colemak, Dvorak, Keypad それぞれの文字配列の選択は以下のキーを使います。
|選択配列|指定キー| |選択配列|指定キー|
| ---- | ---- | | ---- | ---- |
|Qwerty | Adjust + j(Qwerty) | |Qwerty | Adjust + 5 |
| | Adjust + 5| | | Adjust + 6 |
|Calemak| Adjust + k(Qwerty) | |Calemak| Adjust + 4 |
| | Adjust + 4| | | Adjust + 7 |
|Dvorak | Adjust + l(Qwerty) | |Dvorak | Adjust + 3 |
| | 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 キーを左右共にホームポジションの行に移動。 * Control キーを左右共にホームポジションの行に移動。
* 左手親指に BackSpace キーを割り当てる。 * 左手親指に 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)

View file

@ -78,6 +78,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 6 #define RGBLED_NUM 6
#endif #endif
#ifndef IOS_DEVICE_ENABLE
#if RGBLED_NUM <= 6 #if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 255 #define RGBLIGHT_LIMIT_VAL 255
#else #else
@ -87,21 +88,35 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_LIMIT_VAL 130 #define RGBLIGHT_LIMIT_VAL 130
#endif #endif
#endif #endif
#define RGBLIGHT_VAL_STEP 17
#else
#if RGBLED_NUM <= 6
#define RGBLIGHT_LIMIT_VAL 90
#else
#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_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17 #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 // USB_MAX_POWER_CONSUMPTION value for Helix keyboard
// 120 RGBoff, OLEDoff // 120 RGBoff, OLEDoff
// 120 OLED // 120 OLED
// 330 RGB 6 // 330 RGB 6
// 300 RGB 32 // 300 RGB 32
// 310 OLED & RGB 32 // 310 OLED & RGB 32
#define USB_MAX_POWER_CONSUMPTION 330 #define USB_MAX_POWER_CONSUMPTION 400
#else #else
// fix iPhone and iPad power adapter issue // fix iPhone and iPad power adapter issue
// iOS device need lessthan 100 // iOS device need lessthan 100
#define USB_MAX_POWER_CONSUMPTION 100 #define USB_MAX_POWER_CONSUMPTION 100
#endif #endif
#endif /* CONFIG_USER_H */

View 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. // 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 // Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers. // entirely and just use numbers.
#define _QWERTY 0 enum layer_number {
#define _COLEMAK 1 _QWERTY = 0,
#define _DVORAK 2 _COLEMAK,
#define _LOWER 3 _DVORAK,
#define _RAISE 4 _KEYPAD,
#define _ADJUST 16 _AUX,
_KAUX,
_LOWER,
_RAISE,
_PADFUNC,
_ADJUST,
};
enum custom_keycodes { enum custom_keycodes {
QWERTY = SAFE_RANGE, QWERTY = SAFE_RANGE,
COLEMAK, COLEMAK,
DVORAK, DVORAK,
LOWER, KEYPAD,
RAISE,
ADJUST,
BACKLIT,
EISU, EISU,
KANA, KANA,
ZERO2,
RGBRST RGBRST
}; };
@ -71,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / | Shift| * | 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( \ [_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_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_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, \ 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), \ 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, LOWER, LOWER \ LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
), ),
/* Colemak /* Colemak
@ -93,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / | Shift| * | 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( \ [_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_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_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, \ 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), \ 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, LOWER, LOWER \ LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
), ),
/* Dvorak /* 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| * | 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( \ [_DVORAK] = KEYMAP( \
@ -123,8 +127,73 @@ 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_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_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, \ 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), \ 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, LOWER, LOWER \ 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 /* Lower
@ -135,7 +204,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |------+------+------+------+------+------| |------+------+------+------+------+------| * |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | PgUp | | Up |Delete| Home | | Home |Delete| Up | | PgUp | | * | | 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| | | * | | | PrtSc| | | | | | | | | PrtSc| | |
* `-------------------------------------------------------------------------------------------------' * `-------------------------------------------------------------------------------------------------'
@ -143,9 +212,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = KEYMAP( \ [_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, 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, \ 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_HOME, XXXXXXX, KC_UP, KC_DEL, KC_PGUP, KC_PGUP, KC_DEL, KC_UP, XXXXXXX, KC_HOME, _______, \
_______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, \ _______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX,KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, \
XXXXXXX, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______ \ _______, _______, KC_PSCR, _______, _______, _______, MO(_ADJUST),
MO(_ADJUST), _______, _______, _______, KC_PSCR, _______, _______ \
), ),
/* Raise /* 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, 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, 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, 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) /* 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( \ [_ADJUST] = KEYMAP( \
XXXXXXX, XXXXXXX, XXXXXXX, DVORAK, COLEMAK, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, KEYPAD, DVORAK, COLEMAK, QWERTY, QWERTY, COLEMAK, DVORAK, KEYPAD, XXXXXXX, XXXXXXX, \
XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 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, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, 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,RGB_SMOD, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \ RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, \
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \ _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ \
),
/* AUX modifier key layer
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | BS | Enter| | | | | | | |
* `-------------------------------------------------------------------------------------------------'
*/
[_AUX] = KEYMAP( \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, KC_BSPC, LT(_RAISE,KC_ENT), \
_______, _______, _______, _______, _______, _______, _______ \
) )
}; };
@ -206,30 +299,31 @@ float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif #endif
// define variables for reactive RGB static int current_default_layer;
bool TOG_STATUS = false;
int RGB_current_mode;
static uint32_t current_default_layer_state;
uint32_t default_layer_state_set_kb(uint32_t state) { 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; return state;
} }
void persistent_default_layer_set(uint16_t default_layer) { void update_base_layer(int base)
eeconfig_update_default_layer(default_layer); {
default_layer_set(default_layer); if( current_default_layer != base ) {
} eeconfig_update_default_layer(1UL<<base);
default_layer_set(1UL<<base);
// Setting ADJUST layer RGB back to default layer_off(_AUX);
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { layer_off(_KAUX);
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
#ifdef RGBLIGHT_ENABLE
//rgblight_mode(RGB_current_mode);
#endif
layer_on(layer3);
} else { } else {
layer_off(layer3); if( base < _KEYPAD )
layer_invert(_AUX);
else
layer_invert(_KAUX);
} }
} }
@ -240,7 +334,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty); PLAY_SONG(tone_qwerty);
#endif #endif
persistent_default_layer_set(1UL<<_QWERTY); update_base_layer(_QWERTY);
} }
return false; return false;
break; break;
@ -249,7 +343,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_SONG(tone_colemak); PLAY_SONG(tone_colemak);
#endif #endif
persistent_default_layer_set(1UL<<_COLEMAK); update_base_layer(_COLEMAK);
} }
return false; return false;
break; break;
@ -258,73 +352,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
PLAY_SONG(tone_dvorak); PLAY_SONG(tone_dvorak);
#endif #endif
persistent_default_layer_set(1UL<<_DVORAK); update_base_layer(_DVORAK);
} }
return false; return false;
break; break;
case LOWER: case KEYPAD:
if (record->event.pressed) { if (record->event.pressed) {
//not sure how to have keyboard check mode and set it to a variable, so my work around #ifdef AUDIO_ENABLE
//uses another variable that would be set to true after the first time a reactive key is pressed. PLAY_SONG(tone_dvorak);
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 #endif
} update_base_layer(_KEYPAD);
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
#endif
TOG_STATUS = false;
layer_off(_LOWER);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
} }
return false; return false;
break; break;
case RAISE: case ZERO2:
if (record->event.pressed) { if (record->event.pressed) {
//not sure how to have keyboard check mode and set it to a variable, so my work around SEND_STRING("00");
//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);
}
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; return false;
break; break;
case EISU: case EISU:
@ -356,7 +400,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) { if (record->event.pressed) {
eeconfig_update_rgblight_default(); eeconfig_update_rgblight_default();
rgblight_enable(); rgblight_enable();
RGB_current_mode = rgblight_config.mode;
} }
#endif #endif
break; break;
@ -368,9 +411,6 @@ void matrix_init_user(void) {
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
startup_user(); startup_user();
#endif #endif
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED #ifdef SSD1306OLED
TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000)); 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, 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
0}; 0};
matrix_write(matrix, logo); 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")); //matrix_write_P(&matrix, PSTR(" Split keyboard kit"));
} }
// #define DEBUG_OLED_LAYER_DISPLAY
static const char Qwerty_name[] PROGMEM = " Qwerty"; static const char Qwerty_name[] PROGMEM = " Qwerty";
static const char Colemak_name[] PROGMEM = " Colemak"; static const char Colemak_name[] PROGMEM = " Colemak";
static const char Dvorak_name[] PROGMEM = " Dvorak"; 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 Lower_name[] PROGMEM = ":Func";
static const char Raise_name[] PROGMEM = ":Extra";
static const char Adjust_name[] PROGMEM = ":Adjust"; static const char Adjust_name[] PROGMEM = ":Adjust";
static const char *layer_names[] = { static const char *layer_names[] = {
[_QWERTY] = Qwerty_name, [_QWERTY] = Qwerty_name,
[_COLEMAK] = Colemak_name, [_COLEMAK] = Colemak_name,
[_DVORAK] = Dvorak_name, [_DVORAK] = Dvorak_name,
[_RAISE] = Raise_name, [_KEYPAD] = Keypad_name,
[_AUX] = AUX_name,
[_KAUX] = KAUX_name,
[_LOWER] = Lower_name, [_LOWER] = Lower_name,
[_RAISE] = Raise_name,
[_PADFUNC]= Padfunc_name,
[_ADJUST] = Adjust_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) { void render_status(struct CharacterMatrix *matrix) {
// Render to mode icon // 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 // 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; int name_num;
uint32_t lstate; uint32_t lstate;
matrix_write_P(matrix, layer_names[current_default_layer]);
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, PSTR("\n")); matrix_write_P(matrix, PSTR("\n"));
for( lstate = layer_state, name_num = 0; for( lstate = layer_state, name_num = 0;
lstate && name_num < sizeof(layer_names)/sizeof(char *); lstate && name_num < sizeof(layer_names)/sizeof(char *);
@ -495,11 +532,6 @@ void render_status(struct CharacterMatrix *matrix) {
if( (lstate & 1) != 0 ) { if( (lstate & 1) != 0 ) {
if( layer_names[name_num] ) { if( layer_names[name_num] ) {
matrix_write_P(matrix, 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
} }
} }
} }

View file

@ -23,19 +23,50 @@ define HELIX_CUSTOMISE_MSG
$(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE)) $(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE)) $(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATION=$(LED_ANIMATIONS)) $(info - LED_ANIMATION=$(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE))
endef endef
# Helix keyboard customize # Helix keyboard customize
# you can edit follows 4 Variables # you can edit follows 5 Variables
# jp: 以下の4つの変数を必要に応じて編集します。 # jp: 以下の5つの変数を必要に応じて編集します。
OLED_ENABLE = no # OLED_ENABLE OLED_ENABLE = no # OLED_ENABLE
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE. #### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
#### Do not enable these with audio at the same time. #### 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 # Uncomment these for checking
# jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。 # jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。
# $(eval $(call HELIX_CUSTOMISE_MSG)) # $(eval $(call HELIX_CUSTOMISE_MSG))
@ -54,6 +85,10 @@ else
RGBLIGHT_ENABLE = no RGBLIGHT_ENABLE = no
endif endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
OPT_DEFS += -DIOS_DEVICE_ENABLE
endif
ifeq ($(strip $(LED_ANIMATIONS)), yes) ifeq ($(strip $(LED_ANIMATIONS)), yes)
OPT_DEFS += -DRGBLIGHT_ANIMATIONS OPT_DEFS += -DRGBLIGHT_ANIMATIONS
endif endif