summaryrefslogtreecommitdiffstats
path: root/layouts/community/ergodox
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/community/ergodox')
-rw-r--r--layouts/community/ergodox/drashna/keymap.c16
-rw-r--r--layouts/community/ergodox/drashna_glow/README.md1
-rw-r--r--layouts/community/ergodox/drashna_glow/config.h11
-rw-r--r--layouts/community/ergodox/drashna_glow/keymap.c65
-rw-r--r--layouts/community/ergodox/dvorak_programmer_swe/keymap.c29
-rw-r--r--layouts/community/ergodox/dvorak_programmer_swe/readme.md31
-rw-r--r--layouts/community/ergodox/familiar/README.md69
-rw-r--r--layouts/community/ergodox/familiar/keymap.c281
-rw-r--r--layouts/community/ergodox/nstickney/keymap.c213
-rw-r--r--layouts/community/ergodox/nstickney/rules.mk (renamed from layouts/community/ergodox/familiar/rules.mk)0
10 files changed, 277 insertions, 439 deletions
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
index e0100de8f..428706e2d 100644
--- a/layouts/community/ergodox/drashna/keymap.c
+++ b/layouts/community/ergodox/drashna/keymap.c
@@ -360,15 +360,15 @@ void matrix_scan_keymap(void) { // runs frequently to update info
// Since we're not using the LEDs here for layer indication anymore,
// then lets use them for modifier indicators. Shame we don't have 4...
// Also, no "else", since we want to know each, independently.
- if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
+ if ( ( modifiers | one_shot ) & MOD_MASK_SHIFT || led_usb_state & (1<<USB_LED_CAPS_LOCK) ) {
ergodox_right_led_2_on();
ergodox_right_led_2_set( 50 );
}
- if (modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) {
+ if ( ( modifiers | one_shot ) & MOD_MASK_CTRL) {
ergodox_right_led_1_on();
ergodox_right_led_1_set( 10 );
}
- if (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
+ if ( ( modifiers | one_shot ) & MOD_MASK_ALT) {
ergodox_right_led_3_on();
ergodox_right_led_3_set( 10 );
}
@@ -414,7 +414,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
}
void rgb_matrix_indicators_user(void) {
- if (g_suspend_state || !rgb_matrix_config.enable || !userspace_config.rgb_layer_change) return;
+ if (g_suspend_state || !rgb_matrix_config.enable || !userspace_config.rgb_layer_change) { return; }
switch (biton32(layer_state)) {
case _MODS:
@@ -464,20 +464,20 @@ void rgb_matrix_indicators_user(void) {
}
}
#if 0
- if (this_mod & MODS_SHIFT_MASK || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MODS_SHIFT_MASK) {
+ if (this_mod & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MOD_MASK_SHIFT) {
rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
}
- if (this_mod & MODS_CTRL_MASK || this_osm & MODS_CTRL_MASK) {
+ if (this_mod & MOD_MASK_CTRL || this_osm & MOD_MASK_CTRL) {
rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);
}
- if (this_mod & MODS_GUI_MASK || this_osm & MODS_GUI_MASK) {
+ if (this_mod & MOD_MASK_GUI || this_osm & MOD_MASK_GUI) {
rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
}
- if (this_mod & MODS_ALT_MASK || this_osm & MODS_ALT_MASK) {
+ if (this_mod & MOD_MASK_ALT || this_osm & MOD_MASK_ALT) {
rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
}
#endif
diff --git a/layouts/community/ergodox/drashna_glow/README.md b/layouts/community/ergodox/drashna_glow/README.md
deleted file mode 100644
index 7d625a258..000000000
--- a/layouts/community/ergodox/drashna_glow/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Note: This board will not flash if the "g_rgb_leds" const is not set to weak in the ergodox_ez.c file
diff --git a/layouts/community/ergodox/drashna_glow/config.h b/layouts/community/ergodox/drashna_glow/config.h
index 197acbc4a..cdca5ba4b 100644
--- a/layouts/community/ergodox/drashna_glow/config.h
+++ b/layouts/community/ergodox/drashna_glow/config.h
@@ -8,4 +8,15 @@
#undef DEBOUNCE
#define DEBOUNCE 5
+#ifdef RGB_MATRIX_ENABLE
// #define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
+// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
+// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+#define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended
+// #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
+// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
+// #define EECONFIG_RGB_MATRIX (uint32_t *)16
+#endif
+
+#undef DEBOUNCE
+#define DEBOUNCE 1
diff --git a/layouts/community/ergodox/drashna_glow/keymap.c b/layouts/community/ergodox/drashna_glow/keymap.c
index f2fb66545..7d4bdbec5 100644
--- a/layouts/community/ergodox/drashna_glow/keymap.c
+++ b/layouts/community/ergodox/drashna_glow/keymap.c
@@ -1,67 +1,2 @@
/* placeholder file */
#include QMK_KEYBOARD_H
-
-const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
-
- /*{row | col << 4}
- | {x=0..224, y=0..64}
- | | modifier
- | | | */
- {{0|(0<<4)}, {24.9*5, 16*0}, 0}, // LED 1 on right
- {{0|(1<<4)}, {24.9*6, 16*0}, 0}, // LED 2
- {{0|(2<<4)}, {24.9*7, 16*0}, 0}, // LED 3
- {{0|(3<<4)}, {24.9*8, 16*0}, 0}, // LED 4
- {{0|(4<<4)}, {24.9*9, 16*0}, 0}, // LED 5
-
- {{1|(5<<4)}, {24.9*5, 16*1}, 0}, // LED 6
- {{1|(6<<4)}, {24.9*6, 16*1}, 0}, // LED 7
- {{1|(7<<4)}, {24.9*7, 16*1}, 0}, // LED 8
- {{1|(8<<4)}, {24.9*8, 16*1}, 0}, // LED 9
- {{1|(9<<4)}, {24.9*9, 16*1}, 0}, // LED 10
-
- {{2|(5<<4)}, {24.9*5, 16*2}, 0}, // LED 11
- {{2|(6<<4)}, {24.9*6, 16*2}, 0}, // LED 12
- {{2|(7<<4)}, {24.9*7, 16*2}, 0}, // LED 13
- {{2|(8<<4)}, {24.9*8, 16*2}, 0}, // LED 14
- {{2|(9<<4)}, {24.9*9, 16*2}, 0}, // LED 15
-
- {{3|(5<<4)}, {24.9*5, 16*2}, 0}, // LED 16
- {{3|(6<<4)}, {24.9*6, 16*2}, 0}, // LED 17
- {{3|(7<<4)}, {24.9*7, 16*2}, 0}, // LED 18
- {{3|(8<<4)}, {24.9*8, 16*2}, 0}, // LED 19
- {{3|(9<<4)}, {24.9*9, 16*2}, 0}, // LED 20
-
- {{4|(6<<4)}, {24.9*6, 16*2}, 1}, // LED 21
- {{4|(7<<4)}, {24.9*7, 16*2}, 1}, // LED 22
- {{4|(8<<4)}, {24.9*8, 16*2}, 1}, // LED 23
- {{4|(9<<4)}, {24.9*9, 16*2}, 1}, // LED 24
-
- {{0|(0<<4)}, {24.9*4, 16*0}, 0}, // LED 1 on left
- {{0|(1<<4)}, {24.9*3, 16*0}, 0}, // LED 2
- {{0|(2<<4)}, {24.9*2, 16*0}, 0}, // LED 3
- {{0|(3<<4)}, {24.9*1, 16*0}, 0}, // LED 4
- {{0|(4<<4)}, {24.9*0, 16*0}, 0}, // LED 5
-
- {{1|(5<<4)}, {24.9*4, 16*1}, 0}, // LED 6
- {{1|(6<<4)}, {24.9*3, 16*1}, 0}, // LED 7
- {{1|(7<<4)}, {24.9*2, 16*1}, 0}, // LED 8
- {{1|(8<<4)}, {24.9*1, 16*1}, 0}, // LED 9
- {{1|(9<<4)}, {24.9*0, 16*1}, 0}, // LED 10
-
- {{2|(5<<4)}, {24.9*4, 16*2}, 0}, // LED 11
- {{2|(6<<4)}, {24.9*3, 16*2}, 0}, // LED 12
- {{2|(7<<4)}, {24.9*2, 16*2}, 0}, // LED 13
- {{2|(8<<4)}, {24.9*1, 16*2}, 0}, // LED 14
- {{2|(9<<4)}, {24.9*0, 16*2}, 0}, // LED 15
-
- {{3|(5<<4)}, {24.9*4, 16*2}, 0}, // LED 16
- {{3|(6<<4)}, {24.9*3, 16*2}, 0}, // LED 17
- {{3|(7<<4)}, {24.9*2, 16*2}, 0}, // LED 18
- {{3|(8<<4)}, {24.9*1, 16*2}, 0}, // LED 19
- {{3|(9<<4)}, {24.9*0, 16*2}, 0}, // LED 20
-
- {{4|(6<<4)}, {24.9*3, 16*2}, 1}, // LED 21
- {{4|(7<<4)}, {24.9*2, 16*2}, 1}, // LED 22
- {{4|(8<<4)}, {24.9*1, 16*2}, 1}, // LED 23
- {{4|(9<<4)}, {24.9*0, 16*2}, 1}, // LED 24
-};
diff --git a/layouts/community/ergodox/dvorak_programmer_swe/keymap.c b/layouts/community/ergodox/dvorak_programmer_swe/keymap.c
index 43efc763d..41beeb7e5 100644
--- a/layouts/community/ergodox/dvorak_programmer_swe/keymap.c
+++ b/layouts/community/ergodox/dvorak_programmer_swe/keymap.c
@@ -2,8 +2,9 @@
#include "debug.h"
#include "action_layer.h"
#include "version.h"
-#include "keymap_nordic.h"
-#include "keymap_norwegian.h"
+#include "keymap_swedish.h"
+//#include "keymap_nordic.h"
+//#include "keymap_norwegian.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
@@ -44,10 +45,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| LT2 | | LT2 |------+------+------+------+------+--------|
* | LShift | Ö | Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | CTRL | L1 |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
+ * | CTRL | L1 |Alt | Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
+ * | App | LGui | | AltShf|Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Backsp|------| |------| Tab |Enter |
@@ -62,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_DELT, NO_MINS, KC_COMM, KC_DOT, KC_P, KC_Y, TG(SYMB),
KC_LGUI, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(MDIA),
- CTL_T(KC_NO), MO(SYMB), LALT(KC_LSFT), KC_LEFT,KC_RGHT,
+ CTL_T(KC_NO), MO(SYMB), KC_LALT, KC_LEFT,KC_RGHT,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
@@ -72,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_D, KC_H, KC_T, KC_N, KC_S, NO_AE,
TG(MDIA),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT,
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
+ LALT(KC_LSFT), CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_TAB, KC_ENT
),
@@ -85,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | ( | ) | \ | / |------| |------| > | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | UND | CUT | COP | PAS | | | | ? | 1 | 2 | 3 | % | |
+ * | | ~ | UND | CUT | COP | PAS | | | | ? | 1 | 2 | 3 | % | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | . | 0 | = | | |
* `----------------------------------' `----------------------------------'
@@ -103,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS, NO_AT, ALGR(KC_7), ALGR(KC_0), NO_LBRC, NO_RBRC, KC_TRNS,
KC_TRNS, KC_HASH, NO_LPRN, NO_RPRN, ALGR(KC_MINS), NO_SLSH,
- KC_TRNS, KC_TRNS, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_TRNS,
+ KC_TRNS, NO_TILD, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
@@ -165,11 +166,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Save |Build |Debug | | | | | | bool | int |string| dec | Todo | |
+ * | | Save |Build |Debug |PrtScr| $ | | | | bool | int |string| dec | Todo | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| priv | publ |shared| prot | | |
+ * | | ´ | ' | | | | £ |------| |------| priv | publ |shared| prot | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | const| dim |return|nothin| | |
+ * | | | | | | £ | | | | const| dim |return|nothin| | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
@@ -184,9 +185,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// MEDIA AND MOUSE
[DEVL] = LAYOUT_ergodox(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, M(MACRO_SAVE), M(MACRO_BUILD), M(MACRO_DEBUG), KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, M(MACRO_SAVE), M(MACRO_BUILD), M(MACRO_DEBUG), KC_PSCR, ALGR(KC_4), KC_TRNS,
+ KC_TRNS, NO_ACUT, NO_APOS, NO_PIPE, KC_TRNS, ALGR(KC_3),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ALGR(KC_5), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
diff --git a/layouts/community/ergodox/dvorak_programmer_swe/readme.md b/layouts/community/ergodox/dvorak_programmer_swe/readme.md
index 552fa0e3a..3bedf50d7 100644
--- a/layouts/community/ergodox/dvorak_programmer_swe/readme.md
+++ b/layouts/community/ergodox/dvorak_programmer_swe/readme.md
@@ -13,14 +13,43 @@ TODO:
Known issues:
* Keymap 2 modifier has not gotten its place yet..
-* Print screen, where?
## Changelog
+* 2019-03-11
+ * Added currency $, £, € to keymap 3
+ * Added pipe character to keymap 3
+ * Added the acute accent character to keymap 3
+
+* 2019-03-08
+ * Switched position on Alt and Alt-shift
+ * Added tilde character to symbol layer
+ * Added Print Screen to keymap 3
+ * Added ' (NO_APOS) to keymap 3
+ * Added how to install help in this readme
* 2017-05-16
* Initial release
+
+# How to install - reminder
+0. Docs: https://docs.qmk.fm/#/newbs
+1. Download flashing tool - teensy (from ergodox-ez visual designer)
+2. Setup build environment: https://docs.qmk.fm/#/newbs_getting_started
+
+QUICK HOWTO WSL: (this is not supported anymore it seems, why?)
+The Toolchain setup is done through the Windows Subsystem for Linux, and the process is fully automated. If you want to do everything manually, there are no other instructions than the scripts themselves, but you can always open issues and ask for more information.
+Open "Bash On Ubuntu On Windows" from the start menu.
+Go to the directory where you cloned qmk_firmware. Note that the paths start with /mnt/ in the WSL, so you have to write for example cd /mnt/c/path/to/qmk_firmware.
+Run util/wsl_install.sh and follow the on-screen instructions.
+Close the Bash command window, and re-open it.
+You are ready to compile and flash the firmware!
+
+3. Build the firmware with:
+Run the following in the root qmk folder:
+make KEYBOARD=ergodox_ez KEYMAP=dvorak_programmer_swe
+
+
# Author
Christian Westerlund
cwesterlund @ github
diff --git a/layouts/community/ergodox/familiar/README.md b/layouts/community/ergodox/familiar/README.md
deleted file mode 100644
index 8d68af21a..000000000
--- a/layouts/community/ergodox/familiar/README.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# ErgoDox Familiar Layout
-Familiar layout for those who regularly switch back and forth from ErgoDox to "normal" QWERTY.
-
-[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](../../../../license_GPLv3.md) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme)
-
-## Table of Contents
-
-- [Background](#background)
-- [Install](#install)
-- [Usage](#usage)
- - [Layers](#layers)
-- [Contribute](#contribute)
- - [Issues](#issues)
-- [License](#license)
-
-## Background
-
-This layout is built to be as familiar as possible for users coming directly from a default (QWERTY US) keyboard, while gaining as much advantage as possible from the ErgoDox and QMK featureset. I use an ErgoDoxEZ at home, but I don't have a regular office (CS grad student) so I regularly use either my laptop or a default-setup lab computer; I context switch daily so this layout is meant to reduce the mental overhead as much as possible.
-
-The default ErgoDoxEZ layout is probably more optimized as a solo daily driver - as are a lot of the others available keymaps. The focus of this layout is to get as much from the 'Dox as possible without overly disrupting long-established muscle memory.
-
-Key features of the familiar layout:
-1. QWERTY default layout.
-1. International symbols layer, mapped in the US-International layout default positions, through [UCIS](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable).
-1. Numpad layer on right hand.
-1. Thumb cluster holds spacebar and access to secondary layers.
-1. Function-layer arrow keys in both the first-person-shooter (actually ESDF instead of WASD) and vim (HJKL) locations.
-
-## Install
-
-If you are on Windows or Mac, choose the proper line in [`keymap.c`](keymap.c) for [unicode/international character support](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable) (starts at line 253).
-```c
-void matrix_init_user(void) {
- set_unicode_input_mode(UC_LNX); // Linux
- //set_unicode_input_mode(UC_OSX); // Mac OSX
- //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
- //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
-};
-```
-
-For instructions on building and installing this keymap, [go to the wiki](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ergodox#build-dependencies). Below is the command for me; it may be different for you.
-```sh
-$ make ergodox-ez-familiar-teensy
-```
-
-## Usage
-
-[![Familiar Layout](http://i.imgur.com/6nLN9UT.png)](https://gist.github.com/nstickney/13508a9f99cff381d58b7be6f7dcc644)
-
-### Layers
-1. Base Layer: QWERTY, with arrow keys at bottom right.
-1. UCIS Layer: US-International symbols layer, plus —. Accessed by toggling the `SYMB` layer using the UCIS key (bottom of left thumb cluster).
-1. UCIS-Shifted Layer: Making shift work for UCIS characters. An ugly workaround. Any ideas? Accessed by holding shift while the `SYMB` layer is active (toggles the `CSYM` layer).
-1. Numpad Layer: Right hand number pad. Accessed by toggling the `NUMP` layer using the NUMP key (bottom of right thumb cluster).
-1. Function Layer: F1-F12, arrows on ESDF and HJKL, media player controls. Accessed by holding either FN key (center key of each thumb cluster), which toggles the `ARRW` layer. I know, I need to work on my naming conventions.
-
-## Contribute
-
-[Contributor Covenant](http://contributor-covenant.org/)
-
-I'm terrible at this; I have no background in human-computer interaction, kinesiology, or keyboard-ology. Please send comments/issues/pull requests/angry tweets/etc. If you think there is a better way to take advantage of the ErgoDox/QMK comination without straying far from 84/101-key QWERTY, I want to know it.
-
-### Issues
-1. The `CSYM` layer is an ugly workaround. I should write a function for doing different things in the `SYMB` layer depending on whether SHIFT is being held. Or something. Ideas?
-1. Right now, the thumb cluster function keys double as slash and whack... this really isnt a great solution.
-1. `MENU` and `LEAD` are useless, at the moment.
-
-## License
-QMK is licensed ([mostly](https://github.com/qmk/qmk_firmware/issues/1038)) under the [GPLv2](../../../../license_GPLv2.md). Accordingly, to whatever extent applicable, this keymap is licensed under the [GPLv3](../../../../license_GPLv3.md).
diff --git a/layouts/community/ergodox/familiar/keymap.c b/layouts/community/ergodox/familiar/keymap.c
deleted file mode 100644
index b359a91d3..000000000
--- a/layouts/community/ergodox/familiar/keymap.c
+++ /dev/null
@@ -1,281 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-
-// Layers
-#define BASE 0 // default layer
-#define SYMB 1 // international symbols
-#define CSYM 2 // international symbols shifted
-#define NUMP 3 // numpad
-#define ARRW 4 // function, media, arrow keys
-
-// Tap Dancing
-void dance_lock (qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) { // Press once for NUMLOCK
- register_code (KC_NLCK);
- unregister_code (KC_NLCK);
- } else if (state->count == 2) { // Press twice for CAPSLOCK
- register_code (KC_CAPS);
- unregister_code (KC_CAPS);
- } else if (state->count == 3) { //Press thrice for SCROLLLOCK
- register_code (KC_SLCK);
- unregister_code (KC_SLCK);
- }
-}
-enum {LOCKS = 0};
-qk_tap_dance_action_t tap_dance_actions[] = {
- [LOCKS] = ACTION_TAP_DANCE_FN(dance_lock)
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-/* layer 0 : default
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ' | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER |
- * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------|
- * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCTRL | LGUI | MENU | LEAD | LALT | |[/RALT|]/RCTL| LEFT | DOWN | RIGHT |
- * `------------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
- * |PRTSCR| ESC | | VOL- | VOL+ |
- * ,------|------|------| |------+------+------.
- * | |SLASH/| LOCKS| | MUTE |WHACK/| |
- * | SPC | MO(4)|------| |------|MO(4) | SPC |
- * | | | TO(1)| |TO(3) | | |
- * `--------------------' `--------------------'
- */
-[BASE] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
- KC_QUOT, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END,
- KC_LCTL, KC_LGUI, KC_MENU, KC_LEAD, KC_LALT,
- KC_PSCR, KC_ESC,
- TD(LOCKS),
- KC_SPC, LT(ARRW, KC_SLSH), TG(SYMB),
- // right hand
- KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER,
- KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC,
- MT(MOD_RALT, KC_LBRC), MT(MOD_RCTL, KC_RBRC), KC_LEFT, KC_DOWN, KC_RGHT,
- KC_VOLD, KC_VOLU,
- KC_MUTE,
- TG(NUMP), LT(ARRW, KC_BSLS), KC_SPC
- ),
-
-/* layer 1: International symbols, etc
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | ¡ | ² | ³ | ¤ | € | ¼ | | ½ | ¾ | ‘ | ’ | ¥ | × | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ä | å | é | ® | þ | | | | ü | ú | í | ó | ö | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ´ | á | ß | ð | | |------| |------| | | | ø | ¶ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |MO(CSYM)| æ | ¿ | © | ¬ | | | | | ñ | µ | ç | | |MO(CSYM)|
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | « | » | | | |
- * `------------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[SYMB] = LAYOUT_ergodox(
- // left hand
- _______, UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), UC(0x00BC),
- _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______,
- UC(0x00B4), UC(0x00E1), UC(0x00DF), UC(0x00F0), _______, _______,
- MO(CSYM), UC(0x00E6), UC(0x00BF), _______, UC(0x00AC), UC(0x00A9), _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
- // right hand
- UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), UC(0x00A5), UC(0x00D7), _______,
- _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______,
- _______, _______, _______, UC(0x00F8), UC(0x00B6), _______,
- _______, UC(0x00F1), UC(0x00B5), UC(0x00E7), _______, _______, MO(CSYM),
- UC(0x00AB), UC(0x00BB), _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______
- ),
-
-/* layer 2 : international symbols, shifted
- * This layer is an ugly workaround; it pretends that SHIFT still works normally on keys
- * which don't produce an "upper case" or "shifted" international symobol.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | ¹ | | | £ | | | | | | | | — | ÷ | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Ä | Å | É | | Þ | | | | Ü | Ú | Í | Ó | Ö | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ¨ | Á | § | Ð | | |------| |------| | | | Ø | ° | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Æ | | ¢ | ¦ | | | | | Ñ | | Ç | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | “ | ” | | | |
- * `------------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[CSYM] = LAYOUT_ergodox(
- // left hand
- _______, UC(0x00B9), _______, _______, UC(0x00A3), _______, _______,
- _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), S(KC_R), UC(0x00DE), _______,
- UC(0x00A8), UC(0x00C1), UC(0x00A7), UC(0x00D0), S(KC_F), S(KC_G),
- _______, UC(0x00C6), UC(0x00A6), UC(0x00A2), S(KC_V), S(KC_B), _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, _______, _______, _______, UC(0x2014), UC(0x00F7), _______,
- _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______,
- S(KC_H), S(KC_J), S(KC_K), UC(0x00D8), UC(0x00B0), _______,
- _______, UC(0x00D1), _______, UC(0x00C7), S(KC_DOT), _______, _______,
- UC(0x201C), UC(0x201D), _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______
- ),
-
-/* layer 3: numberpad
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | ( | ) | / | * | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | 7 | 8 | 9 | - | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | 1 | 2 | 3 | = | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |0/RALT|./RCTL| , | ENTER| |
- * `------------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[NUMP] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, _______, S(KC_9), S(KC_0), KC_PSLS, KC_PAST, _______,
- _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
- _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
- _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, _______,
- MT(MOD_RALT, KC_KP_0), MT(MOD_RCTL, KC_KP_DOT),KC_PCMM, KC_PENT, _______,
- _______, _______,
- _______,
- _______, _______, _______
- ),
-
-/* layer 4 : functions and arrows
- * This layer is at the top so that the functions still work no matter what layers are active.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | UP | | | | | | | | | | | INSERT |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | HOME | PGDN | END |
- * `------------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
- * | SYSRQ| PAUSE| | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[ARRW] = LAYOUT_ergodox(
- // left hand
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- _______, _______, _______, KC_UP, _______, _______, _______,
- _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
- _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, _______, _______,
- _______, _______, _______, _______, _______,
- KC_SYSREQ, KC_PAUSE,
- _______,
- _______, _______, _______,
- // right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
- _______, _______, _______, _______, _______, _______, KC_INS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, KC_HOME, KC_PGDN, KC_END,
- _______, _______,
- _______,
- _______, _______, _______
- ),
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- set_unicode_input_mode(UC_LNX); // Linux
- //set_unicode_input_mode(UC_OSX); // Mac OSX
- //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
- //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = biton32(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case SYMB:
- case CSYM:
- ergodox_right_led_1_on();
- break;
- case NUMP:
- ergodox_right_led_2_on();
- break;
- case ARRW:
- ergodox_right_led_3_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/nstickney/keymap.c b/layouts/community/ergodox/nstickney/keymap.c
new file mode 100644
index 000000000..dc83c2f4d
--- /dev/null
+++ b/layouts/community/ergodox/nstickney/keymap.c
@@ -0,0 +1,213 @@
+#include QMK_KEYBOARD_H
+
+/*
+ * This keymap simulates the key limitations of an Iris on an ErgoDox. See the
+ * matching iris layout (/keyboards/iris/keymaps/nstickney) for further
+ * information.
+ */
+
+// Layers
+#define BASE 0 // Base layer
+#define SYMB 1 // Symbols
+#define SYSH 2 // Symbols, shifted
+#define NUMP 4 // Numpad
+#define FCTN 8 // Function
+
+// Tap Dancing
+void dance_lock (qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count){
+ case 1: // Press once for LGUI
+ tap_code(KC_LGUI);
+ break;
+ case 2: // Press twice for NUMLOCK
+ tap_code(KC_NLCK);
+ break;
+ case 3: // Press thrice for CAPSLOCK
+ tap_code(KC_CAPS);
+ break;
+ case 4: // Press four times for SCROLLOCK
+ tap_code(KC_SLCK);
+ break;
+ default:
+ break;
+ }
+};
+
+void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
+ switch (state -> count) {
+ case 1: // Press once for MENU
+ tap_code(KC_APP);
+ break;
+ case 2: // Press twice for NUMPAD
+ layer_invert(NUMP);
+ break;
+ case 3: // Press thrice for SYMBOLS
+ layer_invert(SYMB);
+ break;
+ case 4: // Press four times for SYMBOLS, SHIFTED
+ layer_invert(SYSH);
+ break;
+ default:
+ break;
+ }
+};
+
+enum tap_dances {LOCKS = 0, LAYERS = 1};
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [LOCKS] = ACTION_TAP_DANCE_FN(dance_lock),
+ [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
+};
+
+// Make layering more clear
+enum custom_keycodes {
+ __________ = KC_TRNS,
+ XXX = KC_NO,
+ CC_ESC = LCTL_T(KC_ESC),
+ CC_QUOT = RCTL_T(KC_QUOT),
+ AC_SLSH = LALT_T(KC_SLSH),
+ AC_EQL = RALT_T(KC_EQL),
+ FC_BSLS = LT(FCTN, KC_BSLS),
+ FC_MINS = LT(FCTN, KC_MINS),
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_ergodox(
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, XXX,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXX,
+ CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, XXX,
+ XXX, XXX, XXX, XXX, AC_SLSH,
+ TD(LOCKS), XXX,
+ XXX,
+ FC_BSLS, KC_SPC, XXX,
+ // right hand
+ XXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ XXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
+ XXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
+ AC_EQL, XXX, XXX, XXX, XXX,
+ XXX, TD(LAYERS),
+ XXX,
+ XXX, KC_ENT, FC_MINS
+ ),
+
+ [SYMB] = LAYOUT_ergodox(
+ // left hand
+ UC(0x00EF), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), __________,
+ __________, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), __________,
+ __________, UC(0x00E1), UC(0x00DF), UC(0x00F0), UC(0x00EC), UC(0x00ED),
+ __________, UC(0x00E6), UC(0x00E8), UC(0x00A9), UC(0x00EA), UC(0x00EB), __________,
+ __________, __________, __________, __________, UC(0x00BF),
+ __________, __________,
+ __________,
+ UC(0x00AC), __________, __________,
+ // right hand
+ __________, UC(0x00BC), UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), __________,
+ __________, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), __________,
+ UC(0x00EE), UC(0x00E0), UC(0x00E2), UC(0x00F8), UC(0x00B6), UC(0x00B4),
+ __________, UC(0x00F1), UC(0x00FD), UC(0x00E7), UC(0x00F4), UC(0x00BF), __________,
+ UC(0x00D7), __________, __________, __________, __________,
+ __________, __________,
+ __________,
+ __________, __________, UC(0x00B1)
+ ),
+
+ [SYSH] = LAYOUT_ergodox(
+ // left hand
+ UC(0x00CF), UC(0x00B9), UC(0x2200), UC(0x2201), UC(0x00A3), UC(0x00A5), __________,
+ __________, UC(0x00C4), UC(0x00C5), UC(0x00C9), UC(0x2122), UC(0x00DE), __________,
+ __________, UC(0x00C1), UC(0x00A7), UC(0x00D0), UC(0x00CC), UC(0x00CD),
+ __________, UC(0x00C6), UC(0x00C8), UC(0x00A2), UC(0x00CA), UC(0x00CB), __________,
+ __________, __________, __________, __________, UC(0x203D),
+ __________, __________,
+ __________,
+ UC(0x00A6), __________, __________,
+ // right hand
+ __________, UC(0x00B5), UC(0x00AB), UC(0x00BB), UC(0x201C), UC(0x201D), __________,
+ __________, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), __________,
+ UC(0x00CE), UC(0x00C1), UC(0x00C2), UC(0x00D8), UC(0x00B0), UC(0x00A8),
+ __________, UC(0x00D1), UC(0x00DD), UC(0x00C7), UC(0x00D4), UC(0x203D), __________,
+ UC(0x00F7), __________, __________, __________, __________,
+ __________, __________,
+ __________,
+ __________, __________, UC(0x00AA)
+ ),
+
+ [NUMP] = LAYOUT_ergodox(
+ // left hand
+ __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________,
+ __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________,
+ __________, __________, KC_P1, KC_P2, KC_P3, KC_PMNS,
+ __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________,
+ __________, __________, __________, __________, __________,
+ __________, __________,
+ __________,
+ __________, __________, __________,
+ // right hand
+ __________, __________, KC_P7, KC_P8, KC_P9, KC_PSLS, __________,
+ __________, __________, KC_P4, KC_P5, KC_P6, KC_PAST, __________,
+ __________, KC_P1, KC_P2, KC_P3, KC_PMNS, __________,
+ __________, __________, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, __________,
+ __________, __________, __________, __________, __________,
+ __________, __________,
+ __________,
+ __________, KC_PENT, __________
+ ),
+
+ [FCTN] = LAYOUT_ergodox(
+ // left hand
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, __________,
+ KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, __________,
+ KC_PAUS, __________, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
+ __________, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, __________,
+ __________, __________, __________, __________, __________,
+ KC_F11, __________,
+ __________,
+ __________, __________, __________,
+ // right hand
+ __________, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYSREQ,
+ __________, UC(0x2014), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
+ __________, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, __________,
+ __________, __________, __________, __________, __________,
+ __________, KC_F12,
+ __________,
+ __________, __________, __________
+ ),
+};
+
+void eeconfig_init_user(void) {
+ set_unicode_input_mode(UC_LNX); // Linux
+ //set_unicode_input_mode(UC_OSX); // Mac OSX
+ //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
+ //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+ ergodox_board_led_off();
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+ if (IS_LAYER_ON(SYMB) || IS_LAYER_ON(SYSH)) {
+ ergodox_right_led_1_on();
+ } else {
+ ergodox_right_led_1_off();
+ }
+
+ if (IS_LAYER_ON(NUMP)) {
+ ergodox_right_led_2_on();
+ } else {
+ ergodox_right_led_2_off();
+ }
+
+ if (IS_LAYER_ON(FCTN)) {
+ ergodox_right_led_3_on();
+ } else {
+ ergodox_right_led_3_off();
+ }
+
+};
diff --git a/layouts/community/ergodox/familiar/rules.mk b/layouts/community/ergodox/nstickney/rules.mk
index 4a3c58621..4a3c58621 100644
--- a/layouts/community/ergodox/familiar/rules.mk
+++ b/layouts/community/ergodox/nstickney/rules.mk