aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan <loksonarius@users.noreply.github.com>2020-06-18 01:20:45 -0400
committerGitHub <noreply@github.com>2020-06-17 22:20:45 -0700
commit78fdd406227f55f8bb2a1891e7fdbcb4b3daf13b (patch)
tree95cccb5a18e92e381fee78a579af4124cf70b4b0
parent43b6f031b184432eba647f04bc69ced72ee2dd08 (diff)
downloadqmk_firmware-78fdd406227f55f8bb2a1891e7fdbcb4b3daf13b.tar.gz
qmk_firmware-78fdd406227f55f8bb2a1891e7fdbcb4b3daf13b.zip
[Keymap] Dcompact for iris (#9406)
Co-authored-by: Dan Herrera <sonarius@shew.io> Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/keebio/iris/keymaps/dcompact/config.h21
-rw-r--r--keyboards/keebio/iris/keymaps/dcompact/keymap.c231
-rw-r--r--keyboards/keebio/iris/keymaps/dcompact/readme.md45
3 files changed, 297 insertions, 0 deletions
diff --git a/keyboards/keebio/iris/keymaps/dcompact/config.h b/keyboards/keebio/iris/keymaps/dcompact/config.h
new file mode 100644
index 000000000..149a54be7
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/dcompact/config.h
@@ -0,0 +1,21 @@
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// #define USE_I2C
21#define EE_HANDS
diff --git a/keyboards/keebio/iris/keymaps/dcompact/keymap.c b/keyboards/keebio/iris/keymaps/dcompact/keymap.c
new file mode 100644
index 000000000..ec1ffac8c
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/dcompact/keymap.c
@@ -0,0 +1,231 @@
1#include QMK_KEYBOARD_H
2
3// Custom Keycodes and Combinations Used
4#define DEL_SHF SFT_T(KC_DEL)
5#define QUAKE LCTL(KC_GRV)
6
7#define WKSP_L LALT(LCTL(KC_LEFT))
8#define WKSP_D LALT(LCTL(KC_DOWN))
9#define WKSP_U LALT(LCTL(KC_UP))
10#define WKSP_R LALT(LCTL(KC_RGHT))
11
12enum custom_layers {
13 _BASE,
14 _LOWER,
15 _RAISE,
16 _FUNC,
17 _GAME,
18 _LNUM,
19 _LFUN,
20 _ADJUST
21};
22
23
24enum custom_keycodes {
25 BASE = SAFE_RANGE,
26 LOWER,
27 RAISE,
28 FUNC,
29 GAME,
30 EXT_GM,
31 LNUM,
32 LFUN,
33 ADJUST
34};
35
36
37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38
39 [_BASE] = LAYOUT(
40 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
41 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
42 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
43 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
44 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
45 DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC,
46 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
47 KC_LCTL, GAME, KC_LGUI, KC_LALT, LOWER, KC_LSFT, _______, _______, KC_SPC, RAISE, KC_RALT, KC_RGUI, FUNC, KC_ENT,
48 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
49 KC_LALT, LOWER, KC_LSFT, KC_SPC, RAISE, KC_RALT
50 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
51 ),
52
53 [_LOWER] = LAYOUT(
54 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
55 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX,
56 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
57 XXXXXXX, KC_PSCR, KC_MENU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
58 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
59 XXXXXXX, KC_CAPS, KC_LNUM, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_L, WKSP_D, WKSP_U, WKSP_R, XXXXXXX,
60 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
61 _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
62 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
63 _______, _______, _______, XXXXXXX, _______, XXXXXXX
64 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
65 ),
66
67 [_RAISE] = LAYOUT(
68 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
69 QUAKE, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL,
70 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
71 XXXXXXX, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_4, KC_5, KC_6, KC_ASTR, KC_PLUS,
72 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
73 XXXXXXX, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_MINS, KC_BSPC,
74 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
75 _______, XXXXXXX, _______, _______, _______, KC_LABK, XXXXXXX, XXXXXXX, KC_RABK, _______, KC_0, KC_DOT, KC_COMM, XXXXXXX,
76 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
77 _______, _______, KC_LABK, KC_RABK, _______, KC_0
78 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
79 ),
80
81 [_FUNC] = LAYOUT(
82 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
83 XXXXXXX, KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,
84 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
85 XXXXXXX, KC_WAKE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX,
86 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
87 XXXXXXX, KC_PWR, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX,
88 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
89 _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
90 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
91 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
92 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
93 ),
94
95 [_GAME] = LAYOUT(
96 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
97 KC_TAB, KC_Q, KC_W, KC_E, KC_H, KC_Z, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
98 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
99 KC_LSFT, KC_A, KC_S, KC_D, KC_U, KC_X, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
100 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
101 KC_LCTL, KC_F, KC_G, KC_R, KC_M, KC_C, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
102 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
103 KC_ESC, KC_TILD, KC_LALT, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EXT_GM,
104 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
105 KC_SPC, LNUM, LFUN, XXXXXXX, XXXXXXX, XXXXXXX
106 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
107 ),
108
109 [_LNUM] = LAYOUT(
110 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
111 _______, KC_1, KC_2, KC_3, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
112 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
113 _______, KC_5, KC_6, KC_7, KC_8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
114 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
115 _______, KC_9, KC_0, KC_COMM, KC_DOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
116 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
117 _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
118 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
119 _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
120 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
121 ),
122
123 [_LFUN] = LAYOUT(
124 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
125 _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
126 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
127 _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
128 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
129 _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
130 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
131 _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
132 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
133 _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
134 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
135 ),
136
137 [_ADJUST] = LAYOUT(
138 //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
139 _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
140 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
141 _______, _______, _______, _______, _______, BL_STEP, RGB_TOG, RGB_HUI, RGB_SAI, RGB_SAI, _______, _______,
142 //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
143 _______, _______, _______, _______, _______, BL_BRTG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
144 //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
145 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
146 //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
147 _______, _______, _______, _______, _______, _______
148 // └────────┴────────┴────────┘ └────────┴────────┴────────┘
149 )
150};
151
152bool process_record_user(uint16_t keycode, keyrecord_t *record) {
153 switch (keycode) {
154 case LOWER:
155 if (record->event.pressed) {
156 layer_on(_LOWER);
157 update_tri_layer(_LOWER, _RAISE, _ADJUST);
158 } else {
159 layer_off(_LOWER);
160 update_tri_layer(_LOWER, _RAISE, _ADJUST);
161 }
162 return false;
163 case RAISE:
164 if (record->event.pressed) {
165 layer_on(_RAISE);
166 update_tri_layer(_LOWER, _RAISE, _ADJUST);
167 } else {
168 layer_off(_RAISE);
169 update_tri_layer(_LOWER, _RAISE, _ADJUST);
170 }
171 return false;
172 case FUNC:
173 if (record->event.pressed) {
174 layer_on(_FUNC);
175 } else {
176 layer_off(_FUNC);
177 }
178 return false;
179 case GAME:
180 if (!record->event.pressed) {
181 #ifdef AUDIO_ENABLE
182 stop_all_notes();
183 PLAY_SONG(plover_song);
184 #endif
185 rgblight_mode(RGBLIGHT_MODE_SNAKE);
186 layer_on(_GAME);
187 }
188 return false;
189 case EXT_GM:
190 if (record->event.pressed) {
191 #ifdef AUDIO_ENABLE
192 PLAY_SONG(plover_gb_song);
193 #endif
194 rgblight_mode(RGBLIGHT_MODE_RAINBOW_MOOD);
195 layer_off(_GAME);
196 }
197 return false;
198 case LNUM:
199 if (record->event.pressed) {
200 layer_on(_LNUM);
201 } else {
202 layer_off(_LNUM);
203 }
204 return false;
205 case LFUN:
206 if (record->event.pressed) {
207 layer_on(_LFUN);
208 } else {
209 layer_off(_LFUN);
210 }
211 return false;
212 }
213 return true;
214}
215
216void encoder_update_user(uint8_t index, bool clockwise) {
217 if (index == 0) {
218 if (clockwise) {
219 tap_code(KC_VOLU);
220 } else {
221 tap_code(KC_VOLD);
222 }
223 }
224 else if (index == 1) {
225 if (clockwise) {
226 tap_code(KC_PGDN);
227 } else {
228 tap_code(KC_PGUP);
229 }
230 }
231}
diff --git a/keyboards/keebio/iris/keymaps/dcompact/readme.md b/keyboards/keebio/iris/keymaps/dcompact/readme.md
new file mode 100644
index 000000000..f3f3d8ca6
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/dcompact/readme.md
@@ -0,0 +1,45 @@
1# DCompact Layout
2
3**Dvorak, Layered, Mouse-Enabled, Compact -- now with Game Mode~**
4
5_See [the layout source](keymap.c) for the actual layout_
6
7## Goals
8
9The following are the goals kept in mind when designing the DCompact
10layout:
11
12- Provide minimal travel distance when typing English or coding
13- Consistent muscle memory translation from standard QWERTY
14- Stateless typing experience
15- OS-agnostic features, macros, and key placement
16- Minimize dependence on mouse usage
17
18These are generally all met or balanced within reason. This layout is
19not intended at all to be a familiar layout for much of anyone (except
20maybe those who already type in Dvorak) -- this is meant to amplify the
21best parts of having limited, ortholinear keys with layering.
22
23## As Reference Material
24
25If you're reading this hoping to find reference material to implement
26your own layout, then please feel free to copy over this layout and
27make edits where you see fit. I removed a lot of the features I felt
28extraneous to my usage and simplified style where I felt needed. This
29would hopefully mean that my code should feel like a good base to
30develop from for those new to QMK.
31
32_Remember that settings defined in the layout directory override and
33merge with those in the keyboard folder_
34
35## Relevant Links
36
37- [Online Dvorak Layout Trainer](https://learn.dvorak.nl/)
38- [Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard)
39- [QMK Docs](https://docs.qmk.fm/#/)
40- [QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes)
41
42## Contact
43
44Maintainer: [Dan](https://github.com/loksonarius)
45