summaryrefslogtreecommitdiff
path: root/keyboards/iris
diff options
context:
space:
mode:
authorAlex Ong <the.onga@gmail.com>2019-01-04 19:39:14 +1100
committerAlex Ong <the.onga@gmail.com>2019-01-04 19:39:14 +1100
commit47c91fc7f75ae0a477e55b687aa0fc30da0a283c (patch)
tree65ad39452748ff2e6d4a83ce54ede6ca22c9ada9 /keyboards/iris
parentac9b88e8ccbbf38762871504cd827ff0d941c426 (diff)
parent563ce3f225d981ce460c12ca5130dfe47af41df0 (diff)
Merge branch 'master' of https://github.com/qmk/qmk_firmware
Diffstat (limited to 'keyboards/iris')
-rw-r--r--keyboards/iris/info.json10
-rw-r--r--keyboards/iris/iris.h9
-rw-r--r--keyboards/iris/keymaps/bmoorey/config.h38
-rw-r--r--keyboards/iris/keymaps/bmoorey/keymap.c114
-rw-r--r--keyboards/iris/keymaps/bmoorey/readme.md5
-rw-r--r--keyboards/iris/keymaps/bmoorey/rules.mk2
-rw-r--r--keyboards/iris/keymaps/broswen/config.h52
-rw-r--r--keyboards/iris/keymaps/broswen/keymap.c126
-rw-r--r--keyboards/iris/keymaps/broswen/rules.mk8
-rw-r--r--keyboards/iris/keymaps/davidrambo/config.h1
-rw-r--r--keyboards/iris/keymaps/dbroqua/keymap.c2
-rw-r--r--keyboards/iris/keymaps/drashna/config.h4
-rw-r--r--keyboards/iris/keymaps/drashna/keymap.c86
-rw-r--r--keyboards/iris/keymaps/drashna_old/config.h48
-rw-r--r--keyboards/iris/keymaps/drashna_old/rules.mk19
-rw-r--r--keyboards/iris/keymaps/edvorakjp/config.h1
-rw-r--r--keyboards/iris/keymaps/edvorakjp/keymap.c7
-rw-r--r--keyboards/iris/keymaps/edvorakjp/rules.mk2
-rw-r--r--keyboards/iris/keymaps/gsigler/config.h33
-rw-r--r--keyboards/iris/keymaps/gsigler/keymap.c74
-rw-r--r--keyboards/iris/keymaps/gsigler/rules.mk3
-rw-r--r--keyboards/iris/keymaps/impstyle/keymap.c8
-rw-r--r--keyboards/iris/keymaps/jennetters/config.h5
-rw-r--r--keyboards/iris/keymaps/khord/config.h38
-rw-r--r--keyboards/iris/keymaps/khord/keymap.c136
-rw-r--r--keyboards/iris/keymaps/khord/rules.mk3
-rw-r--r--keyboards/iris/keymaps/krusli/config.h2
-rw-r--r--keyboards/iris/keymaps/olligranlund_nordic/config.h36
-rw-r--r--keyboards/iris/keymaps/olligranlund_nordic/keymap.c131
-rw-r--r--keyboards/iris/keymaps/olligranlund_nordic/readme.md11
-rw-r--r--keyboards/iris/keymaps/olligranlund_nordic/rules.mk2
-rw-r--r--keyboards/iris/keymaps/omgvee/config.h49
-rw-r--r--keyboards/iris/keymaps/omgvee/keymap.c173
-rw-r--r--keyboards/iris/keymaps/omgvee/readme.md17
-rw-r--r--keyboards/iris/keymaps/omgvee/rules.mk7
-rw-r--r--keyboards/iris/keymaps/saviof/config.h39
-rw-r--r--keyboards/iris/keymaps/saviof/keymap.c107
-rw-r--r--keyboards/iris/keymaps/saviof/rules.mk3
-rw-r--r--keyboards/iris/keymaps/transmogrified/Readme.md9
-rw-r--r--keyboards/iris/keymaps/transmogrified/config.h22
-rw-r--r--keyboards/iris/keymaps/transmogrified/keymap.c330
-rw-r--r--keyboards/iris/keymaps/vyolle/config.h44
-rw-r--r--keyboards/iris/keymaps/vyolle/keymap.c115
-rw-r--r--keyboards/iris/keymaps/vyolle/rules.mk7
-rw-r--r--keyboards/iris/keymaps/wanleg/config.h33
-rw-r--r--keyboards/iris/keymaps/wanleg/keymap.c76
-rw-r--r--keyboards/iris/keymaps/wanleg/rules.mk5
-rw-r--r--keyboards/iris/keymaps/xyverz/config.h2
-rw-r--r--keyboards/iris/rev1/config.h11
-rw-r--r--keyboards/iris/rev1/rev1.c1
-rw-r--r--keyboards/iris/rev1/rev1.h5
-rw-r--r--keyboards/iris/rev1_led/config.h11
-rw-r--r--keyboards/iris/rev1_led/rev1_led.c1
-rw-r--r--keyboards/iris/rev1_led/rev1_led.h5
-rw-r--r--keyboards/iris/rev2/config.h11
-rw-r--r--keyboards/iris/rev2/rev2.h5
-rw-r--r--keyboards/iris/rev3/config.h87
-rw-r--r--keyboards/iris/rev3/rev3.c42
-rw-r--r--keyboards/iris/rev3/rev3.h35
-rw-r--r--keyboards/iris/rev3/rules.mk2
-rw-r--r--keyboards/iris/rules.mk13
61 files changed, 1970 insertions, 313 deletions
diff --git a/keyboards/iris/info.json b/keyboards/iris/info.json
index a26ffae87a..f7b017b97a 100644
--- a/keyboards/iris/info.json
+++ b/keyboards/iris/info.json
@@ -1,9 +1,9 @@
{
- "keyboard_name": "Iris",
- "url": "Keeb.io",
- "maintainer": "qmk",
- "width": 14.5,
- "height": 5,
+ "keyboard_name": "Iris",
+ "url": "https://keeb.io",
+ "maintainer": "Keebio",
+ "width": 14.5,
+ "height": 5,
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/iris/iris.h b/keyboards/iris/iris.h
index 56ba15473b..afad9a0d6d 100644
--- a/keyboards/iris/iris.h
+++ b/keyboards/iris/iris.h
@@ -1,12 +1,13 @@
-#ifndef IRIS_H
-#define IRIS_H
+#pragma once
#ifdef KEYBOARD_iris_rev1
#include "rev1.h"
#elif KEYBOARD_iris_rev1_led
#include "rev1_led.h"
-#else
+#elif KEYBOARD_iris_rev2
#include "rev2.h"
+#else
+ #include "rev3.h"
#endif
#include "quantum.h"
@@ -26,5 +27,3 @@
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##LT4, KC_##RT4, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35, \
KC_##LT1, KC_##LT2, KC_##LT3, KC_##RT3, KC_##RT2, KC_##RT1 \
)
-
-#endif
diff --git a/keyboards/iris/keymaps/bmoorey/config.h b/keyboards/iris/keymaps/bmoorey/config.h
new file mode 100644
index 0000000000..9f8a9afab8
--- /dev/null
+++ b/keyboards/iris/keymaps/bmoorey/config.h
@@ -0,0 +1,38 @@
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+#define MASTER_RIGHT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 14
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#define NO_ACTION_TAPPING
+#define NO_ACTION_ONESHOT \ No newline at end of file
diff --git a/keyboards/iris/keymaps/bmoorey/keymap.c b/keyboards/iris/keymaps/bmoorey/keymap.c
new file mode 100644
index 0000000000..9484ccb3f4
--- /dev/null
+++ b/keyboards/iris/keymaps/bmoorey/keymap.c
@@ -0,0 +1,114 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_SPC, KC_SPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ KC_LCTL, LOWER, KC_SPC, KC_SPC, LOWER, RAISE
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_LOWER] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_TILD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, KC_DEL,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ RESET, _______, KC_UP, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P1, KC_P2, KC_P3, KC_PLUS, KC_PIPE,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, KC_LCBR, _______, _______, KC_RCBR, KC_P0, KC_P0, _______, KC_MINS, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_RAISE] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, _______, _______, _______, KC_BSLS,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, _______, _______, KC_PLUS, KC_END, _______, _______, _______, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ RGB_TOG, RGB_RMOD, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, RGB_VAD, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/iris/keymaps/bmoorey/readme.md b/keyboards/iris/keymaps/bmoorey/readme.md
new file mode 100644
index 0000000000..353f59449b
--- /dev/null
+++ b/keyboards/iris/keymaps/bmoorey/readme.md
@@ -0,0 +1,5 @@
+This is (what I consider to be) an improvement over the default Iris keymap.
+It includes a QWERTY layer, a general system layer with arrows, volume control
+and a numpad on the right board; a second raised layer with function keys and
+more extensive media controls; and an adjust layer with controls for RGB
+underlighting.
diff --git a/keyboards/iris/keymaps/bmoorey/rules.mk b/keyboards/iris/keymaps/bmoorey/rules.mk
new file mode 100644
index 0000000000..c9465948e5
--- /dev/null
+++ b/keyboards/iris/keymaps/bmoorey/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes
+EXTRAKEY_ENABLE = yes
diff --git a/keyboards/iris/keymaps/broswen/config.h b/keyboards/iris/keymaps/broswen/config.h
new file mode 100644
index 0000000000..19c47780db
--- /dev/null
+++ b/keyboards/iris/keymaps/broswen/config.h
@@ -0,0 +1,52 @@
+/*
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 12
+#define RGBLIGHT_HUE_STEP 5
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#define C6_AUDIO
+
+#define NO_MUSIC_MODE
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(NO_SOUND)
+#endif
+
+
+#if !defined(NO_DEBUG) && !defined(CONSOLE_ENABLE)
+#define NO_DEBUG
+#endif // !NO_DEBUG
+#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
+#define NO_PRINT
+#endif // !NO_PRINT
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+#define DISABLE_LEADER
diff --git a/keyboards/iris/keymaps/broswen/keymap.c b/keyboards/iris/keymaps/broswen/keymap.c
new file mode 100644
index 0000000000..6d783142e4
--- /dev/null
+++ b/keyboards/iris/keymaps/broswen/keymap.c
@@ -0,0 +1,126 @@
+#include QMK_KEYBOARD_H
+
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+#define KC_ KC_TRNS
+#define _______ KC_TRNS
+
+#define KC_LOWR LOWER
+#define KC_RASE RAISE
+#define KC_RST RESET
+#define KC_BL_S BL_STEP
+#define KC_DBUG DEBUG
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT_kc(
+ //,----+----+----+----+----+----. ,----+----+----+----+----+----.
+ ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , DEL,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ TAB , Q , W , E , R , T , Y , U , I , O , P ,BSPC ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ LCTL, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
+ //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
+ LSFT, Z , X , C , V , B ,LBRC, RBRC , N , M ,COMM,DOT ,SLSH,RSFT,
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ LALT,LGUI,SPC, ENT ,LOWR,RASE
+ // `----+----+----' `----+----+----'
+ ),
+
+ [_LOWER] = LAYOUT_kc(
+ //,----+----+----+----+----+----. ,----+----+----+----+----+----.
+ , , , , , , , , , , , ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ , , , , , , ,PGDN,PGUP, , , ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ ,TILD,PIPE,MINS,PLUS, , LEFT,DOWN, UP ,RGHT, , ,
+ //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
+ , GRV,BSLS,UNDS, EQL, , , , , , , , , ,
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ , , , , ,
+ // `----+----+----' `----+----+----'
+ ),
+
+ [_RAISE] = LAYOUT_kc(
+ //,----+----+----+----+----+----. ,----+----+----+----+----+----.
+ F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ , , , , , , , , , , ,F12 ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ , , , , , , MUTE,VOLD,VOLU, , , ,
+ //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
+ , , , , , , , , , , , , , ,
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ , , , , ,
+ // `----+----+----' `----+----+----'
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
+ AU_TOG, CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
+ //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------'
+ _______, _______, _______, _______, _______, _______
+ // `--------+--------+--------' `--------+--------+--------'
+ )
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ // case QWERTY:
+ // if (record->event.pressed) {
+ // persistent_default_layer_set(1UL<<_QWERTY);
+ // }
+ // return false;
+ // break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/iris/keymaps/broswen/rules.mk b/keyboards/iris/keymaps/broswen/rules.mk
new file mode 100644
index 0000000000..14fa112898
--- /dev/null
+++ b/keyboards/iris/keymaps/broswen/rules.mk
@@ -0,0 +1,8 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = no
+MOUSEKEY_ENABLE = no
+MIDI_ENABLE = no
+BLUETOOTH_ENABLE = no
+COMMAND_ENABLE = no
+TERMINAL_ENABLE = no
+AUDIO_ENABLE = yes
diff --git a/keyboards/iris/keymaps/davidrambo/config.h b/keyboards/iris/keymaps/davidrambo/config.h
index 01e078e326..2cdff4213b 100644
--- a/keyboards/iris/keymaps/davidrambo/config.h
+++ b/keyboards/iris/keymaps/davidrambo/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
#define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
diff --git a/keyboards/iris/keymaps/dbroqua/keymap.c b/keyboards/iris/keymaps/dbroqua/keymap.c
index eed288c50d..4cbb8af540 100644
--- a/keyboards/iris/keymaps/dbroqua/keymap.c
+++ b/keyboards/iris/keymaps/dbroqua/keymap.c
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,-----+-----+-----+-----+-----+-----+ ,-----+-----+-----+-----+-----+-----+
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BSPC|
* |-----+-----+-----+-----+-----+-----+ +-----+-----+-----+-----+-----+-----+
- * | RST | 1 | 2 | 3 | 5 | 5 | | 6 | 7 | 8 | 9 | 0 | |
+ * | RST | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
* +-----+-----+-----+-----+-----+-----+ +-----+-----+-----+-----+-----+-----+
* | DEL | | LEFT| RGHT| UP | [ | | ] | 4 | 5 | 6 | + | | |
* +-----+-----+-----+-----+-----+-----+-----. ,-----+-----+-----+-----+-----+-----+-----+
diff --git a/keyboards/iris/keymaps/drashna/config.h b/keyboards/iris/keymaps/drashna/config.h
index 47276845f9..dd247a42a7 100644
--- a/keyboards/iris/keymaps/drashna/config.h
+++ b/keyboards/iris/keymaps/drashna/config.h
@@ -31,7 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM
#define RGBLED_NUM 18 // Number of LEDs
-#define RGBLIGHT_ANIMATIONS
+
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12
@@ -68,3 +68,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define ALT_LED1 8
#define GUI_LED1 9
+#define BOOTMAGIC_LITE_ROW 4
+#define BOOTMAGIC_LITE_COLUMN 3
diff --git a/keyboards/iris/keymaps/drashna/keymap.c b/keyboards/iris/keymaps/drashna/keymap.c
index 70d13cac21..d89656b7ea 100644
--- a/keyboards/iris/keymaps/drashna/keymap.c
+++ b/keyboards/iris/keymaps/drashna/keymap.c
@@ -2,44 +2,53 @@
#include QMK_KEYBOARD_H
#include "drashna.h"
-#define KC_ALAP ALT_T(KC_APP)
-#define KC_OSLG OSM(MOD_LGUI)
+
+#define LAYOUT_iris_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_wrapper( \
+ KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, \
+ KC_TAB , K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSLS, \
+ KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
+ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, CTL_T(K2A), OS_RSFT, \
+ LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE \
+ )
+#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
+
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS,
- KC_CCCV, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
- KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_OSLG, _________________QWERTY_R3_________________, KC_MRSF,
- LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+ [_QWERTY] = LAYOUT_iris_base_wrapper(
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
- [_COLEMAK] = LAYOUT_wrapper(
- KC_ESC , ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS,
- KC_CCCV, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
- KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_OSLG, _________________COLEMAK_R3________________, KC_MRSF,
- LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+
+ [_COLEMAK] = LAYOUT_iris_base_wrapper(
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
- [_DVORAK] = LAYOUT_wrapper(
- KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS,
- KC_CCCV, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT,
- KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_OSLG, _________________DVORAK_R3_________________, KC_MRSF,
- LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+
+ [_DVORAK] = LAYOUT_iris_base_wrapper(
+ _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
- [_WORKMAN] = LAYOUT_wrapper(
- KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS,
- KC_CCCV, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
- KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_OSLG, _________________WORKMAN_R3________________, KC_MRSF,
- LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+
+ [_WORKMAN] = LAYOUT_iris_base_wrapper(
+ _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
+ _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
+ _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
[_MODS] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ KC_LSFT, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, KC_RSFT,
_______, _______, _______, _______, _______, _______
),
@@ -53,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = LAYOUT_wrapper(
- _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______,
+ KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, _______,
_______, ___________________BLANK___________________, _________________LOWER_R2__________________, KC_PIPE,
_______, ___________________BLANK___________________, _______, _______, _________________LOWER_R3__________________, _______,
@@ -61,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_RAISE] = LAYOUT_wrapper(
- _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______,
+ KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
_______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
_______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, _______,
@@ -70,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_wrapper(
KC_MAKE, _______, _______, _______, _______, _______, _________________ADJUST_R1_________________, KC_RST,
- VRSN, _________________ADJUST_L1_________________, KC_NUKE, _______, _______, _______, _______, EPRM,
+ VRSN, _________________ADJUST_L1_________________, KC_NUKE, _______, _______, _______, _______, EEP_RST,
_______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
_______, _________________ADJUST_L3_________________, TG_GAME, _______, _________________ADJUST_R3_________________, KC_MPLY,
_______, _______, _______, _______, _______, _______
@@ -80,10 +89,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void matrix_init_keymap(void) {
- DDRD &= ~(1<<5);
- PORTD &= ~(1<<5);
+ #ifndef CONVERT_TO_PROTON_C
+ setPinOutput(D5);
+ writePinHigh(D5);
- DDRB &= ~(1<<0);
- PORTB &= ~(1<<0);
+ setPinOutput(B0);
+ writePinHigh(B0);
+ #endif
}
-
diff --git a/keyboards/iris/keymaps/drashna_old/config.h b/keyboards/iris/keymaps/drashna_old/config.h
index 6152ca5b6e..b985c4dfc1 100644
--- a/keyboards/iris/keymaps/drashna_old/config.h
+++ b/keyboards/iris/keymaps/drashna_old/config.h
@@ -15,60 +15,32 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "config_common.h"
+#pragma once
/* Use I2C or Serial, not both */
-
-#define USE_SERIAL
-#undef USE_I2C
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
+#include "../drashna/config.h"
#ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM
#define RGBLED_NUM 16 // Number of LEDs
-#define RGBLIGHT_ANIMATIONS
-#define RGBLIGHT_HUE_STEP 12
-#define RGBLIGHT_SAT_STEP 12
-#define RGBLIGHT_VAL_STEP 12
-#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
-
-#define RGBLIGHT_LIMIT_VAL 225
-#endif // RGBLIGHT_ENABLE
-
-#ifdef AUDIO_ENABLE
-#define C6_AUDIO
-#ifdef RGBLIGHT_ENABLE
-#define NO_MUSIC_MODE
-#endif //RGBLIGHT_ENABLE
-#endif //AUDIO_ENABLE
-
-#define QMK_ESC_OUTPUT F6 // usually COL
-#define QMK_ESC_INPUT D7 // usually ROW
-#define QMK_LED B0
-#define QMK_SPEAKER C6
+#endif
#undef PRODUCT
#ifdef KEYBOARD_iris_rev2
-#define PRODUCT Drashna Hacked Iris Rev.2
+#define PRODUCT Drashna Hacked Iris Rev.2 (16 LED)
#endif
+#undef SHFT_LED1
#define SHFT_LED1 5
+#undef SHFT_LED2
#define SHFT_LED2 10
+#undef CTRL_LED1
#define CTRL_LED1 6
+#undef CTRL_LED2
#define CTRL_LED2 9
+#undef ALT_LED1
#define ALT_LED1 7
+#undef GUI_LED1
#define GUI_LED1 8
-
-#endif
diff --git a/keyboards/iris/keymaps/drashna_old/rules.mk b/keyboards/iris/keymaps/drashna_old/rules.mk
index f6ec9d1e5a..73f37c6c55 100644
--- a/keyboards/iris/keymaps/drashna_old/rules.mk
+++ b/keyboards/iris/keymaps/drashna_old/rules.mk
@@ -1,21 +1,4 @@
USER_NAME := drashna
-
-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
-TAP_DANCE_ENABLE = no
-RGBLIGHT_ENABLE = yes
-AUDIO_ENABLE = yes
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = no
-SWAP_HANDS_ENABLE = no
-
-INDICATOR_LIGHTS = yes
-MACROS_ENABLED = no
-RGBLIGHT_TWINKLE = yes
-
SRC += ../drashna/keymap.c
-BOOTLOADER = qmk-dfu
+include $(KEYBOARD_PATH_2)/keymaps/drashna/rules.mk
diff --git a/keyboards/iris/keymaps/edvorakjp/config.h b/keyboards/iris/keymaps/edvorakjp/config.h
index cc24ffc312..1610c4b124 100644
--- a/keyboards/iris/keymaps/edvorakjp/config.h
+++ b/keyboards/iris/keymaps/edvorakjp/config.h
@@ -26,5 +26,6 @@
#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
#define TAPPING_TERM 120
+#define SWAP_SCLN
#endif
diff --git a/keyboards/iris/keymaps/edvorakjp/keymap.c b/keyboards/iris/keymaps/edvorakjp/keymap.c
index 74aff9131c..f5d305f7f4 100644
--- a/keyboards/iris/keymaps/edvorakjp/keymap.c
+++ b/keyboards/iris/keymaps/edvorakjp/keymap.c
@@ -1,7 +1,4 @@
#include QMK_KEYBOARD_H
-#include "action_layer.h"
-#include "eeconfig.h"
-
#include "edvorakjp.h"
enum custom_keycodes {
@@ -32,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
GRV ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- LBRC,RBRC,COMM,DOT , P , Y , F , G , R , W , Q ,BSLS,
+ LBRC,RBRC,COMM,DOT , Y , P , F , G , R , W , Q ,BSLS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
EQL , A , O , E , I , U , D , T , N , S , M ,MINS,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
@@ -134,7 +131,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case KC_LOCK:
if (record->event.pressed) {
- if (edvorakjp_config.enable_kc_lang) {
+ if (get_enable_kc_lang()) {
SEND_STRING( SS_LCTRL(SS_LSFT(SS_TAP(X_POWER))) );
} else {
SEND_STRING( SS_LGUI("l") );
diff --git a/keyboards/iris/keymaps/edvorakjp/rules.mk b/keyboards/iris/keymaps/edvorakjp/rules.mk
index 1c88fbc7bc..58d244c389 100644
--- a/keyboards/iris/keymaps/edvorakjp/rules.mk
+++ b/keyboards/iris/keymaps/edvorakjp/rules.mk
@@ -13,4 +13,4 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
diff --git a/keyboards/iris/keymaps/gsigler/config.h b/keyboards/iris/keymaps/gsigler/config.h
new file mode 100644
index 0000000000..e1793fb1b8
--- /dev/null
+++ b/keyboards/iris/keymaps/gsigler/config.h
@@ -0,0 +1,33 @@
+/*
+Copyright 2018 Grady Sigler <gradysigler@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#define AUTO_SHIFT_TIMEOUT 95
+#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */
+#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
diff --git a/keyboards/iris/keymaps/gsigler/keymap.c b/keyboards/iris/keymaps/gsigler/keymap.c
new file mode 100644
index 0000000000..f8753cbdcc
--- /dev/null
+++ b/keyboards/iris/keymaps/gsigler/keymap.c
@@ -0,0 +1,74 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+enum iris_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ //| `/~ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | _/- |
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ //| TAB | Q | W | E | R | T | | Y | U | I | O | P | +/= |
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ //| RAISE | A | S | D | F | G | | H | J | K | L | :/; | "/' |
+ RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ //| LOWER | Z | X | C | V | B | ESC | | ALT | N | M | </, | >/. | ?-/ | |-\ |
+ LOWER, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ // | CTRL | COMMAND| BKSPACE| | SPACE | ENTER | SHIFT |
+ KC_LCTL, KC_LGUI, KC_BSPC, KC_SPC, KC_ENT, KC_LSFT
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+//KC_LALT ALT
+ [_RAISE] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ //| `/~ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ //| TAB | ! | @ | { | } | | | | | | ↑ | | | F12 |
+ KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_F12,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ //| RAISE | # | $ | ( | ) | ` | | ? | ← | ↓ | → | | VOLUP |
+ KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_QUES, KC_LEFT,KC_DOWN, KC_RGHT, XXXXXXX, KC__VOLUP,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ //| | % | ^ | [ | ] | ~ | ESC | ALT | & | | | | MUTE | VOLDN |
+ XXXXXXX, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, XXXXXXX, XXXXXXX,XXXXXXX, KC__MUTE,KC__VOLDOWN,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ // | CTRL | COMMAND| BKSPACE| | SPACE | ENTER | SHIFT|
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_LOWER] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ //| | | | | | | | | 7 | 8 | 9 | * | / |
+ KC_ASUP, KC_ASON, KC_ASRP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ //| | | | | | | | | 4 | 5 | 6 | + | - |
+ KC_ASDN, KC_ASOFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PMNS,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ //| | | | | | | | | 1 | 2 | 3 | | |
+ XXXXXXX, KC_ASTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, XXXXXXX, XXXXXXX,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ //| LOWER | | | | | | ESC | | ALT | | 0 | . | ENTER | = | |
+ KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, KC_TRNS, XXXXXXX, KC_P0, KC_PDOT, KC_PENT, KC_PEQL, XXXXXXX,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ // | CTRL | COMMAND| BKSPACE | | SPACE | ENTER | SHIFT |
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+};
diff --git a/keyboards/iris/keymaps/gsigler/rules.mk b/keyboards/iris/keymaps/gsigler/rules.mk
new file mode 100644
index 0000000000..0abc28fc59
--- /dev/null
+++ b/keyboards/iris/keymaps/gsigler/rules.mk
@@ -0,0 +1,3 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes
+AUTO_SHIFT_ENABLE = yes
diff --git a/keyboards/iris/keymaps/impstyle/keymap.c b/keyboards/iris/keymaps/impstyle/keymap.c
index ba49cf72c3..30b4bf2d92 100644
--- a/keyboards/iris/keymaps/impstyle/keymap.c
+++ b/keyboards/iris/keymaps/impstyle/keymap.c
@@ -94,17 +94,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|----+----+----+----+----+----| |----+----+----+----+----+----|
// , , , , , , MS_WH_UP, , , , , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- // MS_LEFT,MS_UP,MS_DOWN,MS_RGHT,,, MS_WH_DN,MS_BT1,MS_BT2,MS_BT3, , ,
+ // ,,MS_LEFT,MS_UP,MS_DOWN,MS_RGHT,, MS_WH_DN,MS_BT1,MS_BT2,MS_BT3, , ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
// , , , , , , , , , , ,MS_ACC0,MS_ACC1MS_ACC2
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
// , , , , ,
// `----+----+----' `----+----+----'
[_MOUSE] = LAYOUT(
- _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______, KC_MS_WH_UP,_______,_______,_______,_______,_______,
- KC_MS_LEFT,KC_MS_UP,KC_MS_DOWN,KC_MS_RIGHT,_______,_______, KC_MS_WH_DOWN,KC_MS_BTN1,KC_MS_BTN2,KC_MS_BTN3,_______,_______,
- _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2,
+ _______,KC_MS_LEFT,KC_MS_UP,KC_MS_DOWN,KC_MS_RIGHT,_______, KC_MS_WH_DOWN,KC_MS_BTN1,KC_MS_BTN2,KC_MS_BTN3,_______,_______,
+ _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2,
_______,_______,_______, _______,_______,_______
),
diff --git a/keyboards/iris/keymaps/jennetters/config.h b/keyboards/iris/keymaps/jennetters/config.h
index a3c0634f52..42f91bd027 100644
--- a/keyboards/iris/keymaps/jennetters/config.h
+++ b/keyboards/iris/keymaps/jennetters/config.h
@@ -19,9 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM 150
-/* Try to prevent sticky keys */
-#define PREVENT_STUCK_MODIFIERS
-
/* Use I2C or Serial, not both */
#define USE_SERIAL
@@ -38,4 +35,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8 \ No newline at end of file
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/iris/keymaps/khord/config.h b/keyboards/iris/keymaps/khord/config.h
new file mode 100644
index 0000000000..9b44bca792
--- /dev/null
+++ b/keyboards/iris/keymaps/khord/config.h
@@ -0,0 +1,38 @@
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#define TAPPING_TERM 150
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 12
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/iris/keymaps/khord/keymap.c b/keyboards/iris/keymaps/khord/keymap.c
new file mode 100644
index 0000000000..379617a8b7
--- /dev/null
+++ b/keyboards/iris/keymaps/khord/keymap.c
@@ -0,0 +1,136 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+ ADMIN,
+ SMSPC1
+};
+
+enum {
+ SFT_CAP = 0
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ TD(SFT_CAP),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_ENT),
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_HOME, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ KC_LGUI, LOWER, KC_ENT, KC_SPC, RAISE, KC_LALT
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_LOWER] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ RESET, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_DEL, _______, KC_LEFT, KC_RGHT, KC_UP, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ BL_STEP, _______, _______, _______, KC_DOWN, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, KC_DEL, KC_DEL, _______, KC_P0
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_RAISE] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ )
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [SFT_CAP] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ case ADMIN:
+ if (record->event.pressed) {
+ SEND_STRING("Administrator");
+ }
+ return false;
+ break;
+ case SMSPC1:
+ if (record->event.pressed) {
+ SEND_STRING("Simspace1!");
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/iris/keymaps/khord/rules.mk b/keyboards/iris/keymaps/khord/rules.mk
new file mode 100644
index 0000000000..c46edbd128
--- /dev/null
+++ b/keyboards/iris/keymaps/khord/rules.mk
@@ -0,0 +1,3 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/iris/keymaps/krusli/config.h b/keyboards/iris/keymaps/krusli/config.h
index a53c746ad9..72e35c4728 100644
--- a/keyboards/iris/keymaps/krusli/config.h
+++ b/keyboards/iris/keymaps/krusli/config.h
@@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-// #define PREVENT_STUCK_MODIFIERS
-
/* Use I2C or Serial, not both */
#define USE_SERIAL
diff --git a/keyboards/iris/keymaps/olligranlund_nordic/config.h b/keyboards/iris/keymaps/olligranlund_nordic/config.h
new file mode 100644
index 0000000000..259f2a7424
--- /dev/null
+++ b/keyboards/iris/keymaps/olligranlund_nordic/config.h
@@ -0,0 +1,36 @@
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+//#define USE_I2C
+
+/* Select hand configuration */
+
+// #define MASTER_LEFT
+// #define MASTER_RIGHT
+#define EE_HANDS
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 18
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/iris/keymaps/olligranlund_nordic/keymap.c b/keyboards/iris/keymaps/olligranlund_nordic/keymap.c
new file mode 100644
index 0000000000..65ed6d289b
--- /dev/null
+++ b/keyboards/iris/keymaps/olligranlund_nordic/keymap.c
@@ -0,0 +1,131 @@
+#include QMK_KEYBOARD_H
+#include "keymap_swedish.h"
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST
+};
+
+#define KC_ KC_TRNS
+
+#define KC_LOWER LOWER
+#define KC_RAISE RAISE
+#define KC_ADJ ADJUST
+#define KC_RST RESET
+
+#define KC_AA NO_AA
+#define KC_AE NO_AE
+#define KC_OE NO_OSLH
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+LT(_LOWER, KC_TAB),KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_AA,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_OE, KC_AE,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, RAISE, KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ KC_LGUI, KC_LALT, KC_SPC, KC_ENT, ADJUST, KC_RALT
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_LOWER] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ NO_TILD, KC_EXLM, NO_AT, KC_HASH, NO_DLR, KC_PERC, NO_CIRC, NO_AMPR, NO_ASTR, NO_SLSH, NO_LPRN, NO_RPRN,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDOWN, NO_LCBR, NO_RCBR,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, NO_BSLS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, NO_LBRC, NO_RBRC,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_GRAVE, KC_CIRC, KC_QUOTE, NO_LESS, NO_GRTR,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_RAISE] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ NO_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, NO_MINS, NO_ASTR,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, NO_PLUS, NO_SLSH,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_0, KC_TRNS,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ BL_TOGG, BL_STEP, BL_BRTG, RGB_TOG, RGB_RMOD, RGB_MOD, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ BL_DEC, _______, BL_INC, RGB_VAD, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ )
+};
+
+void persistent_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/iris/keymaps/olligranlund_nordic/readme.md b/keyboards/iris/keymaps/olligranlund_nordic/readme.md
new file mode 100644
index 0000000000..72eccde102
--- /dev/null
+++ b/keyboards/iris/keymaps/olligranlund_nordic/readme.md
@@ -0,0 +1,11 @@
+# Iris Nordic Layout
+### by Oliver Granlund
+
+![Finished product](https://i.imgur.com/zqSBc3t.jpg)
+
+This is for those who insist to use keyboard with ÅÄÖ. Also thought about the
+gaming aspect with this keyboard, therefore space on left side.
+
+At first I thought about having backspace in the upper right corner of the
+slave side, but that made it really clunky to fix your text. Thumbs should take
+care of this job instead.
diff --git a/keyboards/iris/keymaps/olligranlund_nordic/rules.mk b/keyboards/iris/keymaps/olligranlund_nordic/rules.mk
new file mode 100644
index 0000000000..d7463419b4
--- /dev/null
+++ b/keyboards/iris/keymaps/olligranlund_nordic/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes
diff --git a/keyboards/iris/keymaps/omgvee/config.h b/keyboards/iris/keymaps/omgvee/config.h
new file mode 100644
index 0000000000..c29201fe1f
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/config.h
@@ -0,0 +1,49 @@
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 15
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+
+//tap dance shenanigans
+#define TAPPING_TERM 200
+
+//force n-key rollover to be enabled every boot
+#define FORCE_NKRO
+
+//some mouse keys tweaking, as it is generally too slow by default
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_TIME_TO_MAX 60
+#define MOUSEKEY_MAX_SPEED 7
+#define MOUSEKEY_WHEEL_DELAY 0 \ No newline at end of file
diff --git a/keyboards/iris/keymaps/omgvee/keymap.c b/keyboards/iris/keymaps/omgvee/keymap.c
new file mode 100644
index 0000000000..da76b593b6
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/keymap.c
@@ -0,0 +1,173 @@
+#include QMK_KEYBOARD_H
+#include <print.h>
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _MOUSE 3
+#define _ADJUST 4
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ MOUSE,
+ ADJUST,
+};
+
+#define KC_MOUS TT(_MOUSE) // double tab toggle mouse layer
+#define MS_L KC_MS_LEFT
+#define MS_R KC_MS_RIGHT
+#define MS_U KC_MS_UP
+#define MS_D KC_MS_DOWN
+#define MS_B1 KC_MS_BTN1
+#define MS_B2 KC_MS_BTN2
+#define MW_U KC_MS_WH_UP
+#define MW_D KC_MS_WH_DOWN
+#define MW_L KC_MS_WH_LEFT
+#define MW_R KC_MS_WH_RIGHT
+
+//Tap Dance Declarations
+enum {
+ TD_SCL = 0
+};
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ //Tap once for Shift, twice for Caps Lock
+ [TD_SCL] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
+};
+enum {
+ TD_EBT = 0
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ TD(TD_SCL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MOUS, KC_MOUS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ KC_LALT, LOWER, KC_ENT, KC_SPC, RAISE, KC_LGUI
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_LOWER] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, KC_BSPC,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_PIPE,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,_______, KC_ENT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LCTL, _______, _______, _______, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, _______, _______, _______, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, KC_DEL, KC_DEL, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_RAISE] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ RGB_MOD, KC_MPRV, KC_MNXT, _______, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_ENT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, KC_MSTP, KC_MPLY, _______, KC_PGDN, KC_MINS, KC_LPRN, KC_RPRN, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_MOUSE] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ BL_BRTG, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, RESET,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ BL_TOGG, MS_B1, MS_U, MS_B2, MW_U, _______, _______, MS_B1, MS_B2, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, MS_L, MS_D, MS_R, MW_D, _______, MS_L, MS_D , MS_U, MS_R ,_______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ BL_STEP, _______, _______, MW_L, MW_R, _______, _______, _______, KC_BRID, KC_BRIU, KC_VOLD, KC_VOLU, KC_MUTE, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, RESET,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, KC_VOLD, KC_VOLU, KC_MUTE, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ dprintf("Got on layer %s ", LOWER);
+ update_tri_layer(_LOWER, _RAISE, _MOUSE);
+ } else {
+ layer_off(_LOWER);
+ dprintf("Got off layer %s ", LOWER);
+ update_tri_layer(_LOWER, _RAISE, _MOUSE);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ dprintf("Got on layer %s ", RAISE);
+ update_tri_layer(_LOWER, _RAISE, _MOUSE);
+ } else {
+ layer_off(_RAISE);
+ dprintf("Got off layer %s ", RAISE);
+ update_tri_layer(_LOWER, _RAISE, _MOUSE);
+ }
+ return false;
+ break;
+ case MOUSE:
+ if (record->event.pressed) {
+ layer_on(_MOUSE);
+ dprintf("Got on layer %s ", MOUSE);
+ update_tri_layer(_LOWER, _RAISE, _MOUSE);
+ } else {
+ layer_off(_MOUSE);
+ dprintf("Got off layer %s ", MOUSE);
+ update_tri_layer(_LOWER, _RAISE, _MOUSE);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/iris/keymaps/omgvee/readme.md b/keyboards/iris/keymaps/omgvee/readme.md
new file mode 100644
index 0000000000..bf9a5acb1f
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/readme.md
@@ -0,0 +1,17 @@
+# Reade.md for what I want from an Iris perfect layout
+======================================================
+
+
+![My beloved IRIS keeb](https://i.imgur.com/wgsb37e.jpg)
+
+- mouse keys
+- media keys and media controls
+- in-switch LED intensity controls (+/-)
+- underglow RGB hue/color controls
+- underglow RGB intensity controls
+- familiar key arrangement with Enter and symbols on the usual keys (to the right hand side)
+- navigation keys should be the vim ones really, and same ones used for mouse;
+- also have alternates on the same layer, in the form of AWSD, as well as HJKL (keep in mind the order is Left, Up, Down, Right)
+- arrow keys on one layer, however with another modifier key, they become left=home, right=end, up=page up, down=page Down
+
+See keymap.c for layouts \ No newline at end of file
diff --git a/keyboards/iris/keymaps/omgvee/rules.mk b/keyboards/iris/keymaps/omgvee/rules.mk
new file mode 100644
index 0000000000..281f64c7eb
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/rules.mk
@@ -0,0 +1,7 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+CONSOLE_ENABLE = no
+COMMAND_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+NKRO_ENABLE = yes
diff --git a/keyboards/iris/keymaps/saviof/config.h b/keyboards/iris/keymaps/saviof/config.h
new file mode 100644
index 0000000000..eb4c7328eb
--- /dev/null
+++ b/keyboards/iris/keymaps/saviof/config.h
@@ -0,0 +1,39 @@
+/*
+Copyright 2018 Savio Fernandes
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+//#define USE_SERIAL
+#define USE_I2C
+
+/* Select hand configuration */
+
+//#define MASTER_LEFT
+#define MASTER_RIGHT
+// #define BACKLIGHT_BREATHING
+// #define EE_HANDS
+
+#define TAPPING_TERM 200
+
+// #undef RGBLED_NUM
+// #define RGBLIGHT_ANIMATIONS
+// #define RGBLED_NUM 30
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/iris/keymaps/saviof/keymap.c b/keyboards/iris/keymaps/saviof/keymap.c
new file mode 100644
index 0000000000..a63e606821
--- /dev/null
+++ b/keyboards/iris/keymaps/saviof/keymap.c
@@ -0,0 +1,107 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJ 3
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJ,
+};
+
+//Tap Dance Declarations
+enum {
+ TD_SPC_ENT = 0
+};
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_SPC_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)
+};
+
+#define KC_ KC_TRNS
+
+#define KC_LOWR LT(_LOWER, KC_LEFT) //LOWER
+#define KC_RASE LT(_RAISE, KC_RIGHT) //RAISE
+#define KC_ADJT LT(_ADJ, KC_LGUI) //RAISE
+#define KC_SCET TD(TD_SPC_ENT)
+#define KC_RST RESET
+#define KC_BL_S BL_STEP
+#define KC_DBUG DEBUG
+#define KC_RTOG RGB_TOG
+#define KC_RMOD RGB_MOD
+#define KC_LMOD RGB_RMOD
+#define KC_RHUI RGB_HUI
+#define KC_RHUD RGB_HUD
+#define KC_RSAI RGB_SAI
+#define KC_RSAD RGB_SAD
+#define KC_RVAI RGB_VAI
+#define KC_RVAD RGB_VAD
+#define KC_BTOG BL_TOGG
+#define KC_BLVL BL_STEP
+#define KC_BRTG BL_BRTG
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT_kc(
+ //,----+----+----+----+----+----. ,----+----+----+----+----+----.
+ ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ LSFT, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
+ //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
+ LCTL, Z , X , C , V , B ,HOME, END , N , M ,COMM,DOT ,SLSH,RSFT,
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ ADJT,LOWR, SPC, SCET,RASE, ENT
+ // `----+----+----' `----+----+----'
+ ),
+
+ [_LOWER] = LAYOUT_kc(
+ //,----+----+----+----+----+----. ,----+----+----+----+----+----.
+ TILD,EXLM, AT ,HASH, DLR,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ RST , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ DEL , ,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE,
+ //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
+ BL_S, , , ,DOWN,LCBR,LPRN, RPRN,RCBR, P1 , P2 , P3 ,MINS, ,
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ , ,DEL , DEL , , P0
+ // `----+----+----' `----+----+----'
+ ),
+
+ [_RAISE] = LAYOUT_kc(
+ //,----+----+----+----+----+----. ,----+----+----+----+----+----.
+ F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS,
+ //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
+ MUTE,MSTP,MPLY,VOLD,PGDN,MINS, , ,PLUS,END , , , , ,
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ , , , , ,
+ // `----+----+----' `----+----+----'
+ ),
+
+ [_ADJ] = LAYOUT_kc(
+ //,----+----+----+----+----+----. ,----+----+----+----+----+----.
+ ,LMOD, , , , , , , , , , ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ RTOG,RMOD,RHUI,RSAI,RVAI, , BTOG,BLVL,BRTG, , , ,
+ //|----+----+----+----+----+----| |----+----+----+----+----+----|
+ ,DBUG,RHUD,RSAD,RVAD, , , , , , , ,
+ //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
+ BL_S,RST , , , , , , , , , , , , ,
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ , , , , ,
+ // `----+----+----' `----+----+----'
+ )
+
+};
diff --git a/keyboards/iris/keymaps/saviof/rules.mk b/keyboards/iris/keymaps/saviof/rules.mk
new file mode 100644
index 0000000000..0e1023be1a
--- /dev/null
+++ b/keyboards/iris/keymaps/saviof/rules.mk
@@ -0,0 +1,3 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes
+TAP_DANCE_ENABLE=yes
diff --git a/keyboards/iris/keymaps/transmogrified/Readme.md b/keyboards/iris/keymaps/transmogrified/Readme.md
new file mode 100644
index 0000000000..96e27411dd
--- /dev/null
+++ b/keyboards/iris/keymaps/transmogrified/Readme.md
@@ -0,0 +1,9 @@
+This layout is an attempt to make switching between the Iris and my laptop keyboard as seemless as possible. I switch caps lock and Ctrl/ESC on my laptop and I am able to adjust well with everything else... I still miss the Iris, but I am able to get work done.
+
+I use the following lighting queues to indicate layer changes.
+
+* Momentary toggled layer : LEDs brighten and dim when layer is released.
+* Locked layer : LEDs breath.
+* Config layer locked : LEDs off.
+
+NOTE you will need to flash both sides to update the brightness_levels so that breathing works on both sides as expected.
diff --git a/keyboards/iris/keymaps/transmogrified/config.h b/keyboards/iris/keymaps/transmogrified/config.h
index 8df0824b7a..12f2d7d6d8 100644
--- a/keyboards/iris/keymaps/transmogrified/config.h
+++ b/keyboards/iris/keymaps/transmogrified/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2017 Danny Nguyen <danny@keeb.io>
+Copyright 2017 Adam Roberts <adam+gh@bikuman.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,11 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "config_common.h"
+#pragma once
/* Use I2C or Serial, not both */
@@ -27,8 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define USE_I2C
/* Select hand configuration */
-
-// #define MASTER_LEFT
+//#define MASTER_LEFT
#define MASTER_RIGHT
// #define EE_HANDS
@@ -39,4 +34,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
-#endif
+#define NO_USB_STARTUP_CHECK //keep both sides on when pc is sleeping.
+#define TAPPING_TERM 200
+
+// Remove features i don't use
+#define NO_ACTION_ONESHOT
+#define NO_ACTION_MACRO
+
+// Override the rev2 config.h BACKLIGHT_LEVELS setting
+#undef BACKLIGHT_LEVELS
+#define BACKLIGHT_LEVELS 125
diff --git a/keyboards/iris/keymaps/transmogrified/keymap.c b/keyboards/iris/keymaps/transmogrified/keymap.c
index 43d6cc6002..67545f08e6 100644
--- a/keyboards/iris/keymaps/transmogrified/keymap.c
+++ b/keyboards/iris/keymaps/transmogrified/keymap.c
@@ -2,64 +2,55 @@
#include "action_layer.h"
#include "eeconfig.h"
-// config settings
-#define TAPPING_TERM 250
-#define ONESHOT_TAP_TOGGLE 1
-#define ONESHOT_TIMEOUT 10000
-
extern keymap_config_t keymap_config;
#define _QWERTY 0
#define _COLEMAK 1
-#define _DVORAK 2
-#define _ONEHANDR 3
-#define _ONEHANDL 4
-#define _RLAYER 5
-#define _LLAYER 6
-#define _DUAL 7
-#define _CONFIG 8
+#define _RLAYER 2
+#define _LLAYER 3
+#define _DUAL 4
+#define _CONFIG 5
enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- ONEHANDR,
- ONEHANDL,
- RLAYER,
- LLAYER,
- RLOCK,
- LLOCK,
- DUAL,
- CONFIG,
+ QWERTY = SAFE_RANGE, // qwerty base layer
+ COLEMAK, // colemak base layer
+ RLAYER, // right layer
+ LLAYER, // left layer
+ RLOCK, // right layer LOCK
+ LLOCK, // left layer LOCK
+ DUAL, // right and left combo layer
+ CONFIG, // config layer
+ LEDUP, // custom LED brightness increase keycode
+ LEDDOWN, // custom LED brightness decrease keycode
};
/* Tap Dance */
enum {
- TD_LGUIAPP,
- TD_SHIFTCAPS,
+ TD_LGUIAPP, // LGUI x1, app/menu x2
+ TD_SHIFTCAPS, // LSHIFT x1, CAPS x3
+ TD_CTRLALTDL, // CTRL+ALT+DEL x3
+ TD_SHIFTCLAT, // LSHIFT x1, LCRTL x2, LALT x3, CTRL+ALT x4
};
/* NOOP Key and Transparent */
#define KC_ KC_TRNS
#define KC_XXXX KC_NO
-/* LAYERS */
+/* LAYERS / CUSTOM KEYS */
#define KC_LLAY LLAYER
#define KC_RLAY RLAYER
#define KC_RLOK RLOCK
#define KC_LLOK LLOCK
#define KC_QWER QWERTY
-#define KC_DVOR DVORAK
#define KC_COLE COLEMAK
-#define KC_ONER ONEHANDR
-#define KC_ONEL ONEHANDL
#define KC_DUAL DUAL
#define KC_CONF CONFIG
+#define KC_BLUP LEDUP
+#define KC_BLDN LEDDOWN
-/* Custom Shortened Keys */
+/* Custom Shortened Keys (4 digits so they fit in my grid) */
#define KC_MCTB LCTL(KC_TAB)
#define KC_MCST LCTL(LSFT(KC_TAB))
-#define KC_MCAD LALT(LCTL(KC_DEL))
#define KC_CTEC CTL_T(KC_ESC)
#define KC_SINS LSFT(KC_INS)
#define KC_LGU1 LGUI(KC_1)
@@ -72,27 +63,27 @@ enum {
#define KC_LGU8 LGUI(KC_8)
#define KC_LGU9 LGUI(KC_9)
#define KC_LGU0 LGUI(KC_0)
-#define KC_BLUP BL_INC
-#define KC_BLDN BL_DEC
#define KC_SYSR KC_SYSREQ
#define KC_REST RESET
/* Tap Dance */
#define KC_LGUA TD(TD_LGUIAPP)
-#define KC_SHCL TD(TD_SHIFTCAPS)
+#define KC_SHCP TD(TD_SHIFTCAPS)
+#define KC_CADL TD(TD_CTRLALTDL)
+#define KC_SHCA TD(TD_SHIFTCLAT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
- XXXX, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
+ CADL, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CTEC, A , S , D , F , G , H , J , K , L ,SCLN,ENT ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- SHCL, Z , X , C , V , B ,LLOK, RLOK, N , M ,COMM,DOT ,SLSH,RSFT,
+ SHCP, Z , X , C , V , B ,LLOK, RLOK, N , M ,COMM,DOT ,SLSH,SHCA,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LALT,LLAY,TAB , SPC ,RLAY,LGUA
// `----+----+----' `----+----+----'
@@ -100,60 +91,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
- XXXX, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
+ CADL, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,DEL ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CTEC, A , R , S , T , D , H , N , E , I , O ,ENT ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- SHCL, Z , X , C , V , B ,LLOK, RLOK, K , M ,COMM,DOT ,SLSH,RSFT,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- LALT,LLAY,TAB , SPC ,RLAY,LGUA
- // `----+----+----' `----+----+----'
- ),
-
- [_DVORAK] = LAYOUT_kc(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- XXXX, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,SLSH,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- CTEC, A , O , E , U , I , D , H , T , N , S ,ENT ,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- SHCL,SCLN, Q , J , K , X ,LLOK, RLOK, B , M , W , V , Z ,EQL ,
+ SHCP, Z , X , C , V , B ,LLOK, RLOK, K , M ,COMM,DOT ,SLSH,SHCA,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LALT,LLAY,TAB , SPC ,RLAY,LGUA
// `----+----+----' `----+----+----'
),
- [_ONEHANDR] = LAYOUT_kc(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 6 , 7 , 8 , 9 , 0 ,BSPC,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, Y , U , I , O , P ,DEL ,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, H , J , K , L ,SCLN,QUOT,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,QWER, XXXX, N , M ,COMM,DOT ,SLSH,RSFT,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- XXXX,XXXX,XXXX, SPC ,ONEL,ENT
- // `----+----+----' `----+----+----'
- ),
-
- [_ONEHANDL] = LAYOUT_kc(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 5 , 4 , 3 , 2 , 1 ,XXXX,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, T , R , E , W , Q ,TAB ,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, G , F , D , S , A ,ENT ,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX, B , V , C , X , Z ,SHCL,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- XXXX,XXXX,XXXX, SPC ,ONEL,ENT
- // `----+----+----' `----+----+----'
- ),
-
[_RLAYER] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
,SLCK,SYSR,PSCR,INS ,PAUS, MUTE,VOLD,VOLU,BLDN,BLUP, ,
@@ -163,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
,EXLM,PIPE,DLR ,LPRN,RPRN, AMPR,LEFT,DOWN,RGHT,MINS,QUOT,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
, AT ,HASH,PERC,LCBR,RCBR, , ,CIRC,END ,UNDS,PGDN,BSLS, ,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
+ //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, , , , ,
// `----+----+----' `----+----+----'
),
@@ -186,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- ,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,MS_U,XXXX,XXXX,MCAD,
+ ,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,MS_U,XXXX,XXXX,XXXX,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
,XXXX,XXXX,XXXX,XXXX,XXXX, BTN2,MS_L,MS_D,MS_R,BTN1,XXXX,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
@@ -200,9 +149,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
REST,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- XXXX,QWER,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,ONER,XXXX,XXXX,
+ XXXX,QWER,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- XXXX,XXXX,XXXX,DVOR,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,
+ XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
XXXX,XXXX,XXXX,COLE,XXXX,XXXX, , ,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
@@ -212,6 +161,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
+/* VARIABLES */
+// Configurable Variables for layer toggled light
+int layerBLStep = 20; // change how much the brightness changes when holding layer key
+int breathPulse = 5; // timing of the breathing
+int breathPulseStall = 3; // time to pause at top and bottom of breath cycle
+int blSteps = 6; // blSteps + 1 is the amount of brightness settings when manually adjusting
+
+// Variables needed for layer locked breathing and layer toggling lighting to work
+int counter = 0;
+bool breathUp = true;
+bool resetBL = false;
+bool rlocked = false;
+bool llocked = false;
+bool configOn = false;
+int lockedBLLevel;
+int momentaryLBLLevel;
+int momentaryRBLLevel;
+int currentBL;
+/* END VARIABLES */
+
/* TAP DANCE */
void shift_caps_down (qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 3) {
@@ -220,7 +189,6 @@ void shift_caps_down (qk_tap_dance_state_t *state, void *user_data) {
register_code (KC_LSFT);
}
}
-
void shift_caps_up (qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 3) {
unregister_code (KC_CAPS);
@@ -228,54 +196,90 @@ void shift_caps_up (qk_tap_dance_state_t *state, void *user_data) {
unregister_code (KC_LSFT);
}
}
+void shift_ctrlalt_down (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count >= 4) {
+ register_code (KC_LCTL);
+ register_code (KC_LALT);
+ } else if (state->count == 3) {
+ register_code (KC_LALT);
+ } else if (state->count == 2) {
+ register_code (KC_LCTL);
+ } else {
+ register_code (KC_RSFT);
+ }
+}
+void shift_ctlalt_up (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count >= 4) {
+ unregister_code (KC_LALT);
+ unregister_code (KC_LCTL);
+ } else if (state->count == 3) {
+ unregister_code (KC_LALT);
+ } else if (state->count == 2) {
+ unregister_code (KC_LCTL);
+ } else {
+ unregister_code (KC_RSFT);
+ }
+}
+void ctrlaltdel_up (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count >= 3) {
+ unregister_code (KC_DEL);
+ unregister_code (KC_LALT);
+ unregister_code (KC_LCTL);
+ } else {
+ }
+}
+void ctrlaltdel_down (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count >= 3) {
+ register_code (KC_LCTL);
+ register_code (KC_LALT);
+ register_code (KC_DEL);
+ } else {
+ }
+}
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_LGUIAPP] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, KC_APP),
- [TD_SHIFTCAPS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, shift_caps_down, shift_caps_up)
+ [TD_SHIFTCAPS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, shift_caps_down, shift_caps_up),
+ [TD_SHIFTCLAT] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, shift_ctrlalt_down, shift_ctlalt_up),
+ [TD_CTRLALTDL] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ctrlaltdel_down, ctrlaltdel_up)
};
-
/* END TAP DANCE */
+
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}
-/* Variables for layer light toggling */
-static uint16_t currentBL = 0;
-static uint16_t rlocked = 0;
-static uint16_t llocked = 0;
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
+ configOn = false;
+ if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){
+ backlight_toggle();
+ }
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case ONEHANDR:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_ONEHANDR);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
+ configOn = false;
+ if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){
+ backlight_toggle();
+ }
}
return false;
break;
case CONFIG:
if (record->event.pressed) {
set_single_persistent_default_layer(_CONFIG);
- backlight_toggle();
+ configOn = true;
+ if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){
+ backlight_toggle();
+ }
}
return false;
break;
@@ -283,22 +287,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
layer_on(_RLAYER);
update_tri_layer(_RLAYER, _LLAYER, _DUAL);
- /* add logic to toggle backlight change when on a layer */
- currentBL = get_backlight_level();
- if ( currentBL == 0 || currentBL == 1 ) {
- backlight_set(5);
- } else {
- backlight_set(0);
+ momentaryRBLLevel = get_backlight_level();
+ if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){
+ for (int i = 0; i < layerBLStep ; i++){
+ backlight_increase();
+ }
}
} else {
unregister_code(KC_LGUI);
- rlocked = 0;
layer_off(_RLAYER);
update_tri_layer(_RLAYER, _LLAYER, _DUAL);
- if ( llocked == 0 ) {
- backlight_set(currentBL);
+ if ( llocked == false && configOn == false ) {
+ for (int i = 0; i < layerBLStep ; i++){
+ backlight_decrease();
+ }
} else {
}
+ rlocked = false;
}
return false;
break;
@@ -306,21 +311,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
layer_on(_LLAYER);
update_tri_layer(_RLAYER, _LLAYER, _DUAL);
- /* add logic to toggle backlight change when on a layer */
- currentBL = get_backlight_level();
- if ( currentBL == 0 || currentBL == 1 ) {
- backlight_set(5);
- } else {
- backlight_set(0);
+ momentaryLBLLevel = get_backlight_level();
+ if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){
+ for (int i = 0; i < layerBLStep ; i++){
+ backlight_increase();
+ }
}
} else {
- llocked = 0;
layer_off(_LLAYER);
update_tri_layer(_RLAYER, _LLAYER, _DUAL);
- if ( rlocked == 0 ) {
- backlight_set(currentBL);
+ if ( rlocked == false && configOn == false ) {
+ for (int i = 0; i < layerBLStep ; i++){
+ backlight_decrease();
+ }
} else {
}
+ llocked = false;
}
return false;
break;
@@ -328,13 +334,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
layer_on(_RLAYER);
/* add logic to toggle backlight change when on a layer */
- rlocked = 1;
- currentBL = get_backlight_level();
- if ( currentBL == 0 || currentBL == 1 ) {
- backlight_set(5);
- } else {
- backlight_set(0);
+ if (rlocked == false && llocked == false){
+ lockedBLLevel = get_backlight_level();
}
+ rlocked = true;
} else {
}
return false;
@@ -343,25 +346,76 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
layer_on(_LLAYER);
/* add logic to toggle backlight change when on a layer */
- llocked = 1;
- currentBL = get_backlight_level();
- if ( currentBL == 0 || currentBL == 1 ) {
- backlight_set(5);
- } else {
- backlight_set(0);
+ if (rlocked == false && llocked == false){
+ lockedBLLevel = get_backlight_level();
+ }
+ llocked = true;
+ } else {
+ }
+ return false;
+ break;
+ case LEDUP:
+ if (record->event.pressed) {
+ for (int i = 0; i < (BACKLIGHT_LEVELS / blSteps ) ; i++ ){
+ backlight_increase();
}
} else {
}
return false;
break;
- case ONEHANDL:
+ case LEDDOWN:
if (record->event.pressed) {
- layer_on(_ONEHANDL);
+ for (int i = 0; i < (BACKLIGHT_LEVELS / blSteps ) ; i++ ){
+ backlight_decrease();
+ }
} else {
- layer_off(_ONEHANDL);
}
return false;
break;
}
return true;
}
+
+
+// LED breathing when a layer is locked
+void matrix_scan_user(void) {
+ // Only breath if layer is locked
+ if (lockedBLLevel != 0 && (rlocked || llocked)){
+ // counter to slow down the breathing
+ if (counter >= breathPulse) {
+ counter = 0;
+ // iterate brightness up or down
+ if (breathUp){
+ backlight_increase();
+ } else {
+ backlight_decrease();
+ }
+ // figure out if we need to change directions
+ currentBL = get_backlight_level();
+ if (currentBL >= BACKLIGHT_LEVELS){
+ breathUp = false;
+ // make counter a big negative number to add some stall time
+ counter = ((BACKLIGHT_LEVELS * breathPulseStall) * (-1));
+ } else if (currentBL == 0){
+ breathUp = true;
+ // make counter a big negative number to add some stall time
+ counter = ((BACKLIGHT_LEVELS * breathPulseStall) * (-1));
+ }
+ // make not that we need to change the brightness back to when we started the breathing
+ resetBL = true;
+ } else {
+ counter++;
+ }
+ } else {
+ // get the brightness back to the level it started at
+ if (resetBL){
+ int i = 0;
+ // i is just there to make sure i don't get stuck in a loop if for some reason get_backlight_level isn't working as expected
+ while (get_backlight_level() != lockedBLLevel && i <= BACKLIGHT_LEVELS ){
+ backlight_step();
+ i++;
+ }
+ resetBL = false;
+ }
+ }
+}
diff --git a/keyboards/iris/keymaps/vyolle/config.h b/keyboards/iris/keymaps/vyolle/config.h
new file mode 100644
index 0000000000..1adbd65b5a
--- /dev/null
+++ b/keyboards/iris/keymaps/vyolle/config.h
@@ -0,0 +1,44 @@
+/*
+Copyright 2017 Danny Nguyen <danny@hexwire.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+#define USE_I2C
+// #define USE_SERIAL
+
+
+#define FORCE_NKRO //Cause it's suprisingly handy.
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+
+#define MOUSEKEY_INTERVAL 16
+
+#define MOUSEKEY_DELAY 0
+
+#define MOUSEKEY_TIME_TO_MAX 60
+
+#define MOUSEKEY_MAX_SPEED 7
+
+#define MOUSEKEY_WHEEL_DELAY 0
+
diff --git a/keyboards/iris/keymaps/vyolle/keymap.c b/keyboards/iris/keymaps/vyolle/keymap.c
new file mode 100644
index 0000000000..33e1718211
--- /dev/null
+++ b/keyboards/iris/keymaps/vyolle/keymap.c
@@ -0,0 +1,115 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 4
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ ADJUST,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RSFT,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RGUI,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ KC_LCTL, LOWER, KC_SPC, KC_ENT, RAISE, KC_RCTL
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_LOWER] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_7, KC_8, KC_9, KC_PLUS, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSLS, KC_4, KC_5, KC_6, KC_MINUS, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_VOLU, KC_HOME, KC_LEFT, KC_UP, KC_RGHT, KC_PGUP, KC_PAST, KC_1, KC_2, KC_3, KC_EQL, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_VOLD, KC_END, KC_INS, KC_DOWN, KC_DEL, KC_PGDN, KC_MUTE, _______, _______, KC_0, KC_COMM, KC_DOT, KC_ENT, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_RAISE] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_GRAVE, KC_TILD, KC_UNDS, KC_EQL, KC_PIPE, _______, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_BSLASH,KC_LCBR, KC_RCBR, KC_MINUS, KC_LBRC, KC_RBRC, _______, KC_LEFT, KC_UP, KC_RGHT, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ KC_COLN, KC_LT, KC_GT, KC_PLUS, KC_LPRN, KC_RPRN, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
+ _______, _______, KC_CAPS, KC_MENU, KC_APP, KC_PSCR, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, KC_PAUS, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, KC_SLCK, _______, _______, _______, _______, _______, _______,
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+ _______, _______, _______, _______, _______, _______
+ // └────────┴────────┴────────┘ └────────┴────────┴────────┘
+ ),
+};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/iris/keymaps/vyolle/rules.mk b/keyboards/iris/keymaps/vyolle/rules.mk
new file mode 100644
index 0000000000..e7cbfb83d8
--- /dev/null
+++ b/keyboards/iris/keymaps/vyolle/rules.mk
@@ -0,0 +1,7 @@
+EXTRAKEY_ENABLE = yes # Disable if you run out of usb endpoints. Media keys need this to work.
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700) Uses extra usb endpoints.
+STENO_ENABLE = no # Additional protocols for Stenography(+1700), requires VIRTSER.
+AUDIO_ENABLE = no # Audio output on port C6
+MIDI_ENABLE = no # MIDI controls
+NKRO_ENABLE = yes
+BOOTMAGIC_ENABLE = yes
diff --git a/keyboards/iris/keymaps/wanleg/config.h b/keyboards/iris/keymaps/wanleg/config.h
new file mode 100644
index 0000000000..9b90007688
--- /dev/null
+++ b/keyboards/iris/keymaps/wanleg/config.h
@@ -0,0 +1,33 @@
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+#undef USE_I2C
+
+/* Select hand configuration */
+
+// #define MASTER_LEFT
+// #define MASTER_RIGHT
+#define EE_HANDS
+
+#define QMK_ESC_OUTPUT F6 // usually COL
+#define QMK_ESC_INPUT D7 // usually ROW
+#define QMK_LED B0
diff --git a/keyboards/iris/keymaps/wanleg/keymap.c b/keyboards/iris/keymaps/wanleg/keymap.c
new file mode 100644
index 0000000000..6f8ff90661
--- /dev/null
+++ b/keyboards/iris/keymaps/wanleg/keymap.c
@@ -0,0 +1,76 @@
+
+#include QMK_KEYBOARD_H
+#include "wanleg.h"
+
+
+#define LAYOUT_iris_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
+ K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \
+ ) \
+ LAYOUT_wrapper( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
+ K31, K32, K33, K34, K35, K36, _______, _______, K37, K38, K39, K3A, K3B, K3C, \
+ _______, _______, _______, _______, _______, _______ \
+ )
+#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_GK] = LAYOUT_iris_base_wrapper(
+ _______________GherkinLike_0_______________,
+ _______________GherkinLike_1_______________,
+ _______________GherkinLike_2_______________,
+ _______________GherkinLike_3_OneHand_______
+ ),
+ [ONE] = LAYOUT_wrapper(
+ _______________Qwerty_Row__0_______________,
+ _______________Qwerty_Row__1_______________,
+ _______________Qwerty_Row__2_______________,
+ KC_LCTL, KC_LGUI, KC_LALT, GHERKIN, SUBTER, SH_T(KC_SPC), _______, _______, SH_T(KC_SPC), SUPRA, KC_RGUI, KC_RALT, GHERKIN, KC_RCTL,
+ _______, _______, _______, _______, _______, _______
+ ),
+ [SUP] = LAYOUT_iris_base_wrapper(
+ ________________SUPRA_Row_0________________,
+ ________________SUPRA_Row_1________________,
+ ________________SUPRA_Row_2________________,
+ ________________SUPRA_Row_3________________
+ ),
+ [SUB] = LAYOUT_iris_base_wrapper(
+ _______________SUBTER_Row__0_______________,
+ _______________SUBTER_Row__1_______________,
+ _______________SUBTER_Row__2_______________,
+ _______________SUBTER_Row__3_______________
+ ),
+ [NUM] = LAYOUT_iris_base_wrapper(
+ _______________NUMBERS_Row_0_______________,
+ _______________NUMBERS_Row_1_______________,
+ _______________NUMBERS_Row_2_______________,
+ _______________NUMBERS_Row_3_______________
+ ),
+ [DIR] = LAYOUT_iris_base_wrapper(
+ _____________DIRECTIONS_Row__0_____________,
+ _____________DIRECTIONS_Row__1_____________,
+ _____________DIRECTIONS_Row__2_____________,
+ _______, _______, ONEHAND, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [ETC] = LAYOUT_iris_base_wrapper(
+ ______________ETCETERA_Row__0______________,
+ ______________ETCETERA_Row__1______________,
+ ______________ETCETERA_Row__2______________,
+ ______________ETCETERA_Row__3______________
+ )
+
+};
+
+
+void matrix_init_keymap(void) {
+ DDRD &= ~(1<<5);
+ PORTD &= ~(1<<5);
+
+ DDRB &= ~(1<<0);
+ PORTB &= ~(1<<0);
+}
diff --git a/keyboards/iris/keymaps/wanleg/rules.mk b/keyboards/iris/keymaps/wanleg/rules.mk
new file mode 100644
index 0000000000..bbb05a5b48
--- /dev/null
+++ b/keyboards/iris/keymaps/wanleg/rules.mk
@@ -0,0 +1,5 @@
+RGBLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = no
+
+SWAP_HANDS_ENABLE = yes
+BOOTLOADER = qmk-dfu
diff --git a/keyboards/iris/keymaps/xyverz/config.h b/keyboards/iris/keymaps/xyverz/config.h
index 0c61a8eac8..b820a0753d 100644
--- a/keyboards/iris/keymaps/xyverz/config.h
+++ b/keyboards/iris/keymaps/xyverz/config.h
@@ -23,8 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define USE_SERIAL
#define EE_HANDS
-#define PREVENT_STUCK_MODIFIERS
-
#undef PRODUCT
#define PRODUCT Iris Keyboard
diff --git a/keyboards/iris/rev1/config.h b/keyboards/iris/rev1/config.h
index c22d49b262..3b31ca0d7e 100644
--- a/keyboards/iris/rev1/config.h
+++ b/keyboards/iris/rev1/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef REV1_CONFIG_H
-#define REV1_CONFIG_H
+#pragma once
#include QMK_KEYBOARD_CONFIG_H
@@ -49,6 +48,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -64,10 +66,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
-#define RGBLIGHT_TIMER
#define RGBLED_NUM 12 // Number of LEDs
-#define ws2812_PORTREG PORTD
-#define ws2812_DDRREG DDRD
/*
* Feature disable options
@@ -86,5 +85,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/keyboards/iris/rev1/rev1.c b/keyboards/iris/rev1/rev1.c
index 3fdfaa94bc..fe91fa3ead 100644
--- a/keyboards/iris/rev1/rev1.c
+++ b/keyboards/iris/rev1/rev1.c
@@ -1,6 +1,5 @@
#include "rev1.h"
-
#ifdef SSD1306OLED
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
diff --git a/keyboards/iris/rev1/rev1.h b/keyboards/iris/rev1/rev1.h
index 4db6bd1973..da5c9cdc03 100644
--- a/keyboards/iris/rev1/rev1.h
+++ b/keyboards/iris/rev1/rev1.h
@@ -1,5 +1,4 @@
-#ifndef REV1_H
-#define REV1_H
+#pragma once
#include "iris.h"
@@ -36,5 +35,3 @@
{ R35, R34, R33, R32, R31, R30 }, \
{ KC_NO, KC_NO, RT4, RT1, RT2, RT3 } \
}
-
-#endif
diff --git a/keyboards/iris/rev1_led/config.h b/keyboards/iris/rev1_led/config.h
index 957776022e..e9739c0031 100644
--- a/keyboards/iris/rev1_led/config.h
+++ b/keyboards/iris/rev1_led/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef REV1_CONFIG_H
-#define REV1_CONFIG_H
+#pragma once
#include QMK_KEYBOARD_CONFIG_H
@@ -49,6 +48,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -64,10 +66,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
-#define RGBLIGHT_TIMER
#define RGBLED_NUM 12 // Number of LEDs
-#define ws2812_PORTREG PORTD
-#define ws2812_DDRREG DDRD
/*
* Feature disable options
@@ -86,5 +85,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/keyboards/iris/rev1_led/rev1_led.c b/keyboards/iris/rev1_led/rev1_led.c
index 681625f4b0..d08eaea662 100644
--- a/keyboards/iris/rev1_led/rev1_led.c
+++ b/keyboards/iris/rev1_led/rev1_led.c
@@ -1,6 +1,5 @@
#include "rev1_led.h"
-
#ifdef SSD1306OLED
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
diff --git a/keyboards/iris/rev1_led/rev1_led.h b/keyboards/iris/rev1_led/rev1_led.h
index bac5e7bec3..da5c9cdc03 100644
--- a/keyboards/iris/rev1_led/rev1_led.h
+++ b/keyboards/iris/rev1_led/rev1_led.h
@@ -1,5 +1,4 @@
-#ifndef REV1_LED_H
-#define REV1_LED_H
+#pragma once
#include "iris.h"
@@ -36,5 +35,3 @@
{ R35, R34, R33, R32, R31, R30 }, \
{ KC_NO, KC_NO, RT4, RT1, RT2, RT3 } \
}
-
-#endif
diff --git a/keyboards/iris/rev2/config.h b/keyboards/iris/rev2/config.h
index 4aa8cda176..d43d4b1c64 100644
--- a/keyboards/iris/rev2/config.h
+++ b/keyboards/iris/rev2/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef REV1_CONFIG_H
-#define REV1_CONFIG_H
+#pragma once
#include QMK_KEYBOARD_CONFIG_H
@@ -49,6 +48,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -64,10 +66,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
-#define RGBLIGHT_TIMER
#define RGBLED_NUM 12 // Number of LEDs
-#define ws2812_PORTREG PORTD
-#define ws2812_DDRREG DDRD
/*
* Feature disable options
@@ -86,5 +85,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/keyboards/iris/rev2/rev2.h b/keyboards/iris/rev2/rev2.h
index d581b346d1..da5c9cdc03 100644
--- a/keyboards/iris/rev2/rev2.h
+++ b/keyboards/iris/rev2/rev2.h
@@ -1,5 +1,4 @@
-#ifndef REV2_H
-#define REV2_H
+#pragma once
#include "iris.h"
@@ -36,5 +35,3 @@
{ R35, R34, R33, R32, R31, R30 }, \
{ KC_NO, KC_NO, RT4, RT1, RT2, RT3 } \
}
-
-#endif
diff --git a/keyboards/iris/rev3/config.h b/keyboards/iris/rev3/config.h
new file mode 100644
index 0000000000..5642512f39
--- /dev/null
+++ b/keyboards/iris/rev3/config.h
@@ -0,0 +1,87 @@
+/*
+Copyright 2017 Danny Nguyen <danny@keeb.io>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include QMK_KEYBOARD_CONFIG_H
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xCEEB
+#define PRODUCT_ID 0x1256
+#define DEVICE_VER 0x0300
+#define MANUFACTURER Keebio
+#define PRODUCT Iris Keyboard
+#define DESCRIPTION Split 50 percent ergonomic keyboard
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D2, D3, D5, D7, D6 }
+#define MATRIX_COL_PINS { F1, F4, F5, F6, D4, B4 }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+// #define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+#define BACKLIGHT_PIN B6
+#define BACKLIGHT_LEVELS 5
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN F7
+#define RGBLED_NUM 12 // Number of LEDs
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/iris/rev3/rev3.c b/keyboards/iris/rev3/rev3.c
new file mode 100644
index 0000000000..d8272db0f5
--- /dev/null
+++ b/keyboards/iris/rev3/rev3.c
@@ -0,0 +1,42 @@
+#include "rev3.h"
+
+#ifdef SSD1306OLED
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ led_set_user(usb_led);
+}
+#endif
+
+void matrix_init_kb(void) {
+
+ // // green led on
+ // DDRD |= (1<<5);
+ // PORTD &= ~(1<<5);
+
+ // // orange led on
+ // DDRB |= (1<<0);
+ // PORTB &= ~(1<<0);
+
+ matrix_init_user();
+};
+
+
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+// swap-hands action needs a matrix to define the swap
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ /* Left hand, matrix positions */
+ {{0,5}, {1,5}, {2,5}, {3,5}, {4,5}, {5,5}},
+ {{0,6}, {1,6}, {2,6}, {3,6}, {4,6}, {5,6}},
+ {{0,7}, {1,7}, {2,7}, {3,7}, {4,7}, {5,7}},
+ {{0,8}, {1,8}, {2,8}, {3,8}, {4,8}, {5,8}},
+ {{0,9}, {1,9}, {2,9}, {3,9}, {4,9}, {5,9}},
+ /* Right hand, matrix positions */
+ {{0,0}, {1,0}, {2,0}, {3,0}, {4,0}, {5,0}},
+ {{0,1}, {1,1}, {2,1}, {3,1}, {4,1}, {5,1}},
+ {{0,2}, {1,2}, {2,2}, {3,2}, {4,2}, {5,2}},
+ {{0,3}, {1,3}, {2,3}, {3,3}, {4,3}, {5,3}},
+ {{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}},
+};
+#endif
+
diff --git a/keyboards/iris/rev3/rev3.h b/keyboards/iris/rev3/rev3.h
new file mode 100644
index 0000000000..d44cef9a6b
--- /dev/null
+++ b/keyboards/iris/rev3/rev3.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include "iris.h"
+#include "quantum.h"
+
+
+#ifdef USE_I2C
+#include <stddef.h>
+#ifdef __AVR__
+ #include <avr/io.h>
+ #include <avr/interrupt.h>
+#endif
+#endif
+
+//void promicro_bootloader_jmp(bool program);
+
+#define LAYOUT( \
+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
+ L30, L31, L32, L33, L34, L35, LT4, RT4, R30, R31, R32, R33, R34, R35, \
+ LT1, LT2, LT3, RT3, RT2, RT1 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05 }, \
+ { L10, L11, L12, L13, L14, L15 }, \
+ { L20, L21, L22, L23, L24, L25 }, \
+ { L30, L31, L32, L33, L34, L35 }, \
+ { KC_NO, KC_NO, LT4, LT1, LT2, LT3 }, \
+ { R05, R04, R03, R02, R01, R00 }, \
+ { R15, R14, R13, R12, R11, R10 }, \
+ { R25, R24, R23, R22, R21, R20 }, \
+ { R35, R34, R33, R32, R31, R30 }, \
+ { KC_NO, KC_NO, RT4, RT1, RT2, RT3 } \
+ }
diff --git a/keyboards/iris/rev3/rules.mk b/keyboards/iris/rev3/rules.mk
new file mode 100644
index 0000000000..d7463419b4
--- /dev/null
+++ b/keyboards/iris/rev3/rules.mk
@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes
diff --git a/keyboards/iris/rules.mk b/keyboards/iris/rules.mk
index 07d78059ea..e93d7dae80 100644
--- a/keyboards/iris/rules.mk
+++ b/keyboards/iris/rules.mk
@@ -1,5 +1,4 @@
# MCU name
-#MCU = at90usb1287
MCU = atmega32u4
# Processor frequency.
@@ -36,9 +35,13 @@ F_USB = $(F_CPU)
# Bootloader
# This definition is optional, and if your keyboard supports multiple bootloaders of
-# different sizes, comment this out, and the correct address will be loaded
+# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
-BOOTLOADER = caterina
+ifeq ($(strip $(KEYBOARD)), iris/rev3)
+ BOOTLOADER = dfu
+else
+ BOOTLOADER = caterina
+endif
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
@@ -58,9 +61,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-SUBPROJECT_rev1 = yes
-USE_I2C = yes
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend