From 03f61dcdb4305447bb6a2b43a56de014f197c202 Mon Sep 17 00:00:00 2001 From: Maciej Piechotka Date: Tue, 9 Feb 2016 23:18:07 -0800 Subject: [PATCH] Add mpiechotka ergodox ez keymap --- .../ergodox_ez/keymaps/mpiechotka/keymap.c | 271 ++++++++++++++++++ .../keymaps/mpiechotka/mpiechotka.hex | Bin 0 -> 67137 bytes .../ergodox_ez/keymaps/mpiechotka/readme.md | 6 + 3 files changed, 277 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex create mode 100644 keyboard/ergodox_ez/keymaps/mpiechotka/readme.md diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c new file mode 100644 index 0000000000..178c290660 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c @@ -0,0 +1,271 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_colemak.h" + +enum { + BASE = 0, + BASE_CM, + SYMB, + MACR +}; + +enum { + LWIN = 1, + PC1, + PC2, + PC3, + PC4, + DL_BASE, + DL_BASE_CM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0a: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB), + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) + ), +/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[BASE_CM] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB), + KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS, + CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, + MEH_T(KC_NO),CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | DLa | DLb | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MACROS +[MACR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(DL_BASE),F(DL_BASE_CM),KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(PC1), F(PC2), F(PC3), F(PC4), KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [LWIN] = ACTION_MACRO(LWIN), + [PC1] = ACTION_MACRO(PC1), + [PC2] = ACTION_MACRO(PC2), + [PC3] = ACTION_MACRO(PC3), + [PC4] = ACTION_MACRO(PC4), + [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE), + [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case LWIN: + if (record->event.pressed) { + register_code(KC_RSFT); + unregister_code(KC_RSFT); + register_code(KC_LGUI); + } else { + unregister_code(KC_LGUI); + } + case PC1: + if (!record->event.pressed) { + return MACRO(T(SLCK), T(SLCK), T(1), T(ENT), END); + } + case PC2: + if (!record->event.pressed) { + return MACRO(T(SLCK), T(SLCK), T(2), T(ENT), END); + } + case PC3: + if (!record->event.pressed) { + return MACRO(T(SLCK), T(SLCK), T(3), T(ENT), END); + } + case PC4: + if (!record->event.pressed) { + return MACRO(T(SLCK), T(SLCK), T(4), T(ENT), END); + } + } + return MACRO_NONE; +} + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + return NULL; +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case SYMB: + ergodox_right_led_1_on(); + break; + case MACR: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex b/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex new file mode 100644 index 0000000000000000000000000000000000000000..4bb17147f0aca2fe9f3345dee0b96a4fbcaeb2ee GIT binary patch literal 67137 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 literal 0 HcmV?d00001 diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md b/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md new file mode 100644 index 0000000000..785400d1d2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md @@ -0,0 +1,6 @@ +# ErgoDox EZ mpiechotka Configuration + +Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys. + + +