aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStick <8531041+nstickney@users.noreply.github.com>2021-08-09 13:34:36 -0400
committerGitHub <noreply@github.com>2021-08-09 10:34:36 -0700
commit5a59363e2826a49ae6dc97d5296f17dc89fd4c7e (patch)
treec45643f17409d180605599a8918e850a14a11e8b
parent8936d0ae4b81ade2ff0224d606f7287e3ab6abf8 (diff)
downloadqmk_firmware-5a59363e2826a49ae6dc97d5296f17dc89fd4c7e.tar.gz
qmk_firmware-5a59363e2826a49ae6dc97d5296f17dc89fd4c7e.zip
[User] changes to nstickney's keymaps (#11456)
0) Built a Bastyl, gave away the ErgoDoxEZ 1) UNICODEMAP 2) Iris left is now Elite-C 3) New QMK flashing instructions
-rw-r--r--keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c70
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/README.md47
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/config.h50
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/keymap.c118
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/rules.mk1
-rw-r--r--layouts/community/ergodox/nstickney/keymap.c142
-rw-r--r--users/nstickney/config.h63
-rw-r--r--users/nstickney/nstickney.c112
-rw-r--r--users/nstickney/nstickney.h46
-rw-r--r--users/nstickney/readme.md49
-rw-r--r--users/nstickney/rules.mk35
-rw-r--r--users/nstickney/unicodemap.h106
12 files changed, 477 insertions, 362 deletions
diff --git a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c
new file mode 100644
index 000000000..507dd0b15
--- /dev/null
+++ b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c
@@ -0,0 +1,70 @@
1/*
2 * Copyright 2020 Quentin LEBASTARD <qlebastard@gmail.com>
3 * Copyright 2020 Anthony MARIN <anthony@hidtech.ca>
4 * Copyright 2021 Stick <stick@stma.is>
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http:www.gnu.org/licenses/>.
18 */
19#include "nstickney.h"
20#include "unicodemap.h"
21
22const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24 [BASE] = LAYOUT(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
25 //-------------------------------//
26 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
27 //-------------------------------//
28 CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
29 //-------------------------------//
30 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
31 //-------------------------------//
32 AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL,
33 //-------------------------------//
34 KC_LBRC, TD(LOCKS), TD(LAYERS), KC_RBRC),
35
36 [SYMB] = LAYOUT(_______, XP(IEX, SS1), X(SS2), X(SS3), XP(CUR, GBP), X(EUR), X(V14), X(V12), X(V34), XP(LSQ, LDQ), XP(RSQ, RDQ), _______,
37 //-------------------------------//
38 _______, XP(A_D, AXD), XP(A_R, ACR), XP(E_A, ECA), XP(REG, CPL), X(THR), XP(U_D, UCD), XP(U_A, UCA), XP(I_A, ICA), XP(O_A, OCA), XP(O_D, OCD), _______,
39 //-------------------------------//
40 _______, XP(A_A, ACA), XP(S_S, SEC), XP(ETH, ETC), X(EMD), _______, _______, _______, _______, XP(O_S, OCS), XP(PLC, DEG), XP(ACT, DIS),
41 //-------------------------------//
42 _______, XP(AEL, AEC), _______, XP(CPR, CNT), _______, _______, _______, _______, XP(N_T, NCT), X(MCR), XP(C_C, CCC), _______,
43 //-------------------------------//
44 X(IQM), XP(NOT, BKB), _______, _______, X(YEN), XP(MLT, DIV),
45 //-------------------------------//
46 _______, _______, _______, _______),
47
48 [NUMP] = LAYOUT(_______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
49 //-------------------------------//
50 _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
51 //-------------------------------//
52 _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
53 //-------------------------------//
54 _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
55 //-------------------------------//
56 _______, _______, _______, KC_PENT, _______, _______,
57 //-------------------------------//
58 _______, _______, _______, _______),
59
60 [FCTN] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
61 //-------------------------------//
62 KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
63 //-------------------------------//
64 KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
65 //-------------------------------//
66 _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
67 //-------------------------------//
68 RESET, _______, _______, _______, _______, RESET,
69 //-------------------------------//
70 _______, KC_F11, KC_F12, _______)};
diff --git a/keyboards/keebio/iris/keymaps/nstickney/README.md b/keyboards/keebio/iris/keymaps/nstickney/README.md
deleted file mode 100644
index 8124fe1cd..000000000
--- a/keyboards/keebio/iris/keymaps/nstickney/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
1# nstickney's Iris Layout
2
3 > Familiar layout for users who regularly switch between Iris and more standard layouts.
4
5[![Keymap](https://i.imgur.com/hKs7fYr.jpg)](http://www.keyboard-layout-editor.com/#/gists/aa6093ea2eb9c750ab941b92adae7036)
6
7[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme)
8
9## Install
10
11For instructions on building and installing this keymap, see the [docs](https://docs.qmk.fm/#/getting_started_make_guide). Below is the command for me; it may be different for you.
12
13```sh
14$ make keebio/iris/rev2:nstickney:avrdude
15```
16
17## Usage
18
190. QWERTY `BASE` layer.
20 * `/`, `\`, ` `, `[ENTER]`, `-`, and `=` on the thumb clusters.
21 * `CAPSLOCK` replaced by `ESC`; hold it down for `CTRL`. `'` can also be held for `CTRL`.
22 * [Space-Cadet Shift](https://docs.qmk.fm/#/feature_space_cadet_shift) is enabled, so the `SHIFT` keys send `(` and `)` when tapped.
23 * Hold down `/` or `=` for `ALT`.
24 * Hold down `\` or `-` to access the functions layer.
25 * Upper-center thumb keys are `GUI` and `MENU`.
26 * Tapping `GUI` 2, 3, or 4 times will toggle `NUMLOCK`, `CAPSLOCK`, or `SCROLLLOCK`, respectively.
27 * Tapping `MENU` 2, 3, or 4 times will toggle the `NUMP`, `SYMB`, and `SYSH` layers, respectively.
280. Unicode-input symbols on `SYMB` and `SYSH` layers. Based (loosely) on US-International layout.
290. `NUMP` layer has number pads on each hand. Number pad `7`-`8`-`9` align with QWERTY `7`-`8`-`9` on right hand.
300. Function, arrow, media, and miscellaneous keys on `FCTN` layer.
31 * `F1` through `F10` on `1`-`10`. `F11` is on `GUI` and `F12` is on `MENU`.
32 * Brackets (`[` and `]`) available on `U` and `I`; braces (`{` and `}`) on `O` and `P`.
33 * Arrow keys on `ESDF` and `HJKL`; familiar for both Vim users and FPS gamers.
34 * `W` is `HOME`; `R` is `END`. `T` is `PAGE UP` and `G` is `PAGE DOWN`.
35 * Music controls on lower row of left hand.
36 * Volume and screen brightness on lower row of right hand.
37 * `PRINT SCREEN`, `PAUSE`, `SYSREQ`, `INSERT`, and `CLEAR` also mapped, as intelligently as possible.
38 * `A` toggles the RGB underglow (which changes color to indicate active layer).
39 * `Q` toggles the Unicode input through Linux, WinCompose, and MacOS.
40
41## Contribute
42
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).
44
45## License
46
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 f4899781e..da682cb92 100644
--- a/keyboards/keebio/iris/keymaps/nstickney/config.h
+++ b/keyboards/keebio/iris/keymaps/nstickney/config.h
@@ -1,36 +1,20 @@
1/* 1/* Copyright 2021 @nstickney
2Copyright 2017 Danny Nguyen <danny@keeb.io> 2 *
3 3 * This program is free software: you can redistribute it and/or modify
4This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by
5it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or
6the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version.
7(at your option) any later version. 7 *
8 8 * This program is distributed in the hope that it will be useful,
9This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details.
12GNU General Public License for more details. 12 *
13 13 * You should have received a copy of the GNU General Public License
14You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */
16*/
17 16
18#pragma once 17#pragma once
19 18
20/* Use I2C or Serial, not both */ 19#define RGBLED_NUM 12
21 20#define RGBLIGHT_SPLIT
22#define USE_SERIAL
23// #define USE_I2C
24
25/* Select hand configuration */
26
27#define MASTER_LEFT
28// #define MASTER_RIGHT
29// #define EE_HANDS
30
31// #undef RGBLED_NUM
32// #define RGBLIGHT_ANIMATIONS
33// #define RGBLED_NUM 12
34// #define RGBLIGHT_HUE_STEP 8
35// #define RGBLIGHT_SAT_STEP 8
36// #define RGBLIGHT_VAL_STEP 8 \ No newline at end of file
diff --git a/keyboards/keebio/iris/keymaps/nstickney/keymap.c b/keyboards/keebio/iris/keymaps/nstickney/keymap.c
index 16b2d0de3..bbf560fc3 100644
--- a/keyboards/keebio/iris/keymaps/nstickney/keymap.c
+++ b/keyboards/keebio/iris/keymaps/nstickney/keymap.c
@@ -1,99 +1,33 @@
1/* Copyright 2021 @nstickney
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
1#include "nstickney.h" 16#include "nstickney.h"
17#include "unicodemap.h"
2 18
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 20
5 [BASE] = LAYOUT( 21 [BASE] = LAYOUT(
6// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ 22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
7 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
8// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ 24 CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
9 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, 25 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, TD(LOCKS), TD(LAYERS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
10// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ 26 AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL
11 CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT, 27 ),
12// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
13 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, TD(LOCKS), TD(LAYERS),KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
14// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
15 AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL
16// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘
17 ),
18 28
19 [SYMB] = LAYOUT( 29 [SYMB] = LAYOUT(_______, XP(IEX, SS1), X(SS2), X(SS3), XP(CUR, GBP), X(EUR), X(V14), X(V12), X(V34), XP(LSQ, LDQ), XP(RSQ, RDQ), _______, _______, XP(A_D, AXD), XP(A_R, ACR), XP(E_A, ECA), XP(REG, CPL), X(THR), XP(U_D, UCD), XP(U_A, UCA), XP(I_A, ICA), XP(O_A, OCA), XP(O_D, OCD), _______, _______, XP(A_A, ACA), XP(S_S, SEC), XP(ETH, ETC), X(EMD), _______, _______, _______, _______, XP(O_S, OCS), XP(PLC, DEG), XP(ACT, DIS), _______, XP(AEL, AEC), _______, XP(CPR, CNT), _______, _______, _______, _______, XP(N_T, NCT), X(MCR), XP(C_C, CCC), _______, _______, _______, X(IQM), XP(NOT, BKB), _______, _______, X(YEN), XP(MLT, DIV)),
20// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
21 UC(0x00EF),UC(0x00A1),UC(0x00B2),UC(0x00B3),UC(0x00A4),UC(0x20AC), UC(0x00BC),UC(0x00BD),UC(0x00BE),UC(0x2018),UC(0x2019),_______,
22// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
23 _______, UC(0x00E4),UC(0x00E5),UC(0x00E9),UC(0x00AE),UC(0x00FE), UC(0x00FC),UC(0x00FA),UC(0x00ED),UC(0x00F3),UC(0x00F6),_______,
24// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
25 _______, UC(0x00E1),UC(0x00DF),UC(0x00F0),UC(0x00EC),UC(0x00ED), UC(0x00EE),UC(0x00E0),UC(0x00E2),UC(0x00F8),UC(0x00B6),UC(0x00B4),
26// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
27 _______, UC(0x00E6),UC(0x00E8),UC(0x00A9),UC(0x00EA),UC(0x00EB),_______, _______, UC(0x00F1),UC(0x00FD),UC(0x00E7),UC(0x00F4),UC(0x00BF),_______,
28// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
29 UC(0x00BF),_______, UC(0x00AC), UC(0x00B1),_______, UC(0x00D7)
30// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘
31 ),
32 30
33 [SYSH] = LAYOUT( 31 [NUMP] = LAYOUT(_______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, _______, _______, _______, KC_PENT, _______, _______),
34// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
35 UC(0x00CF),UC(0x00B9),UC(0x2200),UC(0x2201),UC(0x00A3),UC(0x00A5), UC(0x00B5),UC(0x00AB),UC(0x00BB),UC(0x201C),UC(0x201D),_______,
36// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
37 _______, UC(0x00C4),UC(0x00C5),UC(0x00C9),UC(0x2122),UC(0x00DE), UC(0x00DC),UC(0x00DA),UC(0x00CD),UC(0x00D3),UC(0x00D6),_______,
38// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
39 _______, UC(0x00C1),UC(0x00A7),UC(0x00D0),UC(0x00CC),UC(0x00CD), UC(0x00CE),UC(0x00C1),UC(0x00C2),UC(0x00D8),UC(0x00B0),UC(0x00A8),
40// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
41 _______, UC(0x00C6),UC(0x00C8),UC(0x00A2),UC(0x00CA),UC(0x00CB),_______, _______, UC(0x00D1),UC(0x00DD),UC(0x00C7),UC(0x00D4),UC(0x203D),_______,
42// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
43 UC(0x203D),_______, UC(0x00A6), UC(0x00AA),_______, UC(0x00F7)
44// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘
45 ),
46 32
47 [NUMP] = LAYOUT( 33 [FCTN] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ, KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS, KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR, _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_F11, KC_F12, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______, _______, _______, _______, _______, _______, _______)};
48// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
49 _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
50// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
51 _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
52// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
53 _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
54// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
55 _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
56// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
57 _______, _______, _______, KC_PENT, _______, _______
58// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘
59 ),
60
61 [FCTN] = LAYOUT(
62// ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐ ┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
63 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
64// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
65 KC_PSCR, UC_MOD, KC_HOME, KC_UP, KC_END, KC_PGUP, UC(0x2014),KC_LBRC, KC_RBRC, S(KC_LBRC),S(KC_RBRC),KC_INS,
66// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
67 KC_PAUS, RGB_TOG, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
68// ├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┐ ┌──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
69 _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_F11, KC_F12, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
70// └──────────┴──────────┴──────────┴────┬─────┴────┬─────┴────┬─────┴────┬─────┘ └────┬─────┴────┬─────┴────┬─────┴────┬─────┴──────────┴──────────┴──────────┘
71 _______, _______, _______, _______, _______, _______
72// └──────────┴──────────┴──────────┘ └──────────┴──────────┴──────────┘
73 )
74};
75
76// Initialize rgblight
77void keyboard_post_init_user(void) {
78 rgblight_enable_noeeprom();
79 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
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);
85 }
86 layer_state_set_user(layer_state);
87};
88
89// Turn on RGB underglow according to active layer
90uint32_t layer_state_set_user(uint32_t state) {
91 switch (biton32(state)) {
92 case FCTN: rgblight_sethsv_noeeprom(96, 255, 255); break;
93 case NUMP: rgblight_sethsv_noeeprom(162, 255, 255); break;
94 case SYMB:
95 case SYSH: rgblight_sethsv_noeeprom(227, 255, 255); break;
96 default: rgblight_sethsv_noeeprom(13, 255, 255); break;
97 }
98 return state;
99};
diff --git a/keyboards/keebio/iris/keymaps/nstickney/rules.mk b/keyboards/keebio/iris/keymaps/nstickney/rules.mk
deleted file mode 100644
index 7ad666d1a..000000000
--- a/keyboards/keebio/iris/keymaps/nstickney/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
1RGBLIGHT_ENABLE = yes \ No newline at end of file
diff --git a/layouts/community/ergodox/nstickney/keymap.c b/layouts/community/ergodox/nstickney/keymap.c
deleted file mode 100644
index a37bc5f96..000000000
--- a/layouts/community/ergodox/nstickney/keymap.c
+++ /dev/null
@@ -1,142 +0,0 @@
1#include "nstickney.h"
2
3/*
4 * This keymap simulates the key limitations of an Iris on an ErgoDox. See the
5 * matching iris layout (/keyboards/keebio/iris/keymaps/nstickney) for further
6 * information.
7 */
8
9const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
10 [BASE] = LAYOUT_ergodox(
11 // left hand
12 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
13 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX,
14 CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
15 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX,
16 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AC_SLSH,
17 TD(LOCKS), XXXXXXX,
18 XXXXXXX,
19 FC_BSLS, KC_SPC, XXXXXXX,
20 // right hand
21 XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
22 XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
23 KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
24 XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
25 AC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
26 XXXXXXX, TD(LAYERS),
27 XXXXXXX,
28 XXXXXXX, KC_ENT, FC_MINS
29 ),
30
31 [SYMB] = LAYOUT_ergodox(
32 // left hand
33 UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), _______,
34 _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______,
35 _______, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED),
36 _______, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), _______,
37 _______, _______, _______, _______, UC(0x00BF),
38 _______, _______,
39 _______,
40 _______, UC(0x00AC), _______,
41 // right hand
42 _______, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), _______,
43 _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______,
44 UC(0x00EE), UC(0x00E0), UC(0x00E2), UC(0x00F8), UC(0x00B6), UC(0x00B4),
45 _______, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), _______,
46 UC(0x00D7), _______, _______, _______, _______,
47 _______, _______,
48 _______,
49 _______, UC(0x00B1), _______
50 ),
51
52 [SYSH] = LAYOUT_ergodox(
53 // left hand
54 UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), _______,
55 _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), _______,
56 _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD),
57 _______, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), _______,
58 _______, _______, _______, _______, UC(0x203D),
59 _______, _______,
60 _______,
61 _______, UC(0x00A6), _______,
62 // right hand
63 _______, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), _______,
64 _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______,
65 UC(0x00CE), UC(0x00C1), UC(0x00C2), UC(0x00D8), UC(0x00B0), UC(0x00A8),
66 _______, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), _______,
67 UC(0x00F7), _______, _______, _______, _______,
68 _______, _______,
69 _______,
70 _______, UC(0x00AA), _______
71 ),
72
73 [NUMP] = LAYOUT_ergodox(
74 // left hand
75 _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
76 _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
77 _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS,
78 _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
79 _______, _______, _______, _______, _______,
80 _______, _______,
81 _______,
82 _______, _______, _______,
83 // right hand
84 _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
85 _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
86 _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
87 _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
88 _______, _______, _______, _______, _______,
89 _______, _______,
90 _______,
91 _______, KC_PENT, _______
92 ),
93
94 [FCTN] = LAYOUT_ergodox(
95 // left hand
96 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
97 KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, _______,
98 KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
99 _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, _______,
100 _______, _______, _______, _______, _______,
101 KC_F11, _______,
102 _______,
103 _______, _______, _______,
104 // right hand
105 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
106 _______, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
107 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
108 _______, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
109 _______, _______, _______, _______, _______,
110 _______, KC_F12,
111 _______,
112 _______, _______, _______
113 ),
114};
115
116// Runs just one time when the keyboard initializes.
117void matrix_init_user (void) {
118 ergodox_board_led_off();
119};
120
121// Runs constantly in the background, in a loop.
122void matrix_scan_user (void) {
123
124 if (IS_LAYER_ON(SYMB) || IS_LAYER_ON(SYSH)) {
125 ergodox_right_led_1_on();
126 } else {
127 ergodox_right_led_1_off();
128 }
129
130 if (IS_LAYER_ON(NUMP)) {
131 ergodox_right_led_2_on();
132 } else {
133 ergodox_right_led_2_off();
134 }
135
136 if (IS_LAYER_ON(FCTN)) {
137 ergodox_right_led_3_on();
138 } else {
139 ergodox_right_led_3_off();
140 }
141
142}; \ No newline at end of file
diff --git a/users/nstickney/config.h b/users/nstickney/config.h
new file mode 100644
index 000000000..b853038c2
--- /dev/null
+++ b/users/nstickney/config.h
@@ -0,0 +1,63 @@
1/* Copyright 2021 @nstickney
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17// Changes from Bastyl defaults
18#ifdef MASTER_RIGHT
19# undef MASTER_RIGHT
20#endif
21
22// Turn off RGB lights when computer is sleeping
23#define RGBLIGHT_SLEEP
24
25// https://beta.docs.qmk.fm/developing-qmk/qmk-reference/config_options#features-that-can-be-disabled
26#define NO_ACTION_ONESHOT
27#define NO_ACTION_MACRO
28#define NO_ACTION_FUNCTION
29
30// Turn off all possible RGB animations
31#ifdef RGB_ANIMATIONS
32# undef RGB_ANIMATIONS
33#endif
34#ifdef RGB_EFFECT_ALTERNATING
35# undef RGB_EFFECT_ALTERNATING
36#endif
37#ifdef RGB_EFFECT_BREATHING
38# undef RGB_EFFECT_BREATHING
39#endif
40#ifdef RGB_EFFECT_CHRISTMAS
41# undef RGB_EFFECT_CHRISTMAS
42#endif
43#ifdef RGB_EFFECT_KNIGHT
44# undef RGB_EFFECT_KNIGHT
45#endif
46#ifdef RGB_EFFECT_RAINBOW_MOOD
47# undef RGB_EFFECT_RAINBOW_MOOD
48#endif
49#ifdef RGB_EFFECT_RAINBOW_SWIRL
50# undef RGB_EFFECT_RAINBOW_SWIRL
51#endif
52#ifdef RGB_EFFECT_RGB_TEST
53# undef RGB_EFFECT_RGB_TEST
54#endif
55#ifdef RGB_EFFECT_SNAKE
56# undef RGB_EFFECT_SNAKE
57#endif
58#ifdef RGB_EFFECT_STATIC_GRADIENT
59# undef RGB_EFFECT_STATIC_GRADIENT
60#endif
61#ifdef RGB_EFFECT_TWINKLE
62# undef RGB_EFFECT_TWINKLE
63#endif
diff --git a/users/nstickney/nstickney.c b/users/nstickney/nstickney.c
index 3e18e5c83..8222e7289 100644
--- a/users/nstickney/nstickney.c
+++ b/users/nstickney/nstickney.c
@@ -1,34 +1,73 @@
1/* Copyright 2021 @nstickney
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
1#include "nstickney.h" 16#include "nstickney.h"
2 17
3// Tap Dancing 18// Tap Dancing
4void dance_layer (qk_tap_dance_state_t *state, void *user_data) { 19void dance_layer(qk_tap_dance_state_t *state, void *user_data) {
5 switch (state -> count) { 20 switch (state->count) {
6 case 1: tap_code(KC_APP); break; 21 case 1:
7 case 2: layer_invert(NUMP); break; 22 tap_code(KC_APP);
8 case 3: layer_invert(SYMB); break; 23 break;
9 case 4: layer_invert(SYSH); break; 24 case 2:
10 default: break; 25 layer_invert(NUMP);
11 } 26 break;
27 case 3:
28 layer_invert(SYMB);
29 break;
30 default:
31 break;
32 }
12}; 33};
13 34
14void dance_lock_finished (qk_tap_dance_state_t *state, void *user_data) { 35void dance_lock_finished(qk_tap_dance_state_t *state, void *user_data) {
15 switch (state->count) { 36 switch (state->count) {
16 case 1: register_code(KC_LGUI); break; 37 case 1:
17 case 2: register_code(KC_NLCK); break; 38 register_code(KC_LGUI);
18 case 3: register_code(KC_CAPS); break; 39 break;
19 case 4: register_code(KC_SLCK); break; 40 case 2:
20 default: break; 41 register_code(KC_NLCK);
21 } 42 break;
43 case 3:
44 register_code(KC_CAPS);
45 break;
46 case 4:
47 register_code(KC_SLCK);
48 break;
49 default:
50 break;
51 }
22}; 52};
23 53
24void dance_lock_reset (qk_tap_dance_state_t *state, void *user_data) { 54void dance_lock_reset(qk_tap_dance_state_t *state, void *user_data) {
25 switch (state->count) { 55 switch (state->count) {
26 case 1: unregister_code(KC_LGUI); break; 56 case 1:
27 case 2: unregister_code(KC_NLCK); break; 57 unregister_code(KC_LGUI);
28 case 3: register_code(KC_CAPS); break; 58 break;
29 case 4: register_code(KC_SLCK); break; 59 case 2:
30 default: break; 60 register_code(KC_NLCK);
31 } 61 break;
62 case 3:
63 register_code(KC_CAPS);
64 break;
65 case 4:
66 register_code(KC_SLCK);
67 break;
68 default:
69 break;
70 }
32}; 71};
33 72
34qk_tap_dance_action_t tap_dance_actions[] = { 73qk_tap_dance_action_t tap_dance_actions[] = {
@@ -36,9 +75,22 @@ qk_tap_dance_action_t tap_dance_actions[] = {
36 [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer) 75 [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
37}; 76};
38 77
39void eeconfig_init_user (void) { 78// RGB underglow per-layer hue values
40 set_unicode_input_mode(UC_LNX); // Linux 79const uint16_t LAYER_HUE[] = {6, 197, 133, 69};
41 //set_unicode_input_mode(UC_OSX); // Mac OSX 80
42 //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki) 81// Initialize RGB underglow (colorful)
43 //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki) 82void keyboard_post_init_user(void) {
44}; \ No newline at end of file 83 rgblight_enable_noeeprom();
84 rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
85 for (uint16_t i = 0; i < 256; ++i) {
86 rgblight_sethsv_noeeprom((i + LAYER_HUE[BASE]) % 256, 255, 136);
87 wait_ms(8);
88 }
89};
90
91// Turn on RGB underglow according to active layer
92layer_state_t layer_state_set_user(layer_state_t state) {
93 uint8_t user_val = rgblight_get_val();
94 rgblight_sethsv_noeeprom(LAYER_HUE[get_highest_layer(state)], 255, user_val);
95 return state;
96};
diff --git a/users/nstickney/nstickney.h b/users/nstickney/nstickney.h
index d3f5a7c6f..2b596b25e 100644
--- a/users/nstickney/nstickney.h
+++ b/users/nstickney/nstickney.h
@@ -1,20 +1,22 @@
1#include QMK_KEYBOARD_H 1/* Copyright 2021 @nstickney
2 2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
3#pragma once 16#pragma once
4#define USE_SERIAL 17#include QMK_KEYBOARD_H
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 18
17// Make keymaps more clear 19// Specialty keycodes
18#define CC_ESC LCTL_T(KC_ESC) 20#define CC_ESC LCTL_T(KC_ESC)
19#define CC_QUOT RCTL_T(KC_QUOT) 21#define CC_QUOT RCTL_T(KC_QUOT)
20#define AC_SLSH LALT_T(KC_SLSH) 22#define AC_SLSH LALT_T(KC_SLSH)
@@ -22,4 +24,16 @@
22#define FC_BSLS LT(FCTN, KC_BSLS) 24#define FC_BSLS LT(FCTN, KC_BSLS)
23#define FC_MINS LT(FCTN, KC_MINS) 25#define FC_MINS LT(FCTN, KC_MINS)
24 26
25enum tap_dances {LOCKS = 0, LAYERS = 1}; \ No newline at end of file 27// Layers
28enum {
29 BASE, // Base layer
30 SYMB, // Symbols
31 NUMP, // Numpad
32 FCTN // Function
33};
34
35// Tap dance
36enum {
37 LOCKS, // Activate NUM/CAPS/SCROLL lock
38 LAYERS // Activate NUMP and SYMB layers
39};
diff --git a/users/nstickney/readme.md b/users/nstickney/readme.md
new file mode 100644
index 000000000..b62264d68
--- /dev/null
+++ b/users/nstickney/readme.md
@@ -0,0 +1,49 @@
1# nstickney's Ortholinear Layout
2
3 > Familiar layout for users who regularly switch between Bastyl/Iris and standard QWERTY.
4
5## Install
6
7For instructions on building and installing this keymap, see the [docs](https://docs.qmk.fm/#/getting_started_make_guide).
8Below is the command for me; it may be different for you.
9Note that my Iris keyboard has an Elite-C on the left half and a ProMicro on the right half.
10
11- Bastyl: `make hidtech/bastyl:nstickney:dfu`
12- Iris
13 - Elite-C: `make keebio/iris/rev2:nstickney:dfu`
14 - ProMicro: `make keebio/iris/rev2:nstickney:avrdude`
15
16## Usage
17
180. QWERTY `BASE` layer.
19 * `/`, `\`, `[SPACE]`, `[ENTER]`, `-`, and `=` on the thumb clusters.
20 * `[` and `]` added on Bastyl.
21 * `CAPSLOCK` replaced by `ESC`; hold it down for `CTRL`.
22 * `'` can also be held for `CTRL`.
23 * [Space-Cadet Shift](https://beta.docs.qmk.fm/using-qmk/advanced-keycodes/feature_space_cadet) is enabled, so the `SHIFT` keys send `(` and `)` when tapped.
24 * Hold down `/` or `=` for `ALT`.
25 * Hold down `\` or `-` to access the functions layer.
26 * Farthest thumb keys are `GUI` (left) and `MENU` (right).
27 * Tapping `GUI` 2, 3, or 4 times will toggle `NUMLOCK`, `CAPSLOCK`, or `SCROLLLOCK`, respectively.
28 * Tapping `MENU` 2 or 3 times will toggle the `NUMP` and `SYMB` layers, respectively.
290. Unicode-input symbols on `SYMB` layer. Based (loosely) on US-International layout.
300. `NUMP` layer has number pads on each hand. Number pad `7`-`8`-`9` align with QWERTY `7`-`8`-`9` on right hand.
310. Function, arrow, media, and miscellaneous keys on `FCTN` layer.
32 * `F1` through `F10` on `1`-`10`. `F11` is on `GUI` and `F12` is on `MENU`.
33 * Brackets (`[` and `]`) available on `U` and `I`; braces (`{` and `}`) on `O` and `P`.
34 * Arrow keys on `ESDF` and `HJKL`; familiar for both Vim users and FPS gamers.
35 * `W` is `HOME`; `R` is `END`. `T` is `PAGE UP` and `G` is `PAGE DOWN`.
36 * Music controls on lower row of left hand.
37 * Volume and screen brightness on lower row of right hand.
38 * `PRINT SCREEN`, `PAUSE`, `SYSREQ`, `INSERT`, and `CLEAR` also mapped, as intelligently as possible.
39 * `Q` toggles the RGB underglow (which changes color to indicate active layer).
40 * `A` increases RGB underglow brightness (with `SHIFT`, decreases brightness).
41 * `Y` is mapped to [`KC_LOCK`](https://beta.docs.qmk.fm/using-qmk/software-features/feature_key_lock).
42
43## Contribute
44
45If 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).
46
47## License
48
49Copyright &copy; 2016-2021 @nstickney. Released under [GPL-2.0](/LICENSE).
diff --git a/users/nstickney/rules.mk b/users/nstickney/rules.mk
index f52371c79..0f189e8a4 100644
--- a/users/nstickney/rules.mk
+++ b/users/nstickney/rules.mk
@@ -1,4 +1,37 @@
1# Copyright 2021 @nstickney
2#
3# This program is free software: you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation, either version 2 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program. If not, see <http://www.gnu.org/licenses/>.
1SRC += nstickney.c 15SRC += nstickney.c
2 16
17KEY_LOCK_ENABLE = yes
18RGBLIGHT_ENABLE = yes
3TAP_DANCE_ENABLE = yes 19TAP_DANCE_ENABLE = yes
4UNICODE_ENABLE = yes \ No newline at end of file 20UNICODE_ENABLE = no
21UNICODEMAP_ENABLE = yes
22UCIS_ENABLE = no
23
24# https://github.com/qmk/qmk_firmware/issues/3224#issuecomment-399769416
25LTO_ENABLE = yes
26
27# https://beta.docs.qmk.fm/developing-qmk/qmk-reference/getting_started_make_guide#rules-mk-options
28API_SYSEX_ENABLE = no
29AUDIO_ENABLE = no
30BOOTMAGIC_ENABLE = no
31COMMAND_ENABLE = no
32CONSOLE_ENABLE = no
33MOUSEKEY_ENABLE = no
34MIDI_ENABLE = no
35NKRO_ENABLE = no
36SLEEP_LED_ENABLE = no
37VARIABLE_TRACE = no
diff --git a/users/nstickney/unicodemap.h b/users/nstickney/unicodemap.h
new file mode 100644
index 000000000..3b7d9e305
--- /dev/null
+++ b/users/nstickney/unicodemap.h
@@ -0,0 +1,106 @@
1/* Copyright 2021 @nstickney
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18enum {
19 // Used on base
20
21 // Used on US-International
22 IEX, SS2, SS3, CUR, EUR, V14, V12, V34, LSQ, RSQ, YEN, MLT,
23 A_D, A_R, E_A, REG, THR, U_D, U_A, I_A, O_A, O_D, LDA, RDA, NOT,
24 A_A, S_S, ETH, EMD, OEL, O_S, PLC, ACT,
25 AEL, CPR, N_T, MCR, C_C, IQM,
26
27 // Used on US-International with Shift
28 SS1, GBP, DIV,
29 AXD, ACR, ECA, UCD, UCA, ICA, OCA, OCD, BKB,
30 ACA, SEC, ETC, OEC, OCS, DEG, DIS,
31 AEC, CNT, NCT, CCC,
32
33 // Added to US-International
34
35 // Added to US-International with Shift
36 LDQ, RDQ,
37 CPL
38};
39
40const uint32_t PROGMEM unicode_map[] = {
41 [IEX] = 0xA1, // ¡
42 [SS2] = 0xB2, // ²
43 [SS3] = 0xB3, // ³
44 [CUR] = 0xA4, // ¤
45 [EUR] = 0x20AC, // €
46 [V14] = 0xBC, // ¼
47 [V12] = 0xBD, // ½
48 [V34] = 0xBE, // ¾
49 [LSQ] = 0x2018, // ‘
50 [RSQ] = 0x2019, // ’
51 [YEN] = 0xA5, // ¥
52 [MLT] = 0xD7, // ×
53 [A_D] = 0xE4, // ä
54 [A_R] = 0xE5, // å
55 [E_A] = 0xE9, // é
56 [REG] = 0xAE, // ®
57 [THR] = 0xFE, // þ
58 [U_D] = 0xFC, // ü
59 [U_A] = 0xFA, // ú
60 [I_A] = 0xED, // í
61 [O_A] = 0xF3, // ó
62 [O_D] = 0xF6, // ö
63 [LDA] = 0xAB, // «
64 [RDA] = 0xBB, // »
65 [NOT] = 0xAC, // ¬
66 [A_A] = 0xE1, // á
67 [S_S] = 0xDF, // ß
68 [ETH] = 0xF0, // ð
69 [EMD] = 0x2014, // —
70 [OEL] = 0x153, // œ
71 [O_S] = 0xF8, // ø
72 [PLC] = 0xB6, // ¶
73 [ACT] = 0xB4, // ´
74 [AEL] = 0xE6, // æ
75 [CPR] = 0xA9, // ©
76 [N_T] = 0xF1, // ñ
77 [MCR] = 0xB5, // µ
78 [C_C] = 0xE7, // ç
79 [IQM] = 0xBF, // ¿
80 [SS1] = 0xB9, // ¹
81 [GBP] = 0xA3, // £
82 [DIV] = 0xF7, // ÷
83 [AXD] = 0xC4, // Ä
84 [ACR] = 0xC5, // Å
85 [ECA] = 0xC9, // É
86 [UCD] = 0xDC, // Ü
87 [UCA] = 0xDA, // Ú
88 [ICA] = 0xCD, // Í
89 [OCA] = 0xD3, // Ó
90 [OCD] = 0xD6, // Ö
91 [BKB] = 0xA6, // ¦
92 [ACA] = 0xC1, // Á
93 [SEC] = 0xA7, // §
94 [ETC] = 0xD0, // Ð
95 [OEC] = 0x152, // Œ
96 [OCS] = 0xD8, // Ø
97 [DEG] = 0xB0, // °
98 [DIS] = 0xA8, // ¨
99 [AEC] = 0xC6, // Æ
100 [CNT] = 0xA2, // ¢
101 [NCT] = 0xD1, // Ñ
102 [CCC] = 0xC7, // Ç
103 [LDQ] = 0x201C, // “
104 [RDQ] = 0x201D, // ”
105 [CPL] = 0x1F12F // 🄯
106};