Merge pull request #368 from waveform80/daves-layout-readme

Added a README and minor tweaks for "dave" KEYMAP
example_keyboards
Erez Zukerman 9 years ago
commit 0c4085dd53

File diff suppressed because it is too large Load Diff

@ -3,8 +3,8 @@
#include "action_layer.h" #include "action_layer.h"
#define BASE 0 // default layer #define BASE 0 // default layer
#define PROG 1 // symbols #define PROG 1 // programming
#define NAVI 2 // navigation keys #define NAVI 2 // navigation
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer /* Keymap 0: Basic layer
@ -18,16 +18,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| H | | B |------+------+------+------+------+--------| * |--------+------+------+------+------+------| H | | B |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |`/Ctrl| \ | | | LAlt | | RAlt | | [ | ] |'/Ctrl| * |`/Ctrl| \ | | | LAlt | | RAlt | [ | ] | |'/Ctrl|
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | PrtS | Apps | | Paus | CtAl | * | PrtS | PrtS | | CtAl | CtAl |
* ,------+------+------| |------+------+------. * ,------+------+------| |------+------+------.
* | | | L1 | | L1 | | | * | | | L1 | | L1 | | |
* | Spce | ~L2 +------| |------+ ~L1 | Spce | * | Spce | ~L2 +------| |------+ ~L1 | Spce |
* | | | LGui | | RGui | | | * | | | LGui | | RGui | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default [BASE] = KEYMAP( // layer 0 : default
// left hand // left hand
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
@ -35,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H,
CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT, CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT,
KC_PSCREEN, KC_APP, KC_PSCREEN, KC_PSCREEN,
TO(PROG, ON_PRESS), TO(PROG, ON_PRESS),
KC_SPC, MO(NAVI), KC_LGUI, KC_SPC, MO(NAVI), KC_LGUI,
// right hand // right hand
@ -43,8 +45,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER,
KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
KC_RALT,KC_NO, KC_LBRC,KC_RBRC, CTL_T(KC_QUOT), KC_RALT,KC_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT),
KC_PAUS, MT(0x5, KC_NO), MT(0x5, KC_NO), MT(0x5, KC_NO),
TO(PROG, ON_PRESS), TO(PROG, ON_PRESS),
KC_RGUI, MO(PROG), KC_SPC KC_RGUI, MO(PROG), KC_SPC
), ),
@ -70,6 +72,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
// PROGRAMMING
[PROG] = KEYMAP( [PROG] = KEYMAP(
// left hand // left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@ -105,20 +108,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | MsLt | MsDn | MsRt | | |VolDn | Mute |VolUp | | | * | | MsLt | MsDn | MsRt | | |VolDn | Mute |VolUp | | |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | Powr | Log | | | | * | | | | | |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | | L0 | | L0 | | | * | | | L0 | | L0 | | |
* | | |------| |------| | | * | | |------| |------| | |
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
// NAVIGATION
[NAVI] = KEYMAP( [NAVI] = KEYMAP(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN,
KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_PWR, LCTL(LALT(KC_DELT)), KC_TRNS, KC_TRNS,
TO(BASE, ON_PRESS), TO(BASE, ON_PRESS),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// right hand // right hand

@ -0,0 +1,38 @@
This keymap is my preferred layout (after a certain amount of experimentation).
The rationale behind the design is as follows:
I grew up typing from a very early age and thus never learned the "correct" way
to touch type (essentially, I'm self-taught). As a, result my fingers don't
tend to stay on the "home keys" and occasionally my right hand wants to type
keys that are on the left of the keyboard, and vice versa.
Hence, despite liking the idea of split keyboards in principle, I've never been
able to get on with them because the split simply doesn't work with my style of
typing. The Ergodox solves this neatly by virtue of having a few extra keys in
the "middle" of the keyboard which I can utilise for deliberate redundancy.
Thus in this keymap there are two "6" keys (one on the left, one on the right)
and likewise Y, H, G, and B are all duplicated to enable one-handed patterns
that I use frequently (e.g. "byobu" with the right hand, "yes" with the left,
etc.).
I occasionally use the numeric pad for data entry, thus this is duplicated
under the natural home position of the right hand in layer 1 (activated by
holding one of the right thumb buttons), while the cursor keys are duplicated
under the classic WASD gaming layout of the left hand in layer 2 (activated by
holding one of the left thumb buttons). Various other useful keys also appear
in these layers (brackets and symbols for coding in layer 1, navigation and
F-keys in layer 2, etc.).
Finally, modifier keys like Ctrl, Shift, and Alt, along with Backspace and
Enter are all in traditional locations in an effort to reuse existing muscle
memory as much as possible (keys like =, #, and ' are in layer 1). The layout
maps are in the comments of keymap_dave.c so I won't bother duplicating them
here.
Oh, and the LEDs are rather pimped ... because I could!
Anyway, although I'm sure this keymap won't be to many people's taste you might
find some interesting ideas in here for your own layouts. Do tweet me
(@waveform80) if you have any questions / suggestions / bugs.
Dave.
Loading…
Cancel
Save