summaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
authorjola5 <jola5@users.noreply.github.com>2018-02-02 07:21:41 +0100
committerJack Humbert <jack.humb@gmail.com>2018-02-02 01:21:41 -0500
commit2cf6bfe9ac10663181aa3ba32087da956bb7ec1e (patch)
tree24d8ee8993770542be82e55066cc4813cbbf67a8 /keyboards
parent2917e55bd4c8e25d79981ec997037b89478d402c (diff)
Not quite neo (#2318)
* planck with a not-quite-neo layout for a de-DE OS/SW keymap * ergodox infinity with a not-quite-neo layout for a de-DE OS/SW keymap * add documentation
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/ergodox_infinity/keymaps/not-quite-neo/keymap.c292
-rw-r--r--keyboards/ergodox_infinity/keymaps/not-quite-neo/readme.md5
-rw-r--r--keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk2
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/config.h6
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/keymap.c129
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/readme.md5
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/rules.mk29
7 files changed, 468 insertions, 0 deletions
diff --git a/keyboards/ergodox_infinity/keymaps/not-quite-neo/keymap.c b/keyboards/ergodox_infinity/keymaps/not-quite-neo/keymap.c
new file mode 100644
index 0000000000..8cf51842a2
--- /dev/null
+++ b/keyboards/ergodox_infinity/keymaps/not-quite-neo/keymap.c
@@ -0,0 +1,292 @@
+#include QMK_KEYBOARD_H
+
+/*
+NQN is not-quite-neo
+A layout based on neo2
+*/
+
+#include "action_layer.h"
+#include "version.h"
+
+#include "nqn-keys-on-quertz-de-latin1.h"
+#include "nqn-basic-layout.h"
+
+// Since our quirky block definitions are basically a list of comma separated
+// arguments, we need a wrapper in order for these definitions to be
+// expanded before being used as arguments to the LAYOUT_xxx macro.
+#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
+
+#ifdef LEADER_TIMEOUT
+#undef LEADER_TIMEOUT
+#endif
+#define LEADER_TIMEOUT 300
+
+#define TAP_ONCE(code) \
+ register_code (code); \
+ unregister_code (code)
+
+
+// Automatic number generation of important keywords
+enum my_keycodes{
+ // Layer numbers follow the neo2 terminology, i.e. base layer = layer 1
+ L01 = 0,
+ /* L02, SHIFT is not (yet) implemented as a fully customizable layer */
+ L03,
+ L04,
+ L05,
+ /* L06, UNSPECIFIED not (yet) needed */
+ LFN
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* L01 -> default: BASE LAYER
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | TAB | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | ESC | | LEADR| | LEADR| | ENTER |
+ * |--------+ | | | | +--------|
+ * | L03 | L01_LEFT |------| |------| L01_RIGHT | L03 |
+ * |--------+ | LFN | | LFN | +--------|
+ * | SHIFT | | | | | | SHIFT |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | CTRL | GUI | ALT | L05 | L04 | | L04 | L05 | ALTGR| LFN | CTRL |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | HOME | END | | LEFT | RIGHT|
+ * ,------|------|------| |------+------+------.
+ * | | | PGUP | | UP | | |
+ * | SPACE| SHIFT|------| |------| SHIFT| SPACE|
+ * | | | PGDN | | DOWN | | |
+ * `--------------------' `--------------------'
+ */
+[L01] = LAYOUT_ergodox_wrapper(
+ KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
+ KC_ESC, L01_LEFT_01, KC_LEAD,
+ MO(L03), L01_LEFT_02,
+ KC_LSHIFT, L01_LEFT_03, MO(LFN),
+ KC_LCTRL,KC_LGUI,KC_LALT, MO(L05), MO(L04),
+ XXXXXXX, XXXXXXX,
+ KC_PGUP,
+ KC_SPACE,KC_LSHIFT,KC_PGDN,
+ //--
+ XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPACE,
+ KC_LEAD, L01_RIGHT_01, KC_ENTER,
+ L01_RIGHT_02, MO(L03),
+ MO(LFN), L01_RIGHT_03, KC_RSHIFT,
+ MO(L04), MO(L05), KC_RALT, MO(LFN), KC_RCTRL,
+ KC_LEFT, KC_RIGHT,
+ KC_UP,
+ KC_DOWN, KC_RSHIFT, KC_SPACE
+),
+
+
+/*
+L02 -> MO(L02): SHIFT (as a layer not used, not defined, not reachable)
+ */
+
+
+/* L03 -> MO(L03): PROGRAMMING
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | |
+ * |--------+ | | | | +--------|
+ * | | L03_LEFT |------| |------| L03_RIGHT | |
+ * |--------+ | | | | +--------|
+ * | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[L03] = LAYOUT_ergodox_wrapper(
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, L03_LEFT_01, _______,
+ _______, L03_LEFT_02,
+ _______, L03_LEFT_03, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ //--
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, L03_RIGHT_01, _______,
+ L03_RIGHT_02, _______,
+ _______, L03_RIGHT_03, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+),
+
+/* L04 -> MO(L04): NAVIGATION AND NUMBERS
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | |
+ * |--------+ | | | | +--------|
+ * | | L04_LEFT |------| |------| L04_RIGHT | |
+ * |--------+ | | | | +--------|
+ * | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | 0 | |------| |------| | 0 |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[L04] = LAYOUT_ergodox_wrapper(
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, L04_LEFT_01, _______,
+ _______, L04_LEFT_02,
+ _______, L04_LEFT_03, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ KC_0, _______, _______,
+ //--
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, L04_RIGHT_01, _______,
+ L04_RIGHT_02, _______,
+ _______, L04_RIGHT_03, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, KC_0
+),
+
+
+/* L05 -> MO(L05): ALTERNATE
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | |
+ * |--------+ | | | | +--------|
+ * | | L05_LEFT |------| |------| L05_RIGHT | |
+ * |--------+ | | | | +--------|
+ * | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[L05] = LAYOUT_ergodox_wrapper(
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, L05_LEFT_01, _______,
+ _______, L05_LEFT_02,
+ _______, L05_LEFT_03, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ //--
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, L05_RIGHT_01, _______,
+ L05_RIGHT_02, _______,
+ _______, L05_RIGHT_03, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+),
+
+
+/*
+L06 -> <TBD>: UNSPECIFIED
+*/
+
+
+/* LFN -> MO(FN): FUNCTION
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | RESET | | | | | | | | | | | | | | RESET |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | BACKSPC|
+ * |--------+ | | | | +--------|
+ * | | L06_LEFT |------| |------| L06_RIGHT | INSERT |
+ * |--------+ | | | | +--------|
+ * | | | | | | | DELETE |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | VOL+ | VOL- | MUTE | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[LFN] = LAYOUT_ergodox_wrapper(
+ RESET, _______, _______, _______, _______, _______, _______,
+ _______, L06_LEFT_01, _______,
+ _______, L06_LEFT_02,
+ _______, L06_LEFT_03, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ //--
+ _______, _______, _______, _______, _______, _______, RESET,
+ _______, L06_RIGHT_01, KC_BSPACE,
+ L06_RIGHT_02, KC_INSERT,
+ _______, L06_RIGHT_03, KC_DELETE,
+ KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______
+)
+
+};
+
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+ set_unicode_input_mode(UC_LNX);
+};
+
+
+LEADER_EXTERNS();
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+ LEADER_DICTIONARY() {
+ leading = false;
+ leader_end();
+
+ SEQ_ONE_KEY (KC_1) {
+ // ¯\_(ツ)_/¯
+ unicode_input_start(); register_hex(0xaf); unicode_input_finish();
+ register_code (KC_RALT); TAP_ONCE (KC_MINS); unregister_code (KC_RALT);
+ register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
+ register_code (KC_RSFT); TAP_ONCE (KC_9); TAP_ONCE(KC_7); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0xaf); unicode_input_finish();
+ }
+
+ SEQ_ONE_KEY (KC_2) {
+ // 凸(ツ)凸
+ unicode_input_start(); register_hex(0x51F8); unicode_input_finish();
+ register_code (KC_RSFT); TAP_ONCE (KC_8); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
+ register_code (KC_RSFT); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
+ unicode_input_start (); register_hex(0x51F8); unicode_input_finish();
+ }
+ }
+}
diff --git a/keyboards/ergodox_infinity/keymaps/not-quite-neo/readme.md b/keyboards/ergodox_infinity/keymaps/not-quite-neo/readme.md
new file mode 100644
index 0000000000..3fcb4edf0d
--- /dev/null
+++ b/keyboards/ergodox_infinity/keymaps/not-quite-neo/readme.md
@@ -0,0 +1,5 @@
+# not-quite-neo
+
+This is my personal take on porting the [neo2 layout](https://www.neo-layout.org/) to support multiple keyboards.
+
+Refer to the [readme.md](../../../../users/not-quite-neo/readme.md) of the generic parts of the implementation. \ No newline at end of file
diff --git a/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk b/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
new file mode 100644
index 0000000000..75624bb8c6
--- /dev/null
+++ b/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
@@ -0,0 +1,2 @@
+BACKLIGHT_ENABLE = yes
+UNICODE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/planck/keymaps/not-quite-neo/config.h b/keyboards/planck/keymaps/not-quite-neo/config.h
new file mode 100644
index 0000000000..7fa3bf328e
--- /dev/null
+++ b/keyboards/planck/keymaps/not-quite-neo/config.h
@@ -0,0 +1,6 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#endif
diff --git a/keyboards/planck/keymaps/not-quite-neo/keymap.c b/keyboards/planck/keymaps/not-quite-neo/keymap.c
new file mode 100644
index 0000000000..8ea7679e34
--- /dev/null
+++ b/keyboards/planck/keymaps/not-quite-neo/keymap.c
@@ -0,0 +1,129 @@
+/*
+NQN is not-quite-neo
+A layout based on the
+*/
+
+
+#include "planck.h"
+#include "nqn-keys-on-quertz-de-latin1.h"
+#include "nqn-basic-layout.h"
+
+
+// Automatic number generation of important keywords
+enum my_keycodes{
+ // Layer numbers follow the neo2 terminology, i.e. base layer = layer 1
+ L01 = 0,
+ /* L02, SHIFT is not (yet) implemented as a fully customizable layer */
+ L03,
+ L04,
+ L05,
+ /* L06, UNSPECIFIED not (yet) needed */
+ LFN
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* L01 -> default: BASE LAYER
+ * ,-----------------------------------------------------------------------------------.
+ * | ESC | | | ENTER|
+ * |------+ | +------|
+ * | L03 | L01_LEFT | L01_RIGHT | L03 |
+ * |------+ | +------|
+ * | SHIFT| | | SHIFT|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | CTLR | GUI | ALT | L05 | L04 | SPACE| SPACE| L04 | L05 | ALTGR| LFN | CTLR |
+ * `-----------------------------------------------------------------------------------'
+ */
+[L01] = {
+ {KC_ESC, L01_LEFT_01, L01_RIGHT_01, KC_ENTER},
+ {MO(L03), L01_LEFT_02, L01_RIGHT_02, MO(L03)},
+ {KC_LSHIFT, L01_LEFT_03, L01_RIGHT_03, KC_RSFT},
+ {KC_LCTRL,KC_LGUI, KC_LALT, MO(L05), MO(L04), KC_SPC, KC_SPC, MO(L04), MO(L05), KC_RALT, MO(LFN), KC_RCTRL}
+},
+
+
+/*
+L02 -> MO(L02): SHIFT (as a layer not used, not defined, not reachable)
+ */
+
+
+/* L03 -> MO(L03): PROGRAMMING
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | |
+ * |------+ | +------|
+ * | | L03_LEFT | L03_RIGHT | |
+ * |------+ | +------|
+ * | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[L03] = {
+ {_______, L03_LEFT_01, L03_RIGHT_01, _______},
+ {_______, L03_LEFT_02, L03_RIGHT_02, _______},
+ {_______, L03_LEFT_03, L03_RIGHT_03, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+
+/* L04 -> MO(L04): NAVIGATION AND NUMBERS
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | |
+ * |------+ | +------|
+ * | | L04_LEFT | L04_RIGHT | |
+ * |------+ | +------|
+ * | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | 0 | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[L04] = {
+ {_______, L04_LEFT_01, L04_RIGHT_01, _______},
+ {_______, L04_LEFT_02, L04_RIGHT_02, _______},
+ {_______, L04_LEFT_03, L04_RIGHT_03, _______},
+ {_______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, _______, _______}
+},
+
+
+/* L05 -> MO(L05): ALTERNATE
+ * ,-----------------------------------------------------------------------------------.
+ * | | | | |
+ * |------+ | +------|
+ * | | L05_LEFT | L05_RIGHT | |
+ * |------+ | +------|
+ * | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[L05] = {
+ {_______, L05_LEFT_01, L05_RIGHT_01, _______},
+ {_______, L05_LEFT_02, L05_RIGHT_02, _______},
+ {_______, L05_LEFT_03, L05_RIGHT_03, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
+},
+
+
+/*
+L06 -> <TBD>: UNSPECIFIED
+*/
+
+
+/* LFN -> MO(FN): FUNCTION
+ * ,-----------------------------------------------------------------------------------.
+ * | RESET| | | BACKS|
+ * |------+ | +------|
+ * | | L06_LEFT | L06_RIGHT |INSERT|
+ * |------+ | +------|
+ * | | | |DELETE|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |VOICE-|VOICE+|MUS ON|MUS OF| LIGHT| | | VOL+ | VOL- | MUTE | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[LFN] = {
+ {RESET, L06_LEFT_01, L06_RIGHT_01, KC_BSPC},
+ {_______, L06_LEFT_02, L06_RIGHT_02, KC_INS},
+ {_______, L06_LEFT_03, L06_RIGHT_03, KC_DEL},
+ {MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______}
+}
+};
diff --git a/keyboards/planck/keymaps/not-quite-neo/readme.md b/keyboards/planck/keymaps/not-quite-neo/readme.md
new file mode 100644
index 0000000000..3fcb4edf0d
--- /dev/null
+++ b/keyboards/planck/keymaps/not-quite-neo/readme.md
@@ -0,0 +1,5 @@
+# not-quite-neo
+
+This is my personal take on porting the [neo2 layout](https://www.neo-layout.org/) to support multiple keyboards.
+
+Refer to the [readme.md](../../../../users/not-quite-neo/readme.md) of the generic parts of the implementation. \ No newline at end of file
diff --git a/keyboards/planck/keymaps/not-quite-neo/rules.mk b/keyboards/planck/keymaps/not-quite-neo/rules.mk
new file mode 100644
index 0000000000..316a3ea7bb
--- /dev/null
+++ b/keyboards/planck/keymaps/not-quite-neo/rules.mk
@@ -0,0 +1,29 @@
+# Based on Zach's Planck Makefile
+# Max .hex size is about 28636 bytes
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+TAP_DANCE_ENABLE = no # Enable TapDance functionality
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+USB_6KRO_ENABLE = no # 6key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+#VARIABLE_TRACE = no # Debug changes to variable values
+UNICODE_ENABLE = no # Unicode (can't be used with unicodemap)
+UNICODEMAP_ENABLE = no # Enable extended unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif