aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStick <8531041+nstickney@users.noreply.github.com>2019-06-06 16:00:52 -0400
committerDrashna Jaelre <drashna@live.com>2019-06-06 13:00:52 -0700
commitde29da973a3171d55834a1401b72772726d5a354 (patch)
treea512104f2c1493bf8356600b1cfddb0a569284d8
parent872480dde2ba4713a96404d1a0a55db71a9d1b9b (diff)
downloadqmk_firmware-de29da973a3171d55834a1401b72772726d5a354.tar.gz
qmk_firmware-de29da973a3171d55834a1401b72772726d5a354.zip
[Keymap] update @nstickney's keymaps (#6076)
* [Keymap] iris@nstickney: improve RGB init Perfecting the rgb backlight initialization with a delay for each color; also start and stop the animation at the "default layer" color. * [Keymap] iris,ergodox@nstickney fix FN on SYMB The function key was not operational on the SYMB and SYSH layers due to other keycodes being mapped over MO() on those layers. The offending keycodes have been moved to other keys. * [Keymap] add @nstickney's userspace Pulled common code out to a userspace directory for my iris and ergodox keymaps. * [Keymap] iris@nstickney add image to README Added an image from keyboard-layout-editor.com to meet the README standard. * iris@nstickney hue values now `uint8_t` (#6050)
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/README.md9
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/config.h6
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/keymap.c92
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/rules.mk5
-rw-r--r--layouts/community/ergodox/nstickney/keymap.c231
-rw-r--r--layouts/community/ergodox/nstickney/rules.mk2
-rw-r--r--users/nstickney/nstickney.c44
-rw-r--r--users/nstickney/nstickney.h25
-rw-r--r--users/nstickney/rules.mk4
9 files changed, 173 insertions, 245 deletions
diff --git a/keyboards/keebio/iris/keymaps/nstickney/README.md b/keyboards/keebio/iris/keymaps/nstickney/README.md
index 1cafce67f..8124fe1cd 100644
--- a/keyboards/keebio/iris/keymaps/nstickney/README.md
+++ b/keyboards/keebio/iris/keymaps/nstickney/README.md
@@ -2,6 +2,8 @@
2 2
3 > Familiar layout for users who regularly switch between Iris and more standard layouts. 3 > Familiar layout for users who regularly switch between Iris and more standard layouts.
4 4
5[![Keymap](https://i.imgur.com/hKs7fYr.jpg)](http://www.keyboard-layout-editor.com/#/gists/aa6093ea2eb9c750ab941b92adae7036)
6
5[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme) 7[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme)
6 8
7## Install 9## Install
@@ -15,11 +17,11 @@ $ make keebio/iris/rev2:nstickney:avrdude
15## Usage 17## Usage
16 18
170. QWERTY `BASE` layer. 190. QWERTY `BASE` layer.
18 * `/`, `\\`, ` `, `[ENTER]`, `-`, and `=` on the thumb clusters. 20 * `/`, `\`, ` `, `[ENTER]`, `-`, and `=` on the thumb clusters.
19 * `CAPSLOCK` replaced by `ESC`; hold it down for `CTRL`. `'` can also be held for `CTRL`. 21 * `CAPSLOCK` replaced by `ESC`; hold it down for `CTRL`. `'` can also be held for `CTRL`.
20 * [Space-Cadet Shift](/docs/docs/feature_space_cadet_shift.md) is enabled, so the `SHIFT` keys send `(` and `)` when tapped. 22 * [Space-Cadet Shift](https://docs.qmk.fm/#/feature_space_cadet_shift) is enabled, so the `SHIFT` keys send `(` and `)` when tapped.
21 * Hold down `/` or `=` for `ALT`. 23 * Hold down `/` or `=` for `ALT`.
22 * Hold down `\\` or `-` to access the functions layer. 24 * Hold down `\` or `-` to access the functions layer.
23 * Upper-center thumb keys are `GUI` and `MENU`. 25 * Upper-center thumb keys are `GUI` and `MENU`.
24 * Tapping `GUI` 2, 3, or 4 times will toggle `NUMLOCK`, `CAPSLOCK`, or `SCROLLLOCK`, respectively. 26 * Tapping `GUI` 2, 3, or 4 times will toggle `NUMLOCK`, `CAPSLOCK`, or `SCROLLLOCK`, respectively.
25 * Tapping `MENU` 2, 3, or 4 times will toggle the `NUMP`, `SYMB`, and `SYSH` layers, respectively. 27 * Tapping `MENU` 2, 3, or 4 times will toggle the `NUMP`, `SYMB`, and `SYSH` layers, respectively.
@@ -40,7 +42,6 @@ $ make keebio/iris/rev2:nstickney:avrdude
40 42
41If you are using this layout and think you've found a better way to do something, I'd appreciate an [issue](https://github.com/nstickney/qmk_firmware/issues), or better yet a [pull request](https://github.com/nstickney/qmk_firmware/pulls). 43If you are using this layout and think you've found a better way to do something, I'd appreciate an [issue](https://github.com/nstickney/qmk_firmware/issues), or better yet a [pull request](https://github.com/nstickney/qmk_firmware/pulls).
42 44
43
44## License 45## License
45 46
46Copyright &copy; 2016-2019 @nstickney. Released under [GPL-2.0](/LICENSE). 47Copyright &copy; 2016-2019 @nstickney. Released under [GPL-2.0](/LICENSE).
diff --git a/keyboards/keebio/iris/keymaps/nstickney/config.h b/keyboards/keebio/iris/keymaps/nstickney/config.h
index 0aeb87e62..f4899781e 100644
--- a/keyboards/keebio/iris/keymaps/nstickney/config.h
+++ b/keyboards/keebio/iris/keymaps/nstickney/config.h
@@ -33,8 +33,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
33// #define RGBLED_NUM 12 33// #define RGBLED_NUM 12
34// #define RGBLIGHT_HUE_STEP 8 34// #define RGBLIGHT_HUE_STEP 8
35// #define RGBLIGHT_SAT_STEP 8 35// #define RGBLIGHT_SAT_STEP 8
36// #define RGBLIGHT_VAL_STEP 8 36// #define RGBLIGHT_VAL_STEP 8 \ No newline at end of file
37
38// Unicode input
39#undef UNICODE_SELECTED_MODES
40#define UNICODE_SELECTED_MODES UC_OSX, UC_LNX, UC_WINC
diff --git a/keyboards/keebio/iris/keymaps/nstickney/keymap.c b/keyboards/keebio/iris/keymaps/nstickney/keymap.c
index 609139985..16b2d0de3 100644
--- a/keyboards/keebio/iris/keymaps/nstickney/keymap.c
+++ b/keyboards/keebio/iris/keymaps/nstickney/keymap.c
@@ -1,66 +1,4 @@
1#include QMK_KEYBOARD_H 1#include "nstickney.h"
2
3extern keymap_config_t keymap_config;
4
5// Layers
6#define BASE 0 // Base layer
7#define SYMB 1 // Symbols
8#define SYSH 2 // Symbols, shifted
9#define NUMP 4 // Numpad
10#define FCTN 8 // Functions
11
12// Tap Dancing
13void dance_lock (qk_tap_dance_state_t *state, void *user_data) {
14 switch (state->count){
15 case 1: // Press once for LGUI
16 tap_code(KC_LGUI);
17 break;
18 case 2: // Press twice for NUMLOCK
19 tap_code(KC_NLCK);
20 break;
21 case 3: // Press thrice for CAPSLOCK
22 tap_code(KC_CAPS);
23 break;
24 case 4: // Press four times for SCROLLOCK
25 tap_code(KC_SLCK);
26 break;
27 default:
28 break;
29 }
30};
31
32void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
33 switch (state -> count) {
34 case 1: // Press once for MENU
35 tap_code(KC_APP);
36 break;
37 case 2: // Press twice for NUMPAD
38 layer_invert(NUMP);
39 break;
40 case 3: // Press thrice for SYMBOLS
41 layer_invert(SYMB);
42 break;
43 case 4: // Press four times for SYMBOLS, SHIFTED
44 layer_invert(SYSH);
45 break;
46 default:
47 break;
48 }
49};
50
51enum tap_dances {LOCKS = 0, LAYERS = 1};
52qk_tap_dance_action_t tap_dance_actions[] = {
53 [LOCKS] = ACTION_TAP_DANCE_FN(dance_lock),
54 [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
55};
56
57// Make layering more clear
58#define CC_ESC LCTL_T(KC_ESC)
59#define CC_QUOT RCTL_T(KC_QUOT)
60#define AC_SLSH LALT_T(KC_SLSH)
61#define AC_EQL RALT_T(KC_EQL)
62#define FC_BSLS LT(FCTN, KC_BSLS)
63#define FC_MINS LT(FCTN, KC_MINS)
64 2
65const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
66 4
@@ -88,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
88// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ 26// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
89 _______, UC(0x00E6),UC(0x00E8),UC(0x00A9),UC(0x00EA),UC(0x00EB),_______, _______, UC(0x00F1),UC(0x00FD),UC(0x00E7),UC(0x00F4),UC(0x00BF),_______, 27 _______, UC(0x00E6),UC(0x00E8),UC(0x00A9),UC(0x00EA),UC(0x00EB),_______, _______, UC(0x00F1),UC(0x00FD),UC(0x00E7),UC(0x00F4),UC(0x00BF),_______,
90// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘ 28// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
91 UC(0x00BF),UC(0x00AC),_______, _______, UC(0x00B1),UC(0x00D7) 29 UC(0x00BF),_______, UC(0x00AC), UC(0x00B1),_______, UC(0x00D7)
92// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘ 30// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘
93 ), 31 ),
94 32
@@ -102,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
102// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ 40// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
103 _______, UC(0x00C6),UC(0x00C8),UC(0x00A2),UC(0x00CA),UC(0x00CB),_______, _______, UC(0x00D1),UC(0x00DD),UC(0x00C7),UC(0x00D4),UC(0x203D),_______, 41 _______, UC(0x00C6),UC(0x00C8),UC(0x00A2),UC(0x00CA),UC(0x00CB),_______, _______, UC(0x00D1),UC(0x00DD),UC(0x00C7),UC(0x00D4),UC(0x203D),_______,
104// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘ 42// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
105 UC(0x203D),UC(0x00A6),_______, _______, UC(0x00AA),UC(0x00F7) 43 UC(0x203D),_______, UC(0x00A6), UC(0x00AA),_______, UC(0x00F7)
106// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘ 44// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘
107 ), 45 ),
108 46
@@ -138,8 +76,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
138// Initialize rgblight 76// Initialize rgblight
139void keyboard_post_init_user(void) { 77void keyboard_post_init_user(void) {
140 rgblight_enable_noeeprom(); 78 rgblight_enable_noeeprom();
141 for (int i = 360; i > 0; i--) { 79 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
142 rgblight_sethsv_noeeprom(i, 255, 255); 80 layer_state_set_user(layer_state);
81 uint16_t user_hue = rgblight_get_hue();
82 for (uint16_t i = 0; i < 256; ++i) {
83 rgblight_sethsv_noeeprom( (i + user_hue) % 256, 255, 255);
84 wait_ms(5);
143 } 85 }
144 layer_state_set_user(layer_state); 86 layer_state_set_user(layer_state);
145}; 87};
@@ -147,19 +89,11 @@ void keyboard_post_init_user(void) {
147// Turn on RGB underglow according to active layer 89// Turn on RGB underglow according to active layer
148uint32_t layer_state_set_user(uint32_t state) { 90uint32_t layer_state_set_user(uint32_t state) {
149 switch (biton32(state)) { 91 switch (biton32(state)) {
150 case FCTN: 92 case FCTN: rgblight_sethsv_noeeprom(96, 255, 255); break;
151 rgblight_sethsv_noeeprom(136, 255, 255); 93 case NUMP: rgblight_sethsv_noeeprom(162, 255, 255); break;
152 break;
153 case NUMP:
154 rgblight_sethsv_noeeprom(228, 255, 255);
155 break;
156 case SYMB: 94 case SYMB:
157 case SYSH: 95 case SYSH: rgblight_sethsv_noeeprom(227, 255, 255); break;
158 rgblight_sethsv_noeeprom(320, 255, 255); 96 default: rgblight_sethsv_noeeprom(13, 255, 255); break;
159 break;
160 default: // for any other layers, or the default layer
161 rgblight_sethsv_noeeprom(19, 255, 255);
162 break;
163 } 97 }
164 return state; 98 return state;
165}; 99};
diff --git a/keyboards/keebio/iris/keymaps/nstickney/rules.mk b/keyboards/keebio/iris/keymaps/nstickney/rules.mk
index 851fc924e..7ad666d1a 100644
--- a/keyboards/keebio/iris/keymaps/nstickney/rules.mk
+++ b/keyboards/keebio/iris/keymaps/nstickney/rules.mk
@@ -1,4 +1 @@
1BACKLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes \ No newline at end of file
2RGBLIGHT_ENABLE = yes
3TAP_DANCE_ENABLE=yes
4UNICODE_ENABLE = yes
diff --git a/layouts/community/ergodox/nstickney/keymap.c b/layouts/community/ergodox/nstickney/keymap.c
index dc83c2f4d..a37bc5f96 100644
--- a/layouts/community/ergodox/nstickney/keymap.c
+++ b/layouts/community/ergodox/nstickney/keymap.c
@@ -1,196 +1,125 @@
1#include QMK_KEYBOARD_H 1#include "nstickney.h"
2 2
3/* 3/*
4 * This keymap simulates the key limitations of an Iris on an ErgoDox. See the 4 * This keymap simulates the key limitations of an Iris on an ErgoDox. See the
5 * matching iris layout (/keyboards/iris/keymaps/nstickney) for further 5 * matching iris layout (/keyboards/keebio/iris/keymaps/nstickney) for further
6 * information. 6 * information.
7 */ 7 */
8 8
9// Layers
10#define BASE 0 // Base layer
11#define SYMB 1 // Symbols
12#define SYSH 2 // Symbols, shifted
13#define NUMP 4 // Numpad
14#define FCTN 8 // Function
15
16// Tap Dancing
17void dance_lock (qk_tap_dance_state_t *state, void *user_data) {
18 switch (state->count){
19 case 1: // Press once for LGUI
20 tap_code(KC_LGUI);
21 break;
22 case 2: // Press twice for NUMLOCK
23 tap_code(KC_NLCK);
24 break;
25 case 3: // Press thrice for CAPSLOCK
26 tap_code(KC_CAPS);
27 break;
28 case 4: // Press four times for SCROLLOCK
29 tap_code(KC_SLCK);
30 break;
31 default:
32 break;
33 }
34};
35
36void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
37 switch (state -> count) {
38 case 1: // Press once for MENU
39 tap_code(KC_APP);
40 break;
41 case 2: // Press twice for NUMPAD
42 layer_invert(NUMP);
43 break;
44 case 3: // Press thrice for SYMBOLS
45 layer_invert(SYMB);
46 break;
47 case 4: // Press four times for SYMBOLS, SHIFTED
48 layer_invert(SYSH);
49 break;
50 default:
51 break;
52 }
53};
54
55enum tap_dances {LOCKS = 0, LAYERS = 1};
56qk_tap_dance_action_t tap_dance_actions[] = {
57 [LOCKS] = ACTION_TAP_DANCE_FN(dance_lock),
58 [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
59};
60
61// Make layering more clear
62enum custom_keycodes {
63 __________ = KC_TRNS,
64 XXX = KC_NO,
65 CC_ESC = LCTL_T(KC_ESC),
66 CC_QUOT = RCTL_T(KC_QUOT),
67 AC_SLSH = LALT_T(KC_SLSH),
68 AC_EQL = RALT_T(KC_EQL),
69 FC_BSLS = LT(FCTN, KC_BSLS),
70 FC_MINS = LT(FCTN, KC_MINS),
71};
72
73const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 [BASE] = LAYOUT_ergodox( 10 [BASE] = LAYOUT_ergodox(
75 // left hand 11 // left hand
76 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXX, 12 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
77 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXX, 13 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX,
78 CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 14 CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
79 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXX, 15 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX,
80 XXX, XXX, XXX, XXX, AC_SLSH, 16 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AC_SLSH,
81 TD(LOCKS), XXX, 17 TD(LOCKS), XXXXXXX,
82 XXX, 18 XXXXXXX,
83 FC_BSLS, KC_SPC, XXX, 19 FC_BSLS, KC_SPC, XXXXXXX,
84 // right hand 20 // right hand
85 XXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 21 XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
86 XXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, 22 XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
87 KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, 23 KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
88 XXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, 24 XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
89 AC_EQL, XXX, XXX, XXX, XXX, 25 AC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
90 XXX, TD(LAYERS), 26 XXXXXXX, TD(LAYERS),
91 XXX, 27 XXXXXXX,
92 XXX, KC_ENT, FC_MINS 28 XXXXXXX, KC_ENT, FC_MINS
93 ), 29 ),
94 30
95 [SYMB] = LAYOUT_ergodox( 31 [SYMB] = LAYOUT_ergodox(
96 // left hand 32 // left hand
97 UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), __________, 33 UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), _______,
98 __________, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), __________, 34 _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______,
99 __________, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED), 35 _______, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED),
100 __________, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), __________, 36 _______, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), _______,
101 __________, __________, __________, __________, UC(0x00BF), 37 _______, _______, _______, _______, UC(0x00BF),
102 __________, __________, 38 _______, _______,
103 __________, 39 _______,
104 UC(0x00AC), __________, __________, 40 _______, UC(0x00AC), _______,
105 // right hand 41 // right hand
106 __________, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), __________, 42 _______, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), _______,
107 __________, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), __________, 43 _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______,
108 UC(0x00EE), UC(0x00E0), UC(0x00E2), UC(0x00F8), UC(0x00B6), UC(0x00B4), 44 UC(0x00EE), UC(0x00E0), UC(0x00E2), UC(0x00F8), UC(0x00B6), UC(0x00B4),
109 __________, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), __________, 45 _______, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), _______,
110 UC(0x00D7), __________, __________, __________, __________, 46 UC(0x00D7), _______, _______, _______, _______,
111 __________, __________, 47 _______, _______,
112 __________, 48 _______,
113 __________, __________, UC(0x00B1) 49 _______, UC(0x00B1), _______
114 ), 50 ),
115 51
116 [SYSH] = LAYOUT_ergodox( 52 [SYSH] = LAYOUT_ergodox(
117 // left hand 53 // left hand
118 UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), __________, 54 UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), _______,
119 __________, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), __________, 55 _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), _______,
120 __________, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD), 56 _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD),
121 __________, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), __________, 57 _______, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), _______,
122 __________, __________, __________, __________, UC(0x203D), 58 _______, _______, _______, _______, UC(0x203D),
123 __________, __________, 59 _______, _______,
124 __________, 60 _______,
125 UC(0x00A6), __________, __________, 61 _______, UC(0x00A6), _______,
126 // right hand 62 // right hand
127 __________, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), __________, 63 _______, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), _______,
128 __________, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), __________, 64 _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______,
129 UC(0x00CE), UC(0x00C1), UC(0x00C2), UC(0x00D8), UC(0x00B0), UC(0x00A8), 65 UC(0x00CE), UC(0x00C1), UC(0x00C2), UC(0x00D8), UC(0x00B0), UC(0x00A8),
130 __________, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), __________, 66 _______, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), _______,
131 UC(0x00F7), __________, __________, __________, __________, 67 UC(0x00F7), _______, _______, _______, _______,
132 __________, __________, 68 _______, _______,
133 __________, 69 _______,
134 __________, __________, UC(0x00AA) 70 _______, UC(0x00AA), _______
135 ), 71 ),
136 72
137 [NUMP] = LAYOUT_ergodox( 73 [NUMP] = LAYOUT_ergodox(
138 // left hand 74 // left hand
139 __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________, 75 _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
140 __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________, 76 _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
141 __________, __________, KC_P1, KC_P2, KC_P3, KC_PMNS, 77 _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS,
142 __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________, 78 _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
143 __________, __________, __________, __________, __________, 79 _______, _______, _______, _______, _______,
144 __________, __________, 80 _______, _______,
145 __________, 81 _______,
146 __________, __________, __________, 82 _______, _______, _______,
147 // right hand 83 // right hand
148 __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________, 84 _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
149 __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________, 85 _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
150 __________, KC_P1, KC_P2, KC_P3, KC_PMNS, __________, 86 _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
151 __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________, 87 _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
152 __________, __________, __________, __________, __________, 88 _______, _______, _______, _______, _______,
153 __________, __________, 89 _______, _______,
154 __________, 90 _______,
155 __________, KC_PENT, __________ 91 _______, KC_PENT, _______
156 ), 92 ),
157 93
158 [FCTN] = LAYOUT_ergodox( 94 [FCTN] = LAYOUT_ergodox(
159 // left hand 95 // left hand
160 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, __________, 96 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
161 KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, __________, 97 KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, _______,
162 KC_PAUS, __________, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, 98 KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
163 __________, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, __________, 99 _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, _______,
164 __________, __________, __________, __________, __________, 100 _______, _______, _______, _______, _______,
165 KC_F11, __________, 101 KC_F11, _______,
166 __________, 102 _______,
167 __________, __________, __________, 103 _______, _______, _______,
168 // right hand 104 // right hand
169 __________, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, 105 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
170 __________, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, 106 _______, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
171 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, 107 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
172 __________, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, __________, 108 _______, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
173 __________, __________, __________, __________, __________, 109 _______, _______, _______, _______, _______,
174 __________, KC_F12, 110 _______, KC_F12,
175 __________, 111 _______,
176 __________, __________, __________ 112 _______, _______, _______
177 ), 113 ),
178}; 114};
179 115
180void eeconfig_init_user(void) {
181 set_unicode_input_mode(UC_LNX); // Linux
182 //set_unicode_input_mode(UC_OSX); // Mac OSX
183 //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
184 //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
185};
186
187// Runs just one time when the keyboard initializes. 116// Runs just one time when the keyboard initializes.
188void matrix_init_user(void) { 117void matrix_init_user (void) {
189 ergodox_board_led_off(); 118 ergodox_board_led_off();
190}; 119};
191 120
192// Runs constantly in the background, in a loop. 121// Runs constantly in the background, in a loop.
193void matrix_scan_user(void) { 122void matrix_scan_user (void) {
194 123
195 if (IS_LAYER_ON(SYMB) || IS_LAYER_ON(SYSH)) { 124 if (IS_LAYER_ON(SYMB) || IS_LAYER_ON(SYSH)) {
196 ergodox_right_led_1_on(); 125 ergodox_right_led_1_on();
@@ -210,4 +139,4 @@ void matrix_scan_user(void) {
210 ergodox_right_led_3_off(); 139 ergodox_right_led_3_off();
211 } 140 }
212 141
213}; 142}; \ No newline at end of file
diff --git a/layouts/community/ergodox/nstickney/rules.mk b/layouts/community/ergodox/nstickney/rules.mk
deleted file mode 100644
index 4a3c58621..000000000
--- a/layouts/community/ergodox/nstickney/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
1TAP_DANCE_ENABLE=yes
2LEADER_ENABLE = yes
diff --git a/users/nstickney/nstickney.c b/users/nstickney/nstickney.c
new file mode 100644
index 000000000..3e18e5c83
--- /dev/null
+++ b/users/nstickney/nstickney.c
@@ -0,0 +1,44 @@
1#include "nstickney.h"
2
3// Tap Dancing
4void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
5 switch (state -> count) {
6 case 1: tap_code(KC_APP); break;
7 case 2: layer_invert(NUMP); break;
8 case 3: layer_invert(SYMB); break;
9 case 4: layer_invert(SYSH); break;
10 default: break;
11 }
12};
13
14void dance_lock_finished (qk_tap_dance_state_t *state, void *user_data) {
15 switch (state->count) {
16 case 1: register_code(KC_LGUI); break;
17 case 2: register_code(KC_NLCK); break;
18 case 3: register_code(KC_CAPS); break;
19 case 4: register_code(KC_SLCK); break;
20 default: break;
21 }
22};
23
24void dance_lock_reset (qk_tap_dance_state_t *state, void *user_data) {
25 switch (state->count) {
26 case 1: unregister_code(KC_LGUI); break;
27 case 2: unregister_code(KC_NLCK); break;
28 case 3: register_code(KC_CAPS); break;
29 case 4: register_code(KC_SLCK); break;
30 default: break;
31 }
32};
33
34qk_tap_dance_action_t tap_dance_actions[] = {
35 [LOCKS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lock_finished, dance_lock_reset),
36 [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
37};
38
39void eeconfig_init_user (void) {
40 set_unicode_input_mode(UC_LNX); // Linux
41 //set_unicode_input_mode(UC_OSX); // Mac OSX
42 //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
43 //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
44}; \ No newline at end of file
diff --git a/users/nstickney/nstickney.h b/users/nstickney/nstickney.h
new file mode 100644
index 000000000..d3f5a7c6f
--- /dev/null
+++ b/users/nstickney/nstickney.h
@@ -0,0 +1,25 @@
1#include QMK_KEYBOARD_H
2
3#pragma once
4#define USE_SERIAL
5#define MASTER_LEFT
6
7#undef UNICODE_SELECTED_MODES
8#define UNICODE_SELECTED_MODES UC_OSX, UC_LNX, UC_WINC
9
10// Layers
11#define BASE 0 // Base layer
12#define SYMB 1 // Symbols
13#define SYSH 2 // Symbols, shifted
14#define NUMP 3 // Numpad
15#define FCTN 4 // Function
16
17// Make keymaps more clear
18#define CC_ESC LCTL_T(KC_ESC)
19#define CC_QUOT RCTL_T(KC_QUOT)
20#define AC_SLSH LALT_T(KC_SLSH)
21#define AC_EQL RALT_T(KC_EQL)
22#define FC_BSLS LT(FCTN, KC_BSLS)
23#define FC_MINS LT(FCTN, KC_MINS)
24
25enum tap_dances {LOCKS = 0, LAYERS = 1}; \ No newline at end of file
diff --git a/users/nstickney/rules.mk b/users/nstickney/rules.mk
new file mode 100644
index 000000000..f52371c79
--- /dev/null
+++ b/users/nstickney/rules.mk
@@ -0,0 +1,4 @@
1SRC += nstickney.c
2
3TAP_DANCE_ENABLE = yes
4UNICODE_ENABLE = yes \ No newline at end of file