aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/chimera_ortho/keymaps/dcompact/readme.md (renamed from keyboards/chimera_ortho/keymaps/dcompact/README.md)8
-rw-r--r--keyboards/keebio/levinson/keymaps/dcompact/config.h28
-rw-r--r--keyboards/keebio/levinson/keymaps/dcompact/keymap.c238
-rw-r--r--keyboards/keebio/levinson/keymaps/dcompact/readme.md (renamed from keyboards/planck/keymaps/dcompact/README.md)8
-rw-r--r--keyboards/keebio/levinson/keymaps/dcompact/rules.mk13
-rw-r--r--keyboards/planck/keymaps/dcompact/keymap.c2
-rw-r--r--keyboards/planck/keymaps/dcompact/readme.md45
7 files changed, 333 insertions, 9 deletions
diff --git a/keyboards/chimera_ortho/keymaps/dcompact/README.md b/keyboards/chimera_ortho/keymaps/dcompact/readme.md
index 18c23d66e..bf72567ef 100644
--- a/keyboards/chimera_ortho/keymaps/dcompact/README.md
+++ b/keyboards/chimera_ortho/keymaps/dcompact/readme.md
@@ -34,10 +34,10 @@ merge with those in the keyboard folder_
34 34
35## Relevant Links 35## Relevant Links
36 36
37- ![Online Dvorak Layout Trainer](https://learn.dvorak.nl/) 37- [Online Dvorak Layout Trainer](https://learn.dvorak.nl/)
38- ![Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) 38- [Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard)
39- ![QMK Docs](https://docs.qmk.fm/#/) 39- [QMK Docs](https://docs.qmk.fm/#/)
40- ![QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes) 40- [QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes)
41 41
42## Contact 42## Contact
43 43
diff --git a/keyboards/keebio/levinson/keymaps/dcompact/config.h b/keyboards/keebio/levinson/keymaps/dcompact/config.h
new file mode 100644
index 000000000..be2d71e8f
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/dcompact/config.h
@@ -0,0 +1,28 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6Copyright 2018 Danny Nguyen <danny@keeb.io>
7
8This program is free software: you can redistribute it and/or modify
9it under the terms of the GNU General Public License as published by
10the Free Software Foundation, either version 2 of the License, or
11(at your option) any later version.
12
13This program is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with this program. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#pragma once
23
24// #define USE_I2C
25
26/* Select hand configuration */
27// #define MASTER_RIGHT
28// #define EE_HANDS
diff --git a/keyboards/keebio/levinson/keymaps/dcompact/keymap.c b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c
new file mode 100644
index 000000000..a0556c09b
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c
@@ -0,0 +1,238 @@
1#include QMK_KEYBOARD_H
2
3#include "keymap_steno.h"
4
5// Custom Keycodes and Combinations Used
6#define DEL_SHF SFT_T(KC_DEL)
7#define QUAKE LCTL(KC_GRV)
8
9#define WKSP_L LALT(LCTL(KC_LEFT))
10#define WKSP_D LALT(LCTL(KC_DOWN))
11#define WKSP_U LALT(LCTL(KC_UP))
12#define WKSP_R LALT(LCTL(KC_RGHT))
13
14
15extern keymap_config_t keymap_config;
16
17enum planck_layers {
18 _BASE,
19 _LOWER,
20 _RAISE,
21 _FUNC,
22 _PLOVER,
23 _ADJUST,
24 _MOUSE
25};
26
27enum planck_keycodes {
28 BASE = SAFE_RANGE,
29 PLOVER,
30 LOWER,
31 RAISE,
32 FUNC,
33 MOUSE,
34 ADJUST,
35 EXT_PLV
36};
37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39
40/* Base
41 * ,-----------------------------------------------------------------------------------.
42 * | Tab | " ' | < , | > . | P | Y | F | G | C | R | L | ? / |
43 * |------+------+------+------+------+-------------+------+------+------+------+------|
44 * | Esc | A | O | E | U | I | D | H | T | N | S | _ - |
45 * |------+------+------+------+------+------|------+------+------+------+------+------|
46 * |Del/Sf| : ; | Q | J | K | X | B | M | W | V | Z | Bspc |
47 * |------+------+------+------+------+------+------+------+------+------+------+------|
48 * | Ctrl |Plover| GUI | Alt |Lower |Shift |Space |Raise | Alt | GUI | Fn |Enter |
49 * `-----------------------------------------------------------------------------------'
50 */
51[_BASE] = LAYOUT_ortho_4x12( \
52 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, \
53 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
54 DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC, \
55 KC_LCTL, PLOVER, KC_LGUI, KC_LALT, LOWER, KC_LSFT, KC_SPC, RAISE, KC_RALT, KC_RGUI, FUNC, KC_ENT \
56),
57
58/* Lower
59 * ,-----------------------------------------------------------------------------------.
60 * | | | | | | | | Home |PgDwn | PgUp | End | |
61 * |------+------+------+------+------+-------------+------+------+------+------+------|
62 * | |PrScr | Menu | | | | | Left | Down | Up |Right | |
63 * |------+------+------+------+------+------|------+------+------+------+------+------|
64 * | |CapsLk|NumLck| Ins | | | |WkLeft|WkDown| WkUp |WkRigh| |
65 * |------+------+------+------+------+------+------+------+------+------+------+------|
66 * | | | | | | | |Raise | | | | |
67 * `-----------------------------------------------------------------------------------'
68 */
69[_LOWER] = LAYOUT_ortho_4x12( \
70 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, \
71 XXXXXXX, KC_PSCR, KC_MENU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, \
72 XXXXXXX, KC_CAPS, KC_LNUM, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_L, WKSP_D, WKSP_U, WKSP_R, XXXXXXX, \
73 _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
74),
75
76/* Raise
77 * ,-----------------------------------------------------------------------------------.
78 * |Quake | ` | ~ | \ | | | ( | ) | 7 | 8 | 9 | / | = |
79 * |------+------+------+------+------+-------------+------+------+------+------+------|
80 * | | ! | @ | # | $ | { | } | 4 | 5 | 6 | * | + |
81 * |------+------+------+------+------+------|------+------+------+------+------+------|
82 * | | % | ^ | & | * | [ | ] | 1 | 2 | 3 | - |Bkspc |
83 * |------+------+------+------+------+------+------+------+------+------+------+------|
84 * | | | | |Lower | < | > | | 0 | . | , | |
85 * `-----------------------------------------------------------------------------------'
86 */
87[_RAISE] = LAYOUT_ortho_4x12( \
88 QUAKE, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL, \
89 XXXXXXX, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_4, KC_5, KC_6, KC_ASTR, KC_PLUS, \
90 XXXXXXX, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_MINS, KC_BSPC, \
91 _______, XXXXXXX, _______, _______, _______, KC_LABK, KC_RABK, _______, KC_0, KC_DOT, KC_COMM, XXXXXXX \
92),
93
94/* Func
95 * ,-----------------------------------------------------------------------------------.
96 * | |Sleep |Prev-W|Ply/Ps|Next-W| | | F9 | F10 | F11 | F12 | |
97 * |------+------+------+------+------+-------------+------+------+------+------+------|
98 * | | Wake | Mute | Vol- | Vol+ | | | F5 | F6 | F7 | F8 | |
99 * |------+------+------+------+------+------|------+------+------+------+------+------|
100 * | |Power |Prev-M|Ply/Ps|Next-M| | | F1 | F2 | F3 | F4 | |
101 * |------+------+------+------+------+------+------+------+------+------+------+------|
102 * | | | | | | | | | | | | |
103 * `-----------------------------------------------------------------------------------'
104 */
105[_FUNC] = LAYOUT_ortho_4x12( \
106 XXXXXXX, KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, \
107 XXXXXXX, KC_WAKE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, \
108 XXXXXXX, KC_PWR, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, \
109 _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX \
110),
111
112/* Mouse (Not Reachable on Planck)
113 * ,-----------------------------------------------------------------------------------.
114 * | | | | | | | | | | | | |
115 * |------+------+------+------+------+-------------+------+------+------+------+------|
116 * | | |Click1|Click3|Click2| | |MouseL|MouseD|MouseU|MouseR| |
117 * |------+------+------+------+------+------|------+------+------+------+------+------|
118 * | | |Accel0|Accel1|Accel2| | |ScrllL|ScrllD|ScrllU|ScrllR| |
119 * |------+------+------+------+------+------+------+------+------+------+------+------|
120 * | | | | | | | | | | | | |
121 * `-----------------------------------------------------------------------------------'
122 */
123[_MOUSE] = LAYOUT_ortho_4x12( \
124 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
125 XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, \
126 XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, XXXXXXX, \
127 _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX \
128),
129
130/* Plover layer (http://opensteno.org)
131 * ,-----------------------------------------------------------------------------------.
132 * | # | # | # | # | # | # | # | # | # | # | # | # |
133 * |------+------+------+------+------+-------------+------+------+------+------+------|
134 * | FN | S | T | P | H | * | * | F | P | L | T | D |
135 * |------+------+------+------+------+------|------+------+------+------+------+------|
136 * | | S | K | W | R | * | * | R | B | G | S | Z |
137 * |------+------+------+------+------+------+------+------+------+------+------+------|
138 * | Exit | | | A | O | | | E | U | PWR | RES1 | RES2 |
139 * `-----------------------------------------------------------------------------------'
140 */
141
142[_PLOVER] = LAYOUT_ortho_4x12( \
143 STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , \
144 STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , \
145 XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , \
146 EXT_PLV, XXXXXXX, XXXXXXX, STN_A, STN_O, XXXXXXX, XXXXXXX, STN_E, STN_U, STN_PWR, STN_RE1, STN_RE2 \
147),
148
149/* Adjust (Lower + Raise)
150 * ,-----------------------------------------------------------------------------------.
151 * | | Reset| | | | | | | | | | Del |
152 * |------+------+------+------+------+-------------+------+------+------+------+------|
153 * | | | |Aud on|Audoff|AGnorm|AGswap|RGBTog|RGBMod| | | |
154 * |------+------+------+------+------+------|------+------+------+------+------+------|
155 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|Light-|Light+| | | |
156 * |------+------+------+------+------+------+------+------+------+------+------+------|
157 * | | | | | | | | | | | | |
158 * `-----------------------------------------------------------------------------------'
159 */
160[_ADJUST] = LAYOUT_ortho_4x12( \
161 _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , \
162 _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, RGB_TOG, RGB_MOD, _______, _______, _______, \
163 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_VAD, RGB_VAI, _______, _______, _______, \
164 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
165)
166
167
168};
169
170#ifdef AUDIO_ENABLE
171 float plover_song[][2] = SONG(PLOVER_SOUND);
172 float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
173#endif
174
175bool process_record_user(uint16_t keycode, keyrecord_t *record) {
176 switch (keycode) {
177 case LOWER:
178 if (record->event.pressed) {
179 layer_on(_LOWER);
180 update_tri_layer(_LOWER, _RAISE, _ADJUST);
181 } else {
182 layer_off(_LOWER);
183 update_tri_layer(_LOWER, _RAISE, _ADJUST);
184 }
185 return false;
186 break;
187 case RAISE:
188 if (record->event.pressed) {
189 layer_on(_RAISE);
190 update_tri_layer(_LOWER, _RAISE, _ADJUST);
191 } else {
192 layer_off(_RAISE);
193 update_tri_layer(_LOWER, _RAISE, _ADJUST);
194 }
195 return false;
196 break;
197 case FUNC:
198 if (record->event.pressed) {
199 layer_on(_FUNC);
200 } else {
201 layer_off(_FUNC);
202 }
203 return false;
204 break;
205 case PLOVER:
206 if (!record->event.pressed) {
207 #ifdef AUDIO_ENABLE
208 stop_all_notes();
209 PLAY_SONG(plover_song);
210 #endif
211 layer_on(_PLOVER);
212 }
213 return false;
214 break;
215 case EXT_PLV:
216 if (record->event.pressed) {
217 #ifdef AUDIO_ENABLE
218 PLAY_SONG(plover_gb_song);
219 #endif
220 layer_off(_PLOVER);
221 }
222 return false;
223 break;
224 case MOUSE:
225 if (record->event.pressed) {
226 layer_on(_MOUSE);
227 } else {
228 layer_off(_MOUSE);
229 }
230 return false;
231 break;
232 }
233 return true;
234}
235
236void keyboard_post_init_user(void) {
237 steno_set_mode(STENO_MODE_GEMINI);
238}
diff --git a/keyboards/planck/keymaps/dcompact/README.md b/keyboards/keebio/levinson/keymaps/dcompact/readme.md
index d3e4c7a62..cd88c3fed 100644
--- a/keyboards/planck/keymaps/dcompact/README.md
+++ b/keyboards/keebio/levinson/keymaps/dcompact/readme.md
@@ -34,10 +34,10 @@ merge with those in the keyboard folder_
34 34
35## Relevant Links 35## Relevant Links
36 36
37- ![Online Dvorak Layout Trainer](https://learn.dvorak.nl/) 37- [Online Dvorak Layout Trainer](https://learn.dvorak.nl/)
38- ![Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard) 38- [Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard)
39- ![QMK Docs](https://docs.qmk.fm/#/) 39- [QMK Docs](https://docs.qmk.fm/#/)
40- ![QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes) 40- [QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes)
41 41
42## Contact 42## Contact
43 43
diff --git a/keyboards/keebio/levinson/keymaps/dcompact/rules.mk b/keyboards/keebio/levinson/keymaps/dcompact/rules.mk
new file mode 100644
index 000000000..cd031e0d3
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/dcompact/rules.mk
@@ -0,0 +1,13 @@
1# https://beta.docs.qmk.fm/reference/config-options#feature-options
2# Features Specifically Wanted
3EXTRAKEY_ENABLE = yes
4STENO_ENABLE = yes
5NKRO_ENABLE = yes
6AUDIO_ENABLE = yes
7
8# Features taking up space
9MOUSEKEY_ENABLE = no
10MIDI_ENABLE = no
11CONSOLE_ENABLE = no
12RGBLIGHT_ENABLE = no
13BACKLIGHT_ENABLE = no
diff --git a/keyboards/planck/keymaps/dcompact/keymap.c b/keyboards/planck/keymaps/dcompact/keymap.c
index 79c983150..0893059a0 100644
--- a/keyboards/planck/keymaps/dcompact/keymap.c
+++ b/keyboards/planck/keymaps/dcompact/keymap.c
@@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
68 { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, 68 { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH},
69 { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, 69 { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS},
70 { DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC}, 70 { DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC},
71 { KC_LCTL, PLOVER, KC_LGUI, KC_LALT, LOWER, KC_LSFT, KC_SPC, RAISE, KC_RALT, KC_RGUI, FUNC, KC_ENT} 71 { KC_LCTL, PLOVER, KC_LGUI, KC_LALT, LOWER, KC_LSFT, KC_SPC, RAISE, KC_RALT, KC_RGUI, FUNC, KC_ENT}
72}, 72},
73 73
74/* Lower 74/* Lower
diff --git a/keyboards/planck/keymaps/dcompact/readme.md b/keyboards/planck/keymaps/dcompact/readme.md
new file mode 100644
index 000000000..cd88c3fed
--- /dev/null
+++ b/keyboards/planck/keymaps/dcompact/readme.md
@@ -0,0 +1,45 @@
1# DCompact Layout
2
3**Dvorak, Layered, Mouse-Enabled, Compact -- now with Plover~**
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