aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/converter/usb_usb/keymaps/narze/README.md2
-rw-r--r--keyboards/ergodox_infinity/keymaps/narze/keymap.c8
-rw-r--r--keyboards/ergodox_infinity/keymaps/narze/readme.md17
-rw-r--r--keyboards/lily58/keymaps/narze/config.h58
-rw-r--r--keyboards/lily58/keymaps/narze/keymap.c467
-rw-r--r--keyboards/lily58/keymaps/narze/readme.md13
-rw-r--r--keyboards/lily58/keymaps/narze/rules.mk13
-rw-r--r--keyboards/planck/keymaps/narze/keymap.c14
-rw-r--r--keyboards/planck/keymaps/narze/readme.md17
-rw-r--r--users/narze/narze.h4
-rw-r--r--users/narze/readme.md23
11 files changed, 587 insertions, 49 deletions
diff --git a/keyboards/converter/usb_usb/keymaps/narze/README.md b/keyboards/converter/usb_usb/keymaps/narze/README.md
index a089568d2..eb9dbbf60 100644
--- a/keyboards/converter/usb_usb/keymaps/narze/README.md
+++ b/keyboards/converter/usb_usb/keymaps/narze/README.md
@@ -2,7 +2,7 @@
2 2
3## Key features 3## Key features
4- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak. 4- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
5- [(S)uper (D)uper Mode](https://github.com/jasonrudolph/keyboard#super-duper-mode) inspired by [jasonrudolph](https://github.com/jasonrudolph), with [some extensions](https://gist.github.com/narze/861e2167784842d38771) such as backspace & forward delete. 5- [(S)uper (D)uper Mode](/users/narze/readme.md)
6 6
7## Build instructions 7## Build instructions
8- `cd /path/to/qmk_firmware` 8- `cd /path/to/qmk_firmware`
diff --git a/keyboards/ergodox_infinity/keymaps/narze/keymap.c b/keyboards/ergodox_infinity/keymaps/narze/keymap.c
index d9499f003..dd721e9a7 100644
--- a/keyboards/ergodox_infinity/keymaps/narze/keymap.c
+++ b/keyboards/ergodox_infinity/keymaps/narze/keymap.c
@@ -43,8 +43,6 @@ enum ergodox_keycodes {
43}; 43};
44 44
45// Narze : Custom Macros 45// Narze : Custom Macros
46#define HPR_ESC ALL_T(KC_ESC)
47#define SFT_ENT SFT_T(KC_ENT)
48#define SFT_PO LSFT_LPRN 46#define SFT_PO LSFT_LPRN
49#define SFT_PC RSFT_RPRN 47#define SFT_PC RSFT_RPRN
50 48
@@ -89,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
89 LT(_SYMB, KC_NO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 87 LT(_SYMB, KC_NO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
90 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 88 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
91 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC, 89 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC,
92 RAISE, KC_BSPC,KC_RALT,KC_RCTL, LT(_LOWER, KC_RBRC), 90 RAISE, KC_BSPC,ALT_COLN,KC_RCTL, LT(_LOWER, KC_RBRC),
93 KC_LALT, CTL_T(KC_ESC), 91 KC_LALT, CTL_T(KC_ESC),
94 KC_PGUP, 92 KC_PGUP,
95 KC_PGDN,KC_BSPC, KC_ENT 93 KC_PGDN,KC_BSPC, KC_ENT
@@ -130,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
130 LT(_SYMB, KC_NO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, 128 LT(_SYMB, KC_NO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
131 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, 129 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
132 MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC, 130 MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC,
133 RAISE, KC_BSPC,KC_RALT,KC_RCTL, LT(_LOWER, KC_RBRC), 131 RAISE, KC_BSPC,ALT_COLN,KC_RCTL, LT(_LOWER, KC_RBRC),
134 KC_LALT, CTL_T(KC_ESC), 132 KC_LALT, CTL_T(KC_ESC),
135 KC_PGUP, 133 KC_PGUP,
136 KC_PGDN,KC_BSPC, KC_ENT 134 KC_PGDN,KC_BSPC, KC_ENT
@@ -151,7 +149,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
151 LT(_SYMB, KC_NO), CM_Y, CM_U, CM_I, CM_O, CM_P, KC_BSLS, 149 LT(_SYMB, KC_NO), CM_Y, CM_U, CM_I, CM_O, CM_P, KC_BSLS,
152 CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT, 150 CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT,
153 MEH_T(KC_NO),CM_N, CM_M, CM_COMM,CM_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC, 151 MEH_T(KC_NO),CM_N, CM_M, CM_COMM,CM_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC,
154 RAISE, KC_BSPC,KC_RALT,KC_RCTL, LT(_LOWER, KC_RBRC), 152 RAISE, KC_BSPC,ALT_COLN,KC_RCTL, LT(_LOWER, KC_RBRC),
155 KC_LALT, CTL_T(KC_ESC), 153 KC_LALT, CTL_T(KC_ESC),
156 KC_PGUP, 154 KC_PGUP,
157 KC_PGDN,KC_BSPC, KC_ENT 155 KC_PGDN,KC_BSPC, KC_ENT
diff --git a/keyboards/ergodox_infinity/keymaps/narze/readme.md b/keyboards/ergodox_infinity/keymaps/narze/readme.md
index f24fc05fe..3094b021e 100644
--- a/keyboards/ergodox_infinity/keymaps/narze/readme.md
+++ b/keyboards/ergodox_infinity/keymaps/narze/readme.md
@@ -6,24 +6,9 @@
6 6
7## Key features 7## Key features
8- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak. 8- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
9- [(S)uper (D)uper Mode](https://github.com/jasonrudolph/keyboard#super-duper-mode) inspired by [jasonrudolph](https://github.com/jasonrudolph), with [some extensions](https://gist.github.com/narze/861e2167784842d38771) such as backspace & forward delete. 9- [(S)uper (D)uper Mode](/users/narze/readme.md)
10- Mouse keys with Z 10- Mouse keys with Z
11 11
12## (S)uper (D)uper Mode
13Press `S+D` simultaneously and hold, then...
14- `H/J/K/L` for Vim-like movement
15- `I/O` to move between browser tabs (Not working on Windows yet)
16- `A` for `Option (Alt)`
17- `F/;` for `Backspace/Forward delete`
18- `A` with `H/L` to move to previous/next word
19- `A` with `G/;` to delete to previous/next word
20- `G` for `Cmd` (Gui/Windows)
21- Available for all layouts (but plover) using physical S & D keys position in qwerty
22- `Spacebar` for `Shift` (it's easier when already holding A with your pinky)
23- Disable with `Raise+Lower+M`
24- You can edit or add more useful keys in SUPERDUPER layer
25- It can be activated by holding `/` as well, but it's slower since `LT()` uses `TAPPING_TERM` of 200ms but `S+D` uses `COMBO_TERM` of only 20ms (Can be changed within config.h)
26
27## Build instructions 12## Build instructions
28If your environment is ready to build with `make`, don't use docker since it takes 5m+ to compile. 13If your environment is ready to build with `make`, don't use docker since it takes 5m+ to compile.
29Use the instructions in Ergodox Infinity's readme. 14Use the instructions in Ergodox Infinity's readme.
diff --git a/keyboards/lily58/keymaps/narze/config.h b/keyboards/lily58/keymaps/narze/config.h
new file mode 100644
index 000000000..c494429af
--- /dev/null
+++ b/keyboards/lily58/keymaps/narze/config.h
@@ -0,0 +1,58 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23//#define USE_MATRIX_I2C
24
25/* Select hand configuration */
26
27// #define MASTER_LEFT
28#define MASTER_RIGHT
29// #define EE_HANDS
30
31#define USE_SERIAL_PD2
32
33#define COMBO_TERM 20
34#define COMBO_COUNT 3
35
36#define IGNORE_MOD_TAP_INTERRUPT
37#define PERMISSIVE_HOLD
38
39#define TAPPING_FORCE_HOLD
40#define TAPPING_TERM 100
41
42#undef RGBLED_NUM
43#define RGBLIGHT_ANIMATIONS
44#define RGBLED_NUM 27
45#define RGBLIGHT_LIMIT_VAL 120
46#define RGBLIGHT_HUE_STEP 10
47#define RGBLIGHT_SAT_STEP 17
48#define RGBLIGHT_VAL_STEP 17
49
50#define FORCE_NKRO
51
52// Underglow
53/*
54#undef RGBLED_NUM
55#define RGBLED_NUM 14 // Number of LEDs
56#define RGBLIGHT_ANIMATIONS
57#define RGBLIGHT_SLEEP
58*/
diff --git a/keyboards/lily58/keymaps/narze/keymap.c b/keyboards/lily58/keymaps/narze/keymap.c
new file mode 100644
index 000000000..c0c5680da
--- /dev/null
+++ b/keyboards/lily58/keymaps/narze/keymap.c
@@ -0,0 +1,467 @@
1#include QMK_KEYBOARD_H
2#include "narze.h"
3#include "keymap_colemak.h"
4#include "keymap_steno.h"
5
6
7#ifdef RGBLIGHT_ENABLE
8//Following line allows macro to read current RGB settings
9extern rgblight_config_t rgblight_config;
10#endif
11
12enum layers {
13 _QWERTY,
14 _COLEMAK,
15 _QWOC,
16 _LOWER,
17 _RAISE,
18 _PLOVER,
19 _SUPERDUPER,
20 _DEV,
21 _ADJUST
22};
23
24enum custom_keycodes {
25 QWERTY = SAFE_RANGE,
26 PLOVER,
27 LOWER,
28 RAISE,
29 ADJUST,
30 SUPERDUPER,
31 DEV,
32 SDTOGG, // Toggle SuperDuper
33 GUI_UNDS,
34 LSFT_LPRN,
35 RSFT_RPRN,
36 EXT_PLV,
37};
38
39// Narze : Custom Macros
40#define HPR_ESC ALL_T(KC_ESC)
41#define SFT_ENT SFT_T(KC_ENT)
42
43enum process_combo_event {
44 CB_SUPERDUPER,
45};
46
47const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
48
49/* QWERTY
50 * ,-----------------------------------------. ,-----------------------------------------.
51 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | F19 |
52 * |------+------+------+------+------+------| |------+------+------+------+------+------|
53 * |Hp/Esc| A | S | D | F | G | | H | J | K | L | ; | ' |
54 * |------+------+------+------+------+------| |------+------+------+------+------+------|
55 * |Sft/( | Z | X | C | V | B |-------. ,-------| N | M | , | . | / |Sft/) |
56 * |------+------+------+------+------+------| Swap | | Swap |------+------+------+------+------+------|
57 * |Rse/[ | Ctrl | Alt | GUI/_|Lower | Space|-------| |-------| Space| Raise| Bksp | Alt | Ctrl | Low/]|
58 * `-----------------------------------------/ / \ \-----------------------------------------'
59 * | | | | /Space / \Enter \ | | | |
60 * | | | |/ / \ \ | | | |
61 * `----------------------------' '------''--------------------'
62 */
63
64 [_QWERTY] = LAYOUT(
65 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_F19,
66 HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
67 LSFT_LPRN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_RPRN,
68 LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS,LOWER, KC_SPC, SH_TT, SH_TT, KC_SPC, RAISE, KC_BSPC, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC),
69 _______, _______, _______, KC_SPC, KC_ENT, _______, _______, _______
70),
71/* LOWER
72 * ,-----------------------------------------. ,-----------------------------------------.
73 * | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - |
74 * |------+------+------+------+------+------| |------+------+------+------+------+------|
75 * | F1 | F2 | F3 | F4 | F5 | F6 | | | _ | + | { | } | | |
76 * |------+------+------+------+------+------| |------+------+------+------+------+------|
77 * | F7 | F8 | F9 | F10 | F11 | F12 |-------. ,-------| | | | | | |
78 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
79 * | | | | | | |-------| |-------| | _ | + | { | } | | |
80 * `-----------------------------------------/ / \ \-----------------------------------------'
81 * | | | | / / \ \ | | | |
82 * | | | |/ / \ \ | | | |
83 * `----------------------------' '------''--------------------'
84 */
85[_LOWER] = LAYOUT(
86 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
87 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
88 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______,
89 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
90 _______, _______, _______, _______, _______, _______, _______, _______
91),
92/* RAISE
93 * ,-----------------------------------------. ,-----------------------------------------.
94 * | ~ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
95 * |------+------+------+------+------+------| |------+------+------+------+------+------|
96 * | F1 | F2 | F3 | F4 | F5 | F6 | | | - | = | [ | ] | \ |
97 * |------+------+------+------+------+------| |------+------+------+------+------+------|
98 * | F7 | F8 | F9 | F10 | F11 | F12 |-------. ,-------| | | | | | |
99 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
100 * | | | | | | |-------| |-------| | | | | | |
101 * `-----------------------------------------/ / \ \-----------------------------------------'
102 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
103 * | | | |/ / \ \ | | | |
104 * `----------------------------' '------''--------------------'
105 */
106
107[_RAISE] = LAYOUT(
108 S(KC_GRV),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
109 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
110 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
111 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
112 _______, _______, _______, _______, _______, _______, _______, _______
113),
114/* ADJUST
115 * ,-----------------------------------------. ,-----------------------------------------.
116 * | | | | | | | | | | | | | |
117 * |------+------+------+------+------+------| |------+------+------+------+------+------|
118 * | | | | | | | | | | | | | |
119 * |------+------+------+------+------+------| |------+------+------+------+------+------|
120 * | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ |
121 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
122 * | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- |
123 * `-----------------------------------------/ / \ \-----------------------------------------'
124 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
125 * | | | |/ / \ \ | | | |
126 * `----------------------------' '------''--------------------'
127 */
128[_ADJUST] = LAYOUT(
129 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
130 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
131 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
132 PLOVER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
133 _______, _______, _______, _______, _______, _______, _______, _______
134),
135/* Plover layer (http://opensteno.org)
136 * ,-----------------------------------------------------------------------------------.
137 * | # | # | # | # | # | # | # | # | # | # | # | # |
138 * |------+------+------+------+------+-------------+------+------+------+------+------|
139 * | FN | S | T | P | H | * | * | F | P | L | T | D |
140 * |------+------+------+------+------+------|------+------+------+------+------+------|
141 * | | S | K | W | R | * | * | R | B | G | S | Z |
142 * |------+------+------+------+------+------+------+------+------+------+------+------|
143 * | Exit | | | A | O | | E | U | PWR | RES1 | RES2 |
144 * `-----------------------------------------------------------------------------------'
145 */
146
147// [_PLOVER] = {
148// {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC },
149// {STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR },
150// {XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR },
151// {EXT_PLV, XXXXXXX, XXXXXXX, STN_A, STN_O, XXXXXXX, XXXXXXX, STN_E, STN_U, STN_PWR, STN_RE1, STN_RE2}
152// },
153/* Plover
154 * ,-----------------------------------------. ,-----------------------------------------.
155 * | | | | | | | | | | T← | T→ | | |
156 * |------+------+------+------+------+------| |------+------+------+------+------+------|
157 * | | Alt | [SuperDuper]| Bksp | Gui | | ← | ↓ | ↑ | → | Del | |
158 * |------+------+------+------+------+------| |------+------+------+------+------+------|
159 * | | | | | | |-------. ,-------| | | | | | |
160 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
161 * | | | | | | |-------| |-------| | | | | | |
162 * `-----------------------------------------/ / \ \-----------------------------------------'
163 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
164 * | | | |/ / \ \ | | | |
165 * `----------------------------' '------''--------------------'
166 */
167[_PLOVER] = LAYOUT(
168 STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC,
169 STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR,
170 XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR,
171 EXT_PLV, XXXXXXX, XXXXXXX, STN_A, STN_O, XXXXXXX, KC_LSFT, KC_LSFT, XXXXXXX, STN_E, STN_U, STN_PWR, STN_RE1, STN_RE2,
172 QK_STENO_GEMINI, QK_STENO_BOLT, _______, KC_LSFT, KC_LSFT, _______, _______, _______
173),
174/* SuperDuper : https://gist.github.com/narze/861e2167784842d38771
175 * ,-----------------------------------------. ,-----------------------------------------.
176 * | | | | | | | | | | T← | T→ | | |
177 * |------+------+------+------+------+------| |------+------+------+------+------+------|
178 * | | Alt | [SuperDuper]| Bksp | Gui | | ← | ↓ | ↑ | → | Del | |
179 * |------+------+------+------+------+------| |------+------+------+------+------+------|
180 * | | | | | | |-------. ,-------| | | | | | |
181 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
182 * | | | | | | |-------| |-------| | | | | | |
183 * `-----------------------------------------/ / \ \-----------------------------------------'
184 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
185 * | | | |/ / \ \ | | | |
186 * `----------------------------' '------''--------------------'
187 */
188[_SUPERDUPER] = LAYOUT(
189 _______, _______, _______, _______, _______, _______, _______, _______, S(LGUI(KC_LBRC)), S(LGUI(KC_RBRC)), _______, _______,
190 _______, KC_LALT, _______, _______, KC_BSPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______,
191 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
192 _______, _______, _______, _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______, _______, _______, _______,
193 _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______
194),
195/* Dev Layer
196 * ,-----------------------------------------. ,-----------------------------------------.
197 * | | | | | | | | | | | | | |
198 * |------+------+------+------+------+------| |------+------+------+------+------+------|
199 * | | | | | | | | | | | | | |
200 * |------+------+------+------+------+------| |------+------+------+------+------+------|
201 * | | | | | | |-------. ,-------| | | | | | |
202 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
203 * | | | | | | |-------| |-------| | | | | | |
204 * `-----------------------------------------/ / \ \-----------------------------------------'
205 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
206 * | | | |/ / \ \ | | | |
207 * `----------------------------' '------''--------------------'
208 */
209[_DEV] = LAYOUT(
210 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
211 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
212 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
213 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
214 _______, _______, _______, _______, _______, _______, _______, _______
215),
216/* Colemak
217 * ,-----------------------------------------. ,-----------------------------------------.
218 * | | | | | | | | | | | | | |
219 * |------+------+------+------+------+------| |------+------+------+------+------+------|
220 * | | | | | | | | | | | | | |
221 * |------+------+------+------+------+------| |------+------+------+------+------+------|
222 * | | | | | | |-------. ,-------| | | | | | |
223 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
224 * | | | | | | |-------| |-------| | | | | | |
225 * `-----------------------------------------/ / \ \-----------------------------------------'
226 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
227 * | | | |/ / \ \ | | | |
228 * `----------------------------' '------''--------------------'
229 */
230[_COLEMAK] = LAYOUT(
231 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
232 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
233 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
234 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
235 _______, _______, _______, _______, _______, _______, _______, _______
236),
237/* QWOC
238 * ,-----------------------------------------. ,-----------------------------------------.
239 * | | | | | | | | | | | | | |
240 * |------+------+------+------+------+------| |------+------+------+------+------+------|
241 * | | | | | | | | | | | | | |
242 * |------+------+------+------+------+------| |------+------+------+------+------+------|
243 * | | | | | | |-------. ,-------| | | | | | |
244 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
245 * | | | | | | |-------| |-------| | | | | | |
246 * `-----------------------------------------/ / \ \-----------------------------------------'
247 * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
248 * | | | |/ / \ \ | | | |
249 * `----------------------------' '------''--------------------'
250 */
251[_QWOC] = LAYOUT(
252 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
253 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
254 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
255 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
256 _______, _______, _______, _______, _______, _______, _______, _______
257),
258};
259
260int RGB_current_mode;
261
262// Setting ADJUST layer RGB back to default
263void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
264 if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
265 layer_on(layer3);
266 } else {
267 layer_off(layer3);
268 }
269}
270
271void matrix_init_user(void) {
272 set_superduper_key_combos();
273 steno_set_mode(STENO_MODE_GEMINI);
274
275 #ifdef RGBLIGHT_ENABLE
276 RGB_current_mode = rgblight_config.mode;
277 #endif
278}
279
280#ifdef OLED_DRIVER_ENABLE
281
282oled_rotation_t oled_init_user(oled_rotation_t rotation) {
283 if (!is_keyboard_master())
284 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
285 return rotation;
286}
287
288// When add source files to SRC in rules.mk, you can use functions.
289const char *read_layer_state(void);
290const char *read_logo(void);
291void set_keylog(uint16_t keycode, keyrecord_t *record);
292const char *read_keylog(void);
293const char *read_keylogs(void);
294
295const char *read_mode_icon(bool swap);
296const char *read_host_led_state(void);
297void set_timelog(void);
298const char *read_timelog(void);
299
300char encoder_debug[24];
301
302void oled_task_user(void) {
303 // Host Keyboard Layer Status
304 if (is_keyboard_master()) {
305 // If you want to change the display of OLED, you need to change here
306 oled_write_ln(read_layer_state(), false);
307 oled_write_ln(read_keylog(), false);
308 oled_write_ln(read_keylogs(), false);
309 // oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
310 oled_write_ln(read_host_led_state(), false);
311 // oled_write_ln(read_timelog(), false);
312 } else {
313 oled_write(read_logo(), false);
314 // oled_write_ln(encoder_debug, false);
315 }
316}
317
318#endif //OLED_DRIVER_ENABLE
319
320#ifdef SWAP_HANDS_ENABLE
321__attribute__ ((weak))
322const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
323 // Left
324 {{5,5},{4,5},{3,5},{2,5},{1,5},{0,5}},
325 {{5,6},{4,6},{3,6},{2,6},{1,6},{0,6}},
326 {{5,7},{4,7},{3,7},{2,7},{1,7},{0,7}},
327 {{5,8},{4,8},{3,8},{2,8},{1,8},{0,8}},
328 {{5,9},{4,9},{3,9},{2,9},{1,9},{0,9}},
329 // Right
330 {{0,0},{1,0},{2,0},{3,0},{4,0},{5,0}},
331 {{0,1},{1,1},{2,1},{3,1},{4,1},{5,1}},
332 {{0,2},{1,2},{2,2},{3,2},{4,2},{5,2}},
333 {{0,3},{1,3},{2,3},{3,3},{4,3},{5,3}},
334 {{0,4},{1,4},{2,4},{3,4},{4,4},{5,4}},
335};
336#endif
337
338bool process_record_user(uint16_t keycode, keyrecord_t *record) {
339 if (record->event.pressed) {
340#ifdef OLED_DRIVER_ENABLE
341 set_keylog(keycode, record);
342#endif
343 // set_timelog();
344 }
345
346 switch (keycode) {
347 case QWERTY:
348 if (record->event.pressed) {
349 set_single_persistent_default_layer(_QWERTY);
350 set_superduper_key_combo_layer(_QWERTY);
351 }
352 return false;
353 break;
354 case LOWER:
355 if (record->event.pressed) {
356 layer_on(_LOWER);
357 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
358 } else {
359 layer_off(_LOWER);
360 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
361 }
362 return false;
363 break;
364 case RAISE:
365 if (record->event.pressed) {
366 layer_on(_RAISE);
367 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
368 } else {
369 layer_off(_RAISE);
370 update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
371 }
372 return false;
373 break;
374 case ADJUST:
375 if (record->event.pressed) {
376 layer_on(_ADJUST);
377 } else {
378 layer_off(_ADJUST);
379 }
380 return false;
381 break;
382 case PLOVER:
383 if (!record->event.pressed) {
384 layer_on(_PLOVER);
385 }
386 return false;
387 break;
388 case EXT_PLV:
389 if (record->event.pressed) {
390 layer_off(_PLOVER);
391 }
392 return false;
393 break;
394
395 // Macros
396
397 // 1. Hold for LGUI, tap for Underscore
398 case GUI_UNDS:
399 perform_space_cadet(record, keycode, KC_LGUI, KC_LSFT, KC_MINS);
400 return false;
401
402 // 2. Hold for LSHIFT, tap for Parens open
403 case LSFT_LPRN:
404 perform_space_cadet(record, keycode, KC_LSFT, KC_LSFT, KC_9);
405 return false;
406
407 // 3. Hold for RSHIFT, tap for Parens close
408 case RSFT_RPRN:
409 perform_space_cadet(record, keycode, KC_RSFT, KC_RSFT, KC_0);
410 return false;
411 }
412 return true;
413}
414
415void process_combo_event(uint16_t combo_index, bool pressed) {
416 if (pressed) {
417 switch(combo_index) {
418 case CB_SUPERDUPER:
419 layer_on(_SUPERDUPER);
420 break;
421 }
422 } else {
423 layer_off(_SUPERDUPER);
424 unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them
425 }
426}
427
428// matrix_setup is already used
429void keyboard_pre_init_user(void) {
430 set_superduper_key_combos();
431}
432
433char layer_state_str[24];
434
435const char *read_layer(void) {
436 switch (layer_state)
437 {
438 case _QWERTY:
439 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Default");
440 break;
441 case 1 << _COLEMAK:
442 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Colemak");
443 break;
444 case 1 << _QWOC:
445 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Qwerty2Colemak");
446 break;
447 case 1 << _LOWER:
448 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower");
449 break;
450 case 1 << _RAISE:
451 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise");
452 break;
453 case 1 << _SUPERDUPER:
454 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: SuperDuper");
455 break;
456 case 1 << _DEV:
457 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Dev");
458 break;
459 case 1 << _ADJUST:
460 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
461 break;
462 default:
463 snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
464 }
465
466 return layer_state_str;
467}
diff --git a/keyboards/lily58/keymaps/narze/readme.md b/keyboards/lily58/keymaps/narze/readme.md
new file mode 100644
index 000000000..9d522f5ca
--- /dev/null
+++ b/keyboards/lily58/keymaps/narze/readme.md
@@ -0,0 +1,13 @@
1# narze's layout
2
3## Key features
4
5- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
6- [(S)uper (D)uper Mode](/users/narze/readme.md)
7
8## Build instructions
9
10- `cd /path/to/qmk_firmware`
11- Ensure latest libraries are loaded `make git-submodule`
12- Flash to right hand side (Elite C) with `make lily58:narze:dfu` or `qmk flash -kb lily58 -km narze -b dfu`
13- Flash to left hand side (Pro Micro) with `make lily58:narze:avrdude` or `qmk flash -kb lily58 -km narze -b avrdude`
diff --git a/keyboards/lily58/keymaps/narze/rules.mk b/keyboards/lily58/keymaps/narze/rules.mk
new file mode 100644
index 000000000..0fe1d9235
--- /dev/null
+++ b/keyboards/lily58/keymaps/narze/rules.mk
@@ -0,0 +1,13 @@
1NKRO_ENABLE = yes
2SWAP_HANDS_ENABLE = yes
3STENO_ENABLE = yes
4FORCE_NKRO = yes
5COMBO_ENABLE = yes
6
7SRC += ./lib/rgb_state_reader.c \
8 ./lib/layer_state_reader.c \
9 ./lib/logo_reader.c \
10 ./lib/mode_icon_reader.c \
11 ./lib/host_led_state_reader.c \
12 ./lib/timelogger.c \
13 ./lib/keylogger.c \
diff --git a/keyboards/planck/keymaps/narze/keymap.c b/keyboards/planck/keymaps/narze/keymap.c
index 81cb68ecc..b5fd3356e 100644
--- a/keyboards/planck/keymaps/narze/keymap.c
+++ b/keyboards/planck/keymaps/narze/keymap.c
@@ -37,10 +37,6 @@ enum planck_keycodes {
37 LSFT_LPRN, 37 LSFT_LPRN,
38}; 38};
39 39
40// Narze : Custom Macros
41#define HPR_ESC ALL_T(KC_ESC)
42#define SFT_ENT SFT_T(KC_ENT)
43
44enum process_combo_event { 40enum process_combo_event {
45 CB_SUPERDUPER, 41 CB_SUPERDUPER,
46}; 42};
@@ -49,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
49 45
50/* Qwerty 46/* Qwerty
51 * ,-----------------------------------------------------------------------------------. 47 * ,-----------------------------------------------------------------------------------.
52 * | Tab | Q | W | E | R | T | Y | U | I | O | P | - | 48 * | Tab | Q | W | E | R | T | Y | U | I | O | P | F19 |
53 * |------+------+------+------+------+-------------+------+------+------+------+------| 49 * |------+------+------+------+------+-------------+------+------+------+------+------|
54 * | Hp/Ec| A | S | D | F | G | H | J | K | L | ; | ' | 50 * | Hp/Ec| A | S | D | F | G | H | J | K | L | ; | ' |
55 * |------+------+------+------+------+------|------+------+------+------+------+------| 51 * |------+------+------+------+------+------|------+------+------+------+------+------|
@@ -59,10 +55,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 * `-----------------------------------------------------------------------------------' 55 * `-----------------------------------------------------------------------------------'
60 */ 56 */
61[_QWERTY] = LAYOUT_planck_grid( 57[_QWERTY] = LAYOUT_planck_grid(
62 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, 58 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_F19,
63 HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 59 HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
64 LSFT_LPRN, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT, 60 LSFT_LPRN, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT,
65 LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC) 61 LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, ALT_COLN, KC_RCTL, LT(_LOWER, KC_RBRC)
66), 62),
67 63
68/* Colemak 64/* Colemak
@@ -80,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
80 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS, 76 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS,
81 HPR_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, 77 HPR_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
82 LSFT_LPRN, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT, 78 LSFT_LPRN, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT,
83 LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC) 79 LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, ALT_COLN, KC_RCTL, LT(_LOWER, KC_RBRC)
84), 80),
85 81
86/* Qwerty on software Colemak : Useful for gaming with qwerty keymaps! */ 82/* Qwerty on software Colemak : Useful for gaming with qwerty keymaps! */
@@ -88,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
88 KC_TAB, CM_Q, CM_W, CM_E, CM_R, CM_T, CM_Y, CM_U, CM_I, CM_O, CM_P, KC_MINS, 84 KC_TAB, CM_Q, CM_W, CM_E, CM_R, CM_T, CM_Y, CM_U, CM_I, CM_O, CM_P, KC_MINS,
89 HPR_ESC, CM_A, CM_S, CM_D, CM_F, CM_G, CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT, 85 HPR_ESC, CM_A, CM_S, CM_D, CM_F, CM_G, CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT,
90 LSFT_LPRN, LT(_DEV, KC_Z), CM_X, CM_C, CM_V, CM_B, CM_N, CM_M, CM_COMM, CM_DOT, LT(_SUPERDUPER, CM_SLSH), SFT_ENT, 86 LSFT_LPRN, LT(_DEV, KC_Z), CM_X, CM_C, CM_V, CM_B, CM_N, CM_M, CM_COMM, CM_DOT, LT(_SUPERDUPER, CM_SLSH), SFT_ENT,
91 LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC) 87 LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, ALT_COLN, KC_RCTL, LT(_LOWER, KC_RBRC)
92), 88),
93 89
94/* Lower 90/* Lower
diff --git a/keyboards/planck/keymaps/narze/readme.md b/keyboards/planck/keymaps/narze/readme.md
index 737171bca..86bf426d3 100644
--- a/keyboards/planck/keymaps/narze/readme.md
+++ b/keyboards/planck/keymaps/narze/readme.md
@@ -2,24 +2,9 @@
2 2
3## Key features 3## Key features
4- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak. 4- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
5- [(S)uper (D)uper Mode](https://github.com/jasonrudolph/keyboard#super-duper-mode) inspired by [jasonrudolph](https://github.com/jasonrudolph), with [some extensions](https://gist.github.com/narze/861e2167784842d38771) such as backspace & forward delete. 5- [(S)uper (D)uper Mode](/users/narze/readme.md)
6- Mouse keys with Z 6- Mouse keys with Z
7 7
8## (S)uper (D)uper Mode
9Press `S+D` simultaneously and hold, then...
10- `H/J/K/L` for Vim-like movement
11- `I/O` to move between browser tabs (Not working on Windows yet)
12- `A` for `Option (Alt)`
13- `F/;` for `Backspace/Forward delete`
14- `A` with `H/L` to move to previous/next word
15- `A` with `G/;` to delete to previous/next word
16- `G` for `Cmd` (Gui/Windows)
17- Available for all layouts (but plover) using physical S & D keys position in qwerty
18- `Spacebar` for `Shift` (it's easier when already holding A with your pinky)
19- Disable with `Raise+Lower+M`
20- You can edit or add more useful keys in SUPERDUPER layer
21- It can be activated by holding `/` as well, but it's slower since `LT()` uses `TAPPING_TERM` of 200ms but `S+D` uses `COMBO_TERM` of only 20ms (Can be changed within config.h)
22
23## Build instructions 8## Build instructions
24- `cd /path/to/qmk_firmware` 9- `cd /path/to/qmk_firmware`
25- Ensure latest libraries are loaded `make git-submodule` 10- Ensure latest libraries are loaded `make git-submodule`
diff --git a/users/narze/narze.h b/users/narze/narze.h
index 036539a9c..d9be82744 100644
--- a/users/narze/narze.h
+++ b/users/narze/narze.h
@@ -7,3 +7,7 @@
7#ifdef COMBO_ENABLE 7#ifdef COMBO_ENABLE
8# include "superduper.h" 8# include "superduper.h"
9#endif 9#endif
10
11#define HPR_ESC ALL_T(KC_ESC)
12#define SFT_ENT SFT_T(KC_ENT)
13#define ALT_COLN RALT_T(KC_F13) // Remap F13 to Colon in software (eg. Keyboard Maestro)
diff --git a/users/narze/readme.md b/users/narze/readme.md
index 124b84e6b..f5caae0c8 100644
--- a/users/narze/readme.md
+++ b/users/narze/readme.md
@@ -1,5 +1,24 @@
1# TODO 1# narze's layout
2- [ ] Make SuperDuper mode fully-compatible in Windows by swapping GUI with Ctrl 2
3## (S)uper (D)uper Mode
4
5Inspired by [jasonrudolph](https://github.com/jasonrudolph/keyboard#super-duper-mode), with some extensions such as backspace & forward delete. The idea is to make another useful layer available on the home row.
6
7To use, press `S+D` simultaneously and hold, then...
8- `H/J/K/L` for Vim-like movement
9- `I/O` to move between browser tabs
10- `A` for `Option (Alt)`
11- `F` for `Backspace`
12- `;` for `Delete`
13- `A` with `H/L` to move to previous/next word
14- `A` with `G/;` to delete to previous/next word
15- Available for all layouts (but plover) using physical S & D keys position in qwerty
16- `Spacebar` for `Shift` (it's easier when already holding A with your pinky)
17- Disable with `Raise+Lower+M`
18- You can edit or add more useful keys in SUPERDUPER layer
19- It can be activated by holding `/` as well, but it's slower since `LT()` uses `TAPPING_TERM` of 200ms but `S+D` uses `COMBO_TERM` of only 20ms (Can be changed within config.h)
20
21The implementation will vary and some keys are not available in some of my layouts, please refer to `_SUPERDUPER` layer in each of my `keymap.c` files.
3 22
4# LICENSE 23# LICENSE
5Copyright 2019 Manassarn Manoonchai manassarn@gmail.com @narze 24Copyright 2019 Manassarn Manoonchai manassarn@gmail.com @narze