From 03c9deb7456d84a8d8cc31496ae2736305bbafd3 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 7 Jun 2018 14:30:27 -0400 Subject: 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 --- keyboards/chimera_ortho/keymaps/dcompact/README.md | 45 ++++++++ keyboards/chimera_ortho/keymaps/dcompact/config.h | 9 ++ keyboards/chimera_ortho/keymaps/dcompact/keymap.c | 119 +++++++++++++++++++++ keyboards/chimera_ortho/keymaps/dcompact/rules.mk | 1 + 4 files changed, 174 insertions(+) create mode 100644 keyboards/chimera_ortho/keymaps/dcompact/README.md create mode 100644 keyboards/chimera_ortho/keymaps/dcompact/config.h create mode 100644 keyboards/chimera_ortho/keymaps/dcompact/keymap.c create mode 100644 keyboards/chimera_ortho/keymaps/dcompact/rules.mk (limited to 'keyboards/chimera_ortho') 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 @@ +# 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) + 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 @@ +#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 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 @@ +#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; + } +}; 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 -- cgit v1.2.3-24-g4f1b