-
-
Notifications
You must be signed in to change notification settings - Fork 40k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
1 parent
7004e93
commit 03c9deb
Showing
8 changed files
with
465 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# DCompact Layout | ||
|
||
**Dvorak, Layered, Mouse-Enabled, Compact** | ||
|
||
_See [the layout source](keymap.c) for the actual layout_ | ||
|
||
## Goals | ||
|
||
The following are the goals kept in mind when designing the DCompact | ||
layout: | ||
|
||
- Provide minimal travel distance when typing English or coding | ||
- Consistent muscle memory translation from standard QWERTY | ||
- Statless typing experience | ||
- OS-agnostic features, macros, and key placement | ||
- Minimize dependence on mouse usage | ||
|
||
These are generally all met or balanced within reason. This layout is | ||
not intended at all to be a familiar layout for much of anyone (except | ||
maybe those who already type in Dvorak) -- this is meant to amplify the | ||
best parts of having limited, ortholinear keys with layering. | ||
|
||
## As Reference Material | ||
|
||
If you're reading this hoping to find reference material to implement | ||
your own layout, then please feel free to copy over this layout and | ||
make edits where you see fit. I removed a lot of the features I felt | ||
extraneous to my usage and simplified style where I felt needed. This | ||
would hopefully mean that my code should feel like a good base to | ||
develop from for those new to QMK. | ||
|
||
_Remember that settings defined in the layout directory override and | ||
merge with those in the keyboard folder_ | ||
|
||
## Relevant Links | ||
|
||
- !(Online Dvorak Layout Trainer)[https://learn.dvorak.nl/] | ||
- !(Dvorak Wikipedia Page)[https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard] | ||
- !(QMK Docs)[https://docs.qmk.fm/#/] | ||
- !(QMK KeyCode Reference)[https://docs.qmk.fm/#/keycodes] | ||
|
||
## Contact | ||
|
||
Maintainer: [Dan](https://github.com/loksonarius) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#define TAPPING_TERM 150 | ||
#define TAPPING_TOGGLE 2 | ||
|
||
#define MOUSEKEY_DELAY 200 | ||
#define MOUSEKEY_INTERVAL 60 | ||
#define MOUSEKEY_MAX_SPEED 50 | ||
#define MOUSEKEY_TIME_TO_MAX 80 | ||
#define MOUSEKEY_WHEEL_MAX_SPEED 8 | ||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 15 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
#include "chimera_ortho.h" | ||
|
||
enum chimera_ortho_layers | ||
{ | ||
_BASE, | ||
_NAV, | ||
_SYM, | ||
_FUNC, | ||
_MOUSE | ||
}; | ||
|
||
#define KC_NAV MO(_NAV) | ||
#define KC_SYM MO(_SYM) | ||
#define KC_FUNC MO(_FUNC) | ||
#define KC_MOUSE TT(_MOUSE) | ||
|
||
#define KC_DELSHFT SFT_T(KC_DEL) | ||
#define KC_CTLENT CTL_T(KC_ENT) | ||
#define KC_SYMSPC LT(_SYM, KC_SPC) | ||
|
||
#define KC_WK_LEFT LCA(KC_LEFT) | ||
#define KC_WK_DOWN LCA(KC_DOWN) | ||
#define KC_WK_UP LCA(KC_UP) | ||
#define KC_WK_RGHT LCA(KC_RGHT) | ||
|
||
#define KC_QUAKE LCTL(KC_GRAVE) | ||
|
||
#define LONGPRESS_DELAY 150 | ||
|
||
// These are needed because of the 'KC_'-adding macro | ||
// This macro can be found in ../../chimera_ortho.h | ||
#define KC_RESET RESET | ||
#define KC_ KC_TRNS | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
|
||
[_BASE] = KC_KEYMAP( | ||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | ||
LALT ,TAB ,QUOT ,COMM ,DOT ,P ,Y ,F ,G ,C ,R ,L ,SLSH ,FUNC | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
,LGUI ,ESC ,A ,O ,E ,U ,I ,D ,H ,T ,N ,S ,MINS ,MOUSE | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
,LCTL ,DELSHFT,SCLN ,Q ,J ,K ,X ,B ,M ,W ,V ,Z ,BSPC ,ENTER | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
,LSHIFT ,NAV ,SYMSPC ,CTLENT | ||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | ||
), | ||
|
||
[_NAV] = KC_KEYMAP( | ||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | ||
, , , , , , , ,HOME ,PGDOWN ,PGUP ,END , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, ,PSCR ,MENU , , , , , ,LEFT ,DOWN ,UP ,RIGHT , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, ,CAPS ,NLCK ,INS , , , , ,WK_LEFT,WK_DOWN,WK_UP ,WK_RGHT, , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , , , | ||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | ||
), | ||
|
||
[_SYM] = KC_KEYMAP( | ||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | ||
,QUAKE ,GRAVE ,TILDE ,BSLASH ,PIPE ,LPRN ,RPRN ,7 ,8 ,9 ,SLSH ,EQUAL , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , ,EXLM ,AT ,HASH ,DLR ,LCBR ,RCBR ,4 ,5 ,6 ,ASTR ,PLUS , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , ,PERC ,CIRC ,AMPR ,ASTR ,LBRC ,RBRC ,1 ,2 ,3 ,MINUS , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , , ,0 | ||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | ||
), | ||
|
||
[_FUNC] = KC_KEYMAP( | ||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | ||
,RESET ,SLEP ,MRWD ,MPLY ,MFFD , , ,F9 ,F10 ,F11 ,F12 , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , ,PWR ,MUTE ,VOLD ,VOLU , , ,F5 ,F6 ,F7 ,F8 , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , ,WAKE ,MPRV ,MPLY ,MNXT , , ,F1 ,F2 ,F3 ,F4 , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , , , | ||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | ||
), | ||
|
||
[_MOUSE] = KC_KEYMAP( | ||
//,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------. | ||
, , , , , , , , , , , , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , , ,BTN1 ,BTN3 ,BTN2 , , ,MS_L ,MS_D ,MS_U ,MS_R , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , , ,ACL0 ,ACL1 ,ACL2 , , ,WH_L ,WH_D ,WH_U ,WH_R , , | ||
//|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------| | ||
, , , , | ||
//\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/ | ||
), | ||
}; | ||
|
||
# These control the color of the LED on the receiver | ||
# For color reference, see ../../chimera_ortho.h | ||
void matrix_scan_user(void) { | ||
uint8_t layer = biton32(layer_state); | ||
|
||
switch (layer) { | ||
case _BASE: | ||
set_led_cyan; | ||
break; | ||
case _NAV: | ||
set_led_blue; | ||
break; | ||
case _SYM: | ||
set_led_magenta; | ||
break; | ||
case _FUNC: | ||
set_led_yellow; | ||
default: | ||
set_led_white; | ||
break; | ||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
MOUSEKEY_ENABLE = yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# DCompact Layout | ||
|
||
**Dvorak, Layered, Mouse-Enabled, Compact** | ||
|
||
_See [the layout source](keymap.c) for the actual layout_ | ||
|
||
## Goals | ||
|
||
The following are the goals kept in mind when designing the DCompact | ||
layout: | ||
|
||
- Provide minimal travel distance when typing English or coding | ||
- Consistent muscle memory translation from standard QWERTY | ||
- Statless typing experience | ||
- OS-agnostic features, macros, and key placement | ||
- Minimize dependence on mouse usage | ||
|
||
These are generally all met or balanced within reason. This layout is | ||
not intended at all to be a familiar layout for much of anyone (except | ||
maybe those who already type in Dvorak) -- this is meant to amplify the | ||
best parts of having limited, ortholinear keys with layering. | ||
|
||
## As Reference Material | ||
|
||
If you're reading this hoping to find reference material to implement | ||
your own layout, then please feel free to copy over this layout and | ||
make edits where you see fit. I removed a lot of the features I felt | ||
extraneous to my usage and simplified style where I felt needed. This | ||
would hopefully mean that my code should feel like a good base to | ||
develop from for those new to QMK. | ||
|
||
_Remember that settings defined in the layout directory override and | ||
merge with those in the keyboard folder_ | ||
|
||
## Relevant Links | ||
|
||
- !(Online Dvorak Layout Trainer)[https://learn.dvorak.nl/] | ||
- !(Dvorak Wikipedia Page)[https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard] | ||
- !(QMK Docs)[https://docs.qmk.fm/#/] | ||
- !(QMK KeyCode Reference)[https://docs.qmk.fm/#/keycodes] | ||
|
||
## Contact | ||
|
||
Maintainer: [Dan](https://github.com/loksonarius) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#ifndef CONFIG_USER_H | ||
#define CONFIG_USER_H | ||
|
||
#include "../../config.h" | ||
|
||
#ifdef AUDIO_ENABLE | ||
#define STARTUP_SONG SONG(PLANCK_SOUND) | ||
|
||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ | ||
SONG(COLEMAK_SOUND), \ | ||
SONG(DVORAK_SOUND) \ | ||
} | ||
#endif | ||
|
||
#define MUSIC_MASK (keycode != KC_NO) | ||
|
||
/* | ||
* MIDI options | ||
*/ | ||
|
||
/* Prevent use of disabled MIDI features in the keymap */ | ||
//#define MIDI_ENABLE_STRICT 1 | ||
|
||
/* enable basic MIDI features: | ||
- MIDI notes can be sent when in Music mode is on | ||
*/ | ||
|
||
#define MIDI_BASIC | ||
|
||
/* enable advanced MIDI features: | ||
- MIDI notes can be added to the keymap | ||
- Octave shift and transpose | ||
- Virtual sustain, portamento, and modulation wheel | ||
- etc. | ||
*/ | ||
//#define MIDI_ADVANCED | ||
|
||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ | ||
//#define MIDI_TONE_KEYCODE_OCTAVES 2 | ||
|
||
#endif |
Oops, something went wrong.