Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add dcompact layout for minivan #10951

Merged
merged 7 commits into from
Nov 24, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions keyboards/thevankeyboards/minivan/keymaps/dcompact/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#pragma once
loksonarius marked this conversation as resolved.
Show resolved Hide resolved

// place overrides here
98 changes: 98 additions & 0 deletions keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#include QMK_KEYBOARD_H
loksonarius marked this conversation as resolved.
Show resolved Hide resolved
#include "keymap_steno.h"

// Custom Keycodes and Combinations Used
#define DEL_SHF SFT_T(KC_DEL)
#define SPC_ALT LALT_T(KC_SPC)
#define QUAKE LCTL(KC_GRV)

#define WKSP_L LALT(LCTL(KC_LEFT))
#define WKSP_D LALT(LCTL(KC_DOWN))
#define WKSP_U LALT(LCTL(KC_UP))
#define WKSP_R LALT(LCTL(KC_RGHT))

#define AM_CYC A(S(KC_SPC))
#define AM_SHR A(S(KC_COMM))
#define AM_GRW A(S(KC_DOT))
#define AM_REL A(S(KC_Z))
#define AM_LFT A(S(KC_H))
#define AM_RGH A(S(KC_L))
#define AM_CW A(S(KC_K))
#define AM_CCW A(S(KC_J))
#define AM_TLL A(S(KC_1))
#define AM_TLW A(S(KC_2))
#define AM_BSP A(S(KC_3))
#define AM_FUL A(S(KC_4))


extern keymap_config_t keymap_config;
loksonarius marked this conversation as resolved.
Show resolved Hide resolved

enum layers {
_BASE,
_LOWER,
_RAISE,
_ADJUST
};

enum keycodes {
BASE = SAFE_RANGE,
LOWER,
RAISE,
ADJUST
};
loksonarius marked this conversation as resolved.
Show resolved Hide resolved

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC,
KC_LCTL, KC_LGUI, LOWER, KC_LSFT, SPC_ALT, RAISE, KC_RGUI, KC_ENT
),

[_LOWER] = LAYOUT(
XXXXXXX, AM_CYC, AM_SHR, AM_GRW, AM_REL, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX,
XXXXXXX, AM_LFT, AM_CCW, AM_CW, AM_RGH, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
XXXXXXX, AM_TLL, AM_TLW, AM_BSP, AM_FUL, XXXXXXX, XXXXXXX, WKSP_L, WKSP_D, WKSP_U, WKSP_R, XXXXXXX,
_______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX
),

[_RAISE] = LAYOUT(
QUAKE, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL,
XXXXXXX, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_4, KC_5, KC_6, KC_ASTR, KC_PLUS,
XXXXXXX, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_MINS, KC_BSPC,
_______, XXXXXXX, _______, KC_LABK, KC_RABK, _______, KC_0, XXXXXXX
),

[_ADJUST] = LAYOUT(
RESET, KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,
XXXXXXX, KC_WAKE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX,
XXXXXXX, KC_PWR, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX,
_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX
),
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
}
return true;
};
loksonarius marked this conversation as resolved.
Show resolved Hide resolved
45 changes: 45 additions & 0 deletions keyboards/thevankeyboards/minivan/keymaps/dcompact/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# DCompact Layout

**Dvorak, Layered, Mouse-Enabled, Compact -- now with Game Mode~**

_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
- Stateless 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)

11 changes: 11 additions & 0 deletions keyboards/thevankeyboards/minivan/keymaps/dcompact/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# https://beta.docs.qmk.fm/reference/config-options#feature-options
loksonarius marked this conversation as resolved.
Show resolved Hide resolved
# Features Specifically Wanted
EXTRAKEY_ENABLE = yes
STENO_ENABLE = yes
NKRO_ENABLE = yes

# Features taking up space
MOUSEKEY_ENABLE = no
MIDI_ENABLE = no
CONSOLE_ENABLE = no