summaryrefslogtreecommitdiffstats
path: root/keyboards/chimera_ortho
diff options
context:
space:
mode:
authorDan <loksonarius@users.noreply.github.com>2018-06-07 20:30:27 +0200
committerDrashna Jaelre <drashna@live.com>2018-06-07 20:30:27 +0200
commit03c9deb7456d84a8d8cc31496ae2736305bbafd3 (patch)
treefbc6834b56d8ea113bd233099d0d2d3690b30edd /keyboards/chimera_ortho
parent7004e934d041cf5b187cedb4ab15e649b586edea (diff)
downloadqmk_firmware-03c9deb7456d84a8d8cc31496ae2736305bbafd3.tar.gz
qmk_firmware-03c9deb7456d84a8d8cc31496ae2736305bbafd3.tar.xz
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
Diffstat (limited to 'keyboards/chimera_ortho')
-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
4 files changed, 174 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 @@
+# 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