aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan <loksonarius@users.noreply.github.com>2018-06-07 14:30:27 -0400
committerDrashna Jaelre <drashna@live.com>2018-06-07 11:30:27 -0700
commit03c9deb7456d84a8d8cc31496ae2736305bbafd3 (patch)
treefbc6834b56d8ea113bd233099d0d2d3690b30edd
parent7004e934d041cf5b187cedb4ab15e649b586edea (diff)
downloadqmk_firmware-03c9deb7456d84a8d8cc31496ae2736305bbafd3.tar.gz
qmk_firmware-03c9deb7456d84a8d8cc31496ae2736305bbafd3.zip
Add DCompact Layout for Chimera Ortho and Planck Keyboards (#3145)
* Clone default chimera-o layout * Make changes for base layer * Enable mouse suppport flag * Implement majority of DAD layout * Add mouse movement keys * Fine tune mouse control and fix tap toggle * Fix mouse button locations * Set adpater LED colors for layers * Increase responsiveness of key taps * Update layout for thumb comfort * Rename layout and add README * Add comments to keymap * Implement DCompact layout for Planck * Copy over DCompact README to planck * Fix up odds and ends for Planck
-rw-r--r--keyboards/chimera_ortho/keymaps/dcompact/README.md45
-rw-r--r--keyboards/chimera_ortho/keymaps/dcompact/config.h9
-rw-r--r--keyboards/chimera_ortho/keymaps/dcompact/keymap.c119
-rw-r--r--keyboards/chimera_ortho/keymaps/dcompact/rules.mk1
-rw-r--r--keyboards/planck/keymaps/dcompact/README.md45
-rw-r--r--keyboards/planck/keymaps/dcompact/config.h41
-rw-r--r--keyboards/planck/keymaps/dcompact/keymap.c201
-rw-r--r--keyboards/planck/keymaps/dcompact/rules.mk4
8 files changed, 465 insertions, 0 deletions
diff --git a/keyboards/chimera_ortho/keymaps/dcompact/README.md b/keyboards/chimera_ortho/keymaps/dcompact/README.md
new file mode 100644
index 000000000..04cb4fcb6
--- /dev/null
+++ b/keyboards/chimera_ortho/keymaps/dcompact/README.md
@@ -0,0 +1,45 @@
1# DCompact Layout
2
3**Dvorak, Layered, Mouse-Enabled, Compact**
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- Statless 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
diff --git a/keyboards/chimera_ortho/keymaps/dcompact/config.h b/keyboards/chimera_ortho/keymaps/dcompact/config.h
new file mode 100644
index 000000000..d1e5c3aab
--- /dev/null
+++ b/keyboards/chimera_ortho/keymaps/dcompact/config.h
@@ -0,0 +1,9 @@
1#define TAPPING_TERM 150
2#define TAPPING_TOGGLE 2
3
4#define MOUSEKEY_DELAY 200
5#define MOUSEKEY_INTERVAL 60
6#define MOUSEKEY_MAX_SPEED 50
7#define MOUSEKEY_TIME_TO_MAX 80
8#define MOUSEKEY_WHEEL_MAX_SPEED 8
9#define MOUSEKEY_WHEEL_TIME_TO_MAX 15
diff --git a/keyboards/chimera_ortho/keymaps/dcompact/keymap.c b/keyboards/chimera_ortho/keymaps/dcompact/keymap.c
new file mode 100644
index 000000000..eab8db22c
--- /dev/null
+++ b/keyboards/chimera_ortho/keymaps/dcompact/keymap.c
@@ -0,0 +1,119 @@
1#include "chimera_ortho.h"
2
3enum chimera_ortho_layers
4{
5 _BASE,
6 _NAV,
7 _SYM,
8 _FUNC,
9 _MOUSE
10};
11
12#define KC_NAV MO(_NAV)
13#define KC_SYM MO(_SYM)
14#define KC_FUNC MO(_FUNC)
15#define KC_MOUSE TT(_MOUSE)
16
17#define KC_DELSHFT SFT_T(KC_DEL)
18#define KC_CTLENT CTL_T(KC_ENT)
19#define KC_SYMSPC LT(_SYM, KC_SPC)
20
21#define KC_WK_LEFT LCA(KC_LEFT)
22#define KC_WK_DOWN LCA(KC_DOWN)
23#define KC_WK_UP LCA(KC_UP)
24#define KC_WK_RGHT LCA(KC_RGHT)
25
26#define KC_QUAKE LCTL(KC_GRAVE)
27
28#define LONGPRESS_DELAY 150
29
30// These are needed because of the 'KC_'-adding macro
31// This macro can be found in ../../chimera_ortho.h
32#define KC_RESET RESET
33#define KC_ KC_TRNS
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36
37 [_BASE] = KC_KEYMAP(
38 //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
39 LALT ,TAB ,QUOT ,COMM ,DOT ,P ,Y ,F ,G ,C ,R ,L ,SLSH ,FUNC
40 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
41 ,LGUI ,ESC ,A ,O ,E ,U ,I ,D ,H ,T ,N ,S ,MINS ,MOUSE
42 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
43 ,LCTL ,DELSHFT,SCLN ,Q ,J ,K ,X ,B ,M ,W ,V ,Z ,BSPC ,ENTER
44 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
45 ,LSHIFT ,NAV ,SYMSPC ,CTLENT
46 //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
47 ),
48
49 [_NAV] = KC_KEYMAP(
50 //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
51 , , , , , , , ,HOME ,PGDOWN ,PGUP ,END , ,
52 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
53 , ,PSCR ,MENU , , , , , ,LEFT ,DOWN ,UP ,RIGHT , ,
54 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
55 , ,CAPS ,NLCK ,INS , , , , ,WK_LEFT,WK_DOWN,WK_UP ,WK_RGHT, ,
56 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
57 , , , ,
58 //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
59 ),
60
61 [_SYM] = KC_KEYMAP(
62 //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
63 ,QUAKE ,GRAVE ,TILDE ,BSLASH ,PIPE ,LPRN ,RPRN ,7 ,8 ,9 ,SLSH ,EQUAL ,
64 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
65 , , ,EXLM ,AT ,HASH ,DLR ,LCBR ,RCBR ,4 ,5 ,6 ,ASTR ,PLUS ,
66 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
67 , , ,PERC ,CIRC ,AMPR ,ASTR ,LBRC ,RBRC ,1 ,2 ,3 ,MINUS , ,
68 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
69 , , , ,0
70 //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
71 ),
72
73 [_FUNC] = KC_KEYMAP(
74 //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
75 ,RESET ,SLEP ,MRWD ,MPLY ,MFFD , , ,F9 ,F10 ,F11 ,F12 , ,
76 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
77 , , ,PWR ,MUTE ,VOLD ,VOLU , , ,F5 ,F6 ,F7 ,F8 , ,
78 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
79 , , ,WAKE ,MPRV ,MPLY ,MNXT , , ,F1 ,F2 ,F3 ,F4 , ,
80 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
81 , , , ,
82 //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
83 ),
84
85 [_MOUSE] = KC_KEYMAP(
86 //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
87 , , , , , , , , , , , , ,
88 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
89 , , , ,BTN1 ,BTN3 ,BTN2 , , ,MS_L ,MS_D ,MS_U ,MS_R , ,
90 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
91 , , , ,ACL0 ,ACL1 ,ACL2 , , ,WH_L ,WH_D ,WH_U ,WH_R , ,
92 //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
93 , , , ,
94 //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
95 ),
96};
97
98# These control the color of the LED on the receiver
99# For color reference, see ../../chimera_ortho.h
100void matrix_scan_user(void) {
101 uint8_t layer = biton32(layer_state);
102
103 switch (layer) {
104 case _BASE:
105 set_led_cyan;
106 break;
107 case _NAV:
108 set_led_blue;
109 break;
110 case _SYM:
111 set_led_magenta;
112 break;
113 case _FUNC:
114 set_led_yellow;
115 default:
116 set_led_white;
117 break;
118 }
119};
diff --git a/keyboards/chimera_ortho/keymaps/dcompact/rules.mk b/keyboards/chimera_ortho/keymaps/dcompact/rules.mk
new file mode 100644
index 000000000..6c605daec
--- /dev/null
+++ b/keyboards/chimera_ortho/keymaps/dcompact/rules.mk
@@ -0,0 +1 @@
MOUSEKEY_ENABLE = yes
diff --git a/keyboards/planck/keymaps/dcompact/README.md b/keyboards/planck/keymaps/dcompact/README.md
new file mode 100644
index 000000000..04cb4fcb6
--- /dev/null
+++ b/keyboards/planck/keymaps/dcompact/README.md
@@ -0,0 +1,45 @@
1# DCompact Layout
2
3**Dvorak, Layered, Mouse-Enabled, Compact**
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- Statless 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
diff --git a/keyboards/planck/keymaps/dcompact/config.h b/keyboards/planck/keymaps/dcompact/config.h
new file mode 100644
index 000000000..625cf903e
--- /dev/null
+++ b/keyboards/planck/keymaps/dcompact/config.h
@@ -0,0 +1,41 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#ifdef AUDIO_ENABLE
7 #define STARTUP_SONG SONG(PLANCK_SOUND)
8
9 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
10 SONG(COLEMAK_SOUND), \
11 SONG(DVORAK_SOUND) \
12 }
13#endif
14
15#define MUSIC_MASK (keycode != KC_NO)
16
17/*
18 * MIDI options
19 */
20
21/* Prevent use of disabled MIDI features in the keymap */
22//#define MIDI_ENABLE_STRICT 1
23
24/* enable basic MIDI features:
25 - MIDI notes can be sent when in Music mode is on
26*/
27
28#define MIDI_BASIC
29
30/* enable advanced MIDI features:
31 - MIDI notes can be added to the keymap
32 - Octave shift and transpose
33 - Virtual sustain, portamento, and modulation wheel
34 - etc.
35*/
36//#define MIDI_ADVANCED
37
38/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
39//#define MIDI_TONE_KEYCODE_OCTAVES 2
40
41#endif
diff --git a/keyboards/planck/keymaps/dcompact/keymap.c b/keyboards/planck/keymaps/dcompact/keymap.c
new file mode 100644
index 000000000..21245b702
--- /dev/null
+++ b/keyboards/planck/keymaps/dcompact/keymap.c
@@ -0,0 +1,201 @@
1/* Copyright 2015-2017 Jack Humbert
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "planck.h"
18#include "action_layer.h"
19
20// Custom Keycodes and Combinations Used
21#define DEL_SHF SFT_T(KC_DEL)
22#define QUAKE LCTL(KC_GRV)
23
24#define WKSP_L LALT(LCTL(KC_LEFT))
25#define WKSP_D LALT(LCTL(KC_DOWN))
26#define WKSP_U LALT(LCTL(KC_UP))
27#define WKSP_R LALT(LCTL(KC_RGHT))
28
29extern keymap_config_t keymap_config;
30
31enum planck_layers {
32 _BASE,
33 _LOWER,
34 _RAISE,
35 _FUNC,
36 _MOUSE,
37 _ADJUST
38};
39
40enum planck_keycodes {
41 BASE = SAFE_RANGE,
42 LOWER,
43 RAISE,
44 FUNC,
45 MOUSE,
46 ADJUST
47};
48
49const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50
51/* Base
52 * ,-----------------------------------------------------------------------------------.
53 * | Tab | " ' | < , | > . | P | Y | F | G | C | R | L | ? / |
54 * |------+------+------+------+------+-------------+------+------+------+------+------|
55 * | Esc | A | O | E | U | I | D | H | T | N | S | _ - |
56 * |------+------+------+------+------+------|------+------+------+------+------+------|
57 * |Del/Sf| : ; | Q | J | K | X | B | M | W | V | Z | Bspc |
58 * |------+------+------+------+------+------+------+------+------+------+------+------|
59 * | Ctrl | Fn | GUI | Alt |Lower |Shift |Space |Raise | Alt | GUI | Fn |Enter |
60 * `-----------------------------------------------------------------------------------'
61 */
62[_BASE] = {
63 { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH},
64 { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS},
65 { DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC},
66 { KC_LCTL, FUNC, KC_LGUI, KC_LALT, LOWER, KC_LSFT, KC_SPC, RAISE, KC_RALT, KC_RGUI, FUNC, KC_ENT}
67},
68
69/* Lower
70 * ,-----------------------------------------------------------------------------------.
71 * | | | | | | | | Home |PgDwn | PgUp | End | |
72 * |------+------+------+------+------+-------------+------+------+------+------+------|
73 * | |PrScr | Menu | | | | | Left | Down | Up |Right | |
74 * |------+------+------+------+------+------|------+------+------+------+------+------|
75 * | |CapsLk|NumLck| Ins | | | |WkLeft|WkDown| WkUp |WkRigh| |
76 * |------+------+------+------+------+------+------+------+------+------+------+------|
77 * | | | | | | | |Raise | | | | |
78 * `-----------------------------------------------------------------------------------'
79 */
80[_LOWER] = {
81 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX},
82 { XXXXXXX, KC_PSCR, KC_MENU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX},
83 { XXXXXXX, KC_CAPS, KC_LNUM, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_L, WKSP_D, WKSP_U, WKSP_R, XXXXXXX},
84 { _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
85},
86
87/* Raise
88 * ,-----------------------------------------------------------------------------------.
89 * |Quake | ` | ~ | \ | | | ( | ) | 7 | 8 | 9 | / | = |
90 * |------+------+------+------+------+-------------+------+------+------+------+------|
91 * | | ! | @ | # | $ | { | } | 4 | 5 | 6 | * | + |
92 * |------+------+------+------+------+------|------+------+------+------+------+------|
93 * | | % | ^ | & | * | [ | ] | 1 | 2 | 3 | - |Bkspc |
94 * |------+------+------+------+------+------+------+------+------+------+------+------|
95 * | | | | |Lower | < | > | | 0 | . | , | |
96 * `-----------------------------------------------------------------------------------'
97 */
98[_RAISE] = {
99 { QUAKE, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL},
100 { XXXXXXX, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_4, KC_5, KC_6, KC_ASTR, KC_PLUS},
101 { XXXXXXX, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_MINS, KC_BSPC},
102 { _______, XXXXXXX, _______, _______, _______, KC_LABK, KC_RABK, _______, KC_0, KC_DOT, KC_COMM, XXXXXXX}
103},
104
105/* Func
106 * ,-----------------------------------------------------------------------------------.
107 * | |Sleep |Prev-W|Ply/Ps|Next-W| | | F9 | F10 | F11 | F12 | |
108 * |------+------+------+------+------+-------------+------+------+------+------+------|
109 * | | Wake | Mute | Vol- | Vol+ | | | F5 | F6 | F7 | F8 | |
110 * |------+------+------+------+------+------|------+------+------+------+------+------|
111 * | |Power |Prev-M|Ply/Ps|Next-M| | | F1 | F2 | F3 | F4 | |
112 * |------+------+------+------+------+------+------+------+------+------+------+------|
113 * | | | | | | | | | | | | |
114 * `-----------------------------------------------------------------------------------'
115 */
116[_FUNC] = {
117 { XXXXXXX, KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX},
118 { XXXXXXX, KC_WAKE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX},
119 { XXXXXXX, KC_PWR, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX},
120 { _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX}
121},
122
123/* Mouse (Not Reachable on Planck)
124 * ,-----------------------------------------------------------------------------------.
125 * | | | | | | | | | | | | |
126 * |------+------+------+------+------+-------------+------+------+------+------+------|
127 * | | |Click1|Click3|Click2| | |MouseL|MouseD|MouseU|MouseR| |
128 * |------+------+------+------+------+------|------+------+------+------+------+------|
129 * | | |Accel0|Accel1|Accel2| | |ScrllL|ScrllD|ScrllU|ScrllR| |
130 * |------+------+------+------+------+------+------+------+------+------+------+------|
131 * | | | | | | | | | | | | |
132 * `-----------------------------------------------------------------------------------'
133 */
134[_MOUSE] = {
135 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
136 { XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX},
137 { XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, XXXXXXX},
138 { _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX}
139},
140
141/* Adjust (Lower + Raise)
142 * ,-----------------------------------------------------------------------------------.
143 * | | Reset| | | | | | | | | | Del |
144 * |------+------+------+------+------+-------------+------+------+------+------+------|
145 * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | |
146 * |------+------+------+------+------+------|------+------+------+------+------+------|
147 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
148 * |------+------+------+------+------+------+------+------+------+------+------+------|
149 * | | | | | | | | | | | |
150 * `-----------------------------------------------------------------------------------'
151 */
152[_ADJUST] = {
153 { _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
154 { _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______},
155 { _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
156 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
157}
158
159};
160
161bool process_record_user(uint16_t keycode, keyrecord_t *record) {
162 switch (keycode) {
163 case LOWER:
164 if (record->event.pressed) {
165 layer_on(_LOWER);
166 update_tri_layer(_LOWER, _RAISE, _ADJUST);
167 } else {
168 layer_off(_LOWER);
169 update_tri_layer(_LOWER, _RAISE, _ADJUST);
170 }
171 return false;
172 break;
173 case RAISE:
174 if (record->event.pressed) {
175 layer_on(_RAISE);
176 update_tri_layer(_LOWER, _RAISE, _ADJUST);
177 } else {
178 layer_off(_RAISE);
179 update_tri_layer(_LOWER, _RAISE, _ADJUST);
180 }
181 return false;
182 break;
183 case FUNC:
184 if (record->event.pressed) {
185 layer_on(_FUNC);
186 } else {
187 layer_off(_FUNC);
188 }
189 return false;
190 break;
191 case MOUSE:
192 if (record->event.pressed) {
193 layer_on(_MOUSE);
194 } else {
195 layer_off(_MOUSE);
196 }
197 return false;
198 break;
199 }
200 return true;
201}
diff --git a/keyboards/planck/keymaps/dcompact/rules.mk b/keyboards/planck/keymaps/dcompact/rules.mk
new file mode 100644
index 000000000..9c9280adb
--- /dev/null
+++ b/keyboards/planck/keymaps/dcompact/rules.mk
@@ -0,0 +1,4 @@
1ifndef QUANTUM_DIR
2 include ../../../../Makefile
3endif
4