From: Xyverz Date: Sun, 29 May 2016 05:56:26 +0000 (-0700) Subject: Dvorak Keymap Layout X-Git-Url: https://git.friedersdorff.com/?a=commitdiff_plain;h=6edd0fff3727525fe6d61d9d6d605d1759a3e1c3;p=max%2Ftmk_keyboard.git Dvorak Keymap Layout --- diff --git a/keyboard/ergodox/keymap_dvorak.h b/keyboard/ergodox/keymap_dvorak.h index 198709c5..f515c686 100644 --- a/keyboard/ergodox/keymap_dvorak.h +++ b/keyboard/ergodox/keymap_dvorak.h @@ -1,4 +1,229 @@ -#error Dvorak layout is not defined yet static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Keymap: Default Layer in Dvorak (Layer 0) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | + | 1 | 2 | 3 | 4 | 5 | Esc | | ESC | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ' | , | . | Y | Y |(Null)| |(Null)| F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | \ | + * |--------+------+------+------+------+------| FN1 | | FN2 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | X | | | | B | M | W | V | Z | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCtr | LAlt | | Ralt | RCtr | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * | BkSp | Del |------| |------| Enter| Space| + * | | | End | | PgDn | | | + * `--------------------' `--------------------' + * + * + ***************************************************************************************************** + * This Dvorak keyboard layout stems from my early Kinesis years, using the Contour PS/2 with a Dvorak + * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the cor- + * ner keys. I've decided to continue using this layout with my ErgoDox. + */ + + KEYMAP( // layer 0 : default + // left hand + EQL, 1, 2, 3, 4, 5, ESC, + TAB, QUOT, COMM, DOT, P, Y, NO, + CAPS, A, O, E, U, I, + LSFT, SCLN, Q, J, K, X, FN1, + LGUI, GRV, INS,LEFT,RGHT, + LCTL,LALT, + HOME, + BSPC,DEL, END, + // right hand + ESC, 6, 7, 8, 9, 0, MINS, + NO, F, G, C, R, L, SLSH, + D, H, T, N, S, BSLS, + FN2, B, M, W, V, Z, RSFT, + UP,DOWN,RBRC,LBRC, RGUI, + RALT,RCTL, + PGUP, + PGDN,ENT, SPC + ), + + + /* + * Keymap: Function and Media Keys Layer (Layer 1) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | Mute | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | FN4 | | FN6 | | PrSc | ScLk | Paus | | Vol Up | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| Stop | Prev | Play | Next | Sel | Vol Dn | + * |--------+------+------+------+------+------| FN4 | | FN7 |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + * + * + */ + + KEYMAP( // layer 1 : function and media keys + // left hand + FN0, F1, F2, F3, F4, F5, F11, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN4, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN4, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + F12, F6, F7, F8, F9, F10, MUTE, + FN6, TRNS,PSCR,SLCK,PAUS,TRNS,VOLU, + MSTP,MPRV,MPLY,MNXT,MSEL,VOLD, + FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), + + + /* + * Keymap: Numpad Layer (Layer 2) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Power | | | | | | | | | | NmLk | KP / | KP * | KP - | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Sleep | | | | | | FN5 | | FN4 | | KP 7 | KP 8 | KP 9 | KP + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Wake | | | | | |------| |------| | KP 4 | KP 5 | KP 6 | KP + | | + * |--------+------+------+------+------+------| FN7 | | FN4 |------+------+------+------+------+--------| + * | | | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | KP 0 | | KP . |KP Ent| | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + * + */ + + KEYMAP( // layer 2: numpad + // left hand + PWR, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + SLEP,TRNS,TRNS,TRNS,TRNS,TRNS, FN5, + WAKE,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN7, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + TRNS,TRNS,NLCK,PSLS,PAST,PMNS,TRNS, + FN4,NO, P7, P8, P9, PPLS,TRNS, + NO, P4, P5, P6, PPLS,TRNS, + FN4,NO, P1, P2, P3, PENT,TRNS, + P0, TRNS,PDOT,PENT,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), + + + /* + * Keymap: QWERTY Gaming Layer (Layer 3) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Fn4 | | Fn4 | Y | U | I | O | P | [ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Fn1 | | Fn2 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCtr | LAlt | | Ralt | RCtr | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * | BkSp | Del |------| |------| Enter| Space| + * | | | End | | PgDn | | | + * `--------------------' `--------------------' + * + */ + + KEYMAP( // layer 3 : QWERTY Gaming + // left hand + EQL, 1, 2, 3, 4, 5, ESC, + TAB, Q, W, E, R, T, FN4, + CAPS,A, S, D, F, G, + LSFT,Z, X, C, V, B, FN1, + LGUI,GRV, INS,LEFT,RGHT, + LCTL,LALT, + HOME, + BSPC,DEL, END, + // right hand + ESC, 6, 7, 8, 9, 0, MINS, + FN4, Y, U, I, O, P, BSLS, + H, J, K, L, SCLN,QUOT, + FN2, N, M, COMM,DOT, SLSH,RSFT, + UP,DOWN,LBRC,RBRC,RGUI, + RALT,RCTL, + PGUP, + PGDN,ENT, SPC + ), + }; -static const uint16_t PROGMEM fn_actions[] = {}; + +/* id for user defined functions & macros */ +enum function_id { + TEENSY_KEY, +}; + +/* + * Fn action definition + */ +static const uint16_t PROGMEM fn_actions[] = { + ACTION_FUNCTION(TEENSY_KEY), // FN0 - Teensy key + ACTION_LAYER_MOMENTARY(1), // FN1 - switch to Layer1 + ACTION_LAYER_MOMENTARY(2), // FN2 - switch to Layer2 + ACTION_LAYER_MOMENTARY(3), // FN3 - switch to Layer3 + ACTION_LAYER_SET_CLEAR(0), // FN4 - set Layer0 + ACTION_LAYER_SET(1, ON_PRESS), // FN5 - set Layer1 + ACTION_LAYER_SET(2, ON_PRESS), // FN6 - set Layer2 + ACTION_LAYER_SET(3, ON_PRESS), // FN7 - set Layer3 +}; + +/* + * Defining the Teensy Key action_function + */ +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // print("action_function called\n"); + // print("id = "); phex(id); print("\n"); + // print("opt = "); phex(opt); print("\n"); + + if (id == TEENSY_KEY) { + clear_keyboard(); + print("\n\nJump to bootloader... "); + _delay_ms(50); + bootloader_jump(); // should not return + print("not supported.\n"); + } + +}