aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
4 files changed, 246 insertions, 0 deletions
diff --git a/keyboards/iris/keymaps/omgvee/config.h b/keyboards/iris/keymaps/omgvee/config.h
new file mode 100644
index 000000000..c29201fe1
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/config.h
@@ -0,0 +1,49 @@
1/*
2Copyright 2017 Danny Nguyen <danny@keeb.io>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* Use I2C or Serial, not both */
21
22#define USE_SERIAL
23// #define USE_I2C
24
25/* Select hand configuration */
26
27#define MASTER_LEFT
28// #define MASTER_RIGHT
29// #define EE_HANDS
30
31#undef RGBLED_NUM
32#define RGBLIGHT_ANIMATIONS
33#define RGBLED_NUM 15
34#define RGBLIGHT_HUE_STEP 8
35#define RGBLIGHT_SAT_STEP 8
36#define RGBLIGHT_VAL_STEP 8
37
38//tap dance shenanigans
39#define TAPPING_TERM 200
40
41//force n-key rollover to be enabled every boot
42#define FORCE_NKRO
43
44//some mouse keys tweaking, as it is generally too slow by default
45#define MOUSEKEY_INTERVAL 20
46#define MOUSEKEY_DELAY 0
47#define MOUSEKEY_TIME_TO_MAX 60
48#define MOUSEKEY_MAX_SPEED 7
49#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 000000000..da76b593b
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/keymap.c
@@ -0,0 +1,173 @@
1#include QMK_KEYBOARD_H
2#include <print.h>
3
4extern keymap_config_t keymap_config;
5
6#define _QWERTY 0
7#define _LOWER 1
8#define _RAISE 2
9#define _MOUSE 3
10#define _ADJUST 4
11
12enum custom_keycodes {
13 QWERTY = SAFE_RANGE,
14 LOWER,
15 RAISE,
16 MOUSE,
17 ADJUST,
18};
19
20#define KC_MOUS TT(_MOUSE) // double tab toggle mouse layer
21#define MS_L KC_MS_LEFT
22#define MS_R KC_MS_RIGHT
23#define MS_U KC_MS_UP
24#define MS_D KC_MS_DOWN
25#define MS_B1 KC_MS_BTN1
26#define MS_B2 KC_MS_BTN2
27#define MW_U KC_MS_WH_UP
28#define MW_D KC_MS_WH_DOWN
29#define MW_L KC_MS_WH_LEFT
30#define MW_R KC_MS_WH_RIGHT
31
32//Tap Dance Declarations
33enum {
34 TD_SCL = 0
35};
36//Tap Dance Definitions
37qk_tap_dance_action_t tap_dance_actions[] = {
38 //Tap once for Shift, twice for Caps Lock
39 [TD_SCL] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
40};
41enum {
42 TD_EBT = 0
43};
44
45
46const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47
48 [_QWERTY] = LAYOUT(
49 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
50 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
51 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
52 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
53 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
54 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,
55 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
56 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,
57 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
58 KC_LALT, LOWER, KC_ENT, KC_SPC, RAISE, KC_LGUI
59 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
60 ),
61
62 [_LOWER] = LAYOUT(
63 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
64 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, KC_BSPC,
65 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
66 _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_PIPE,
67 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
68 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,_______, KC_ENT,
69 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
70 KC_LCTL, _______, _______, _______, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, _______, _______, _______, _______,
71 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
72 _______, _______, KC_DEL, KC_DEL, _______, _______
73 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
74 ),
75
76 [_RAISE] = LAYOUT(
77 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
78 KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
79 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
80 RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
81 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
82 RGB_MOD, KC_MPRV, KC_MNXT, _______, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_ENT,
83 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
84 _______, KC_MSTP, KC_MPLY, _______, KC_PGDN, KC_MINS, KC_LPRN, KC_RPRN, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, _______,
85 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
86 _______, _______, _______, _______, _______, _______
87 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
88 ),
89
90 [_MOUSE] = LAYOUT(
91 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
92 BL_BRTG, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, RESET,
93 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
94 BL_TOGG, MS_B1, MS_U, MS_B2, MW_U, _______, _______, MS_B1, MS_B2, _______, _______, _______,
95 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
96 _______, MS_L, MS_D, MS_R, MW_D, _______, MS_L, MS_D , MS_U, MS_R ,_______, _______,
97 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
98 BL_STEP, _______, _______, MW_L, MW_R, _______, _______, _______, KC_BRID, KC_BRIU, KC_VOLD, KC_VOLU, KC_MUTE, _______,
99 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
100 _______, _______, _______, _______, _______, _______
101 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
102 ),
103
104 [_ADJUST] = LAYOUT(
105 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
106 _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, RESET,
107 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
108 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
109 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
112 _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, KC_VOLD, KC_VOLU, KC_MUTE, _______,
113 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
114 _______, _______, _______, _______, _______, _______
115 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
116 )
117};
118
119bool process_record_user(uint16_t keycode, keyrecord_t *record) {
120 switch (keycode) {
121 case QWERTY:
122 if (record->event.pressed) {
123 set_single_persistent_default_layer(_QWERTY);
124 }
125 return false;
126 break;
127 case LOWER:
128 if (record->event.pressed) {
129 layer_on(_LOWER);
130 dprintf("Got on layer %s ", LOWER);
131 update_tri_layer(_LOWER, _RAISE, _MOUSE);
132 } else {
133 layer_off(_LOWER);
134 dprintf("Got off layer %s ", LOWER);
135 update_tri_layer(_LOWER, _RAISE, _MOUSE);
136 }
137 return false;
138 break;
139 case RAISE:
140 if (record->event.pressed) {
141 layer_on(_RAISE);
142 dprintf("Got on layer %s ", RAISE);
143 update_tri_layer(_LOWER, _RAISE, _MOUSE);
144 } else {
145 layer_off(_RAISE);
146 dprintf("Got off layer %s ", RAISE);
147 update_tri_layer(_LOWER, _RAISE, _MOUSE);
148 }
149 return false;
150 break;
151 case MOUSE:
152 if (record->event.pressed) {
153 layer_on(_MOUSE);
154 dprintf("Got on layer %s ", MOUSE);
155 update_tri_layer(_LOWER, _RAISE, _MOUSE);
156 } else {
157 layer_off(_MOUSE);
158 dprintf("Got off layer %s ", MOUSE);
159 update_tri_layer(_LOWER, _RAISE, _MOUSE);
160 }
161 return false;
162 break;
163 case ADJUST:
164 if (record->event.pressed) {
165 layer_on(_ADJUST);
166 } else {
167 layer_off(_ADJUST);
168 }
169 return false;
170 break;
171 }
172 return true;
173}
diff --git a/keyboards/iris/keymaps/omgvee/readme.md b/keyboards/iris/keymaps/omgvee/readme.md
new file mode 100644
index 000000000..bf9a5acb1
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/readme.md
@@ -0,0 +1,17 @@
1# Reade.md for what I want from an Iris perfect layout
2======================================================
3
4
5![My beloved IRIS keeb](https://i.imgur.com/wgsb37e.jpg)
6
7- mouse keys
8- media keys and media controls
9- in-switch LED intensity controls (+/-)
10- underglow RGB hue/color controls
11- underglow RGB intensity controls
12- familiar key arrangement with Enter and symbols on the usual keys (to the right hand side)
13- navigation keys should be the vim ones really, and same ones used for mouse;
14- 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)
15- arrow keys on one layer, however with another modifier key, they become left=home, right=end, up=page up, down=page Down
16
17See 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 000000000..281f64c7e
--- /dev/null
+++ b/keyboards/iris/keymaps/omgvee/rules.mk
@@ -0,0 +1,7 @@
1RGBLIGHT_ENABLE = yes
2BACKLIGHT_ENABLE = yes
3MOUSEKEY_ENABLE = yes
4CONSOLE_ENABLE = no
5COMMAND_ENABLE = yes
6TAP_DANCE_ENABLE = yes
7NKRO_ENABLE = yes