forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Why: * I want a custom keymap that suits my needs. This change addresses the need by: * Cloned default keymap. * Customized layout. * Updated README. * Add an image created from keyboard layout editor.
- Loading branch information
1 parent
eb09c45
commit 7620655
Showing
3 changed files
with
240 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
#include "ergodox_ez.h" | ||
#include "debug.h" | ||
#include "action_layer.h" | ||
|
||
#define BASE 0 // default layer | ||
#define SYMB 1 // symbols | ||
#define MDIA 2 // media keys | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
/* Keymap 0: Basic layer | ||
* | ||
* ,--------------------------------------------------. ,--------------------------------------------------. | ||
* | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute | | ||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | | ||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
* | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | | ||
* |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------| | ||
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | | ||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
* |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl| | ||
* `----------------------------------' `----------------------------------' | ||
* ,-------------. ,-------------. | ||
* | LGA | LAlt | | RAlt | Play | | ||
* ,------|------|------| |------+------+------. | ||
* | | | Home | | PgUp | | | | ||
* |Backsp| Esc |------| |------|Enter |Space | | ||
* |ace | | End | | PgDn | | | | ||
* `--------------------' `--------------------' | ||
*/ | ||
// If it accepts an argument (i.e, is a function), it doesn't need KC_. | ||
// Otherwise, it needs KC_* | ||
[BASE] = KEYMAP( // layer 0 : default | ||
// left hand | ||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, | ||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, | ||
KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, | ||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), | ||
F(0), KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN, | ||
LGUI(KC_LALT), KC_LALT, | ||
KC_HOME, | ||
KC_BSPC, KC_ESC, KC_END, | ||
// right hand | ||
HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, | ||
KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, | ||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | ||
KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, F(1), | ||
KC_RALT, KC_MPLY, | ||
KC_PGUP, | ||
KC_PGDN, KC_ENT, KC_SPC | ||
), | ||
/* Keymap 1: Symbol Layer | ||
* | ||
* ,--------------------------------------------------. ,--------------------------------------------------. | ||
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | | ||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
* | | ! | @ | { | } | | | | | | | | | | | F12 | | ||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
* | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | | ||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
* | | % | ^ | [ | ] | ~ | | | | | | | | | | | ||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
* | | | | | | | | | | | | | ||
* `----------------------------------' `----------------------------------' | ||
* ,-------------. ,-------------. | ||
* | | | | | | | ||
* ,------|------|------| |------+------+------. | ||
* | | | | | | | | | ||
* | | |------| |------| | | | ||
* | | | | | | | | | ||
* `--------------------' `--------------------' | ||
*/ | ||
// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, | ||
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, 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, | ||
KC_TRNS, KC_TRNS, | ||
KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS | ||
), | ||
/* Keymap 2: Media and mouse keys | ||
* | ||
* ,--------------------------------------------------. ,--------------------------------------------------. | ||
* | | | | | | | | | | | | | | | | | ||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
* | | | | | | | | | | | | | | | | | ||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
* | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | | | ||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
* | | | | | | | | | | | | | | | | | ||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
* |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | | | ||
* `----------------------------------' `----------------------------------' | ||
* ,-------------. ,-------------. | ||
* | | | | | | | ||
* ,------|------|------| |------+------+------. | ||
* | | | | | | | | | ||
* | | |------| |------| | | | ||
* | | | | | | | | | ||
* `--------------------' `--------------------' | ||
*/ | ||
// MEDIA AND MOUSE | ||
[MDIA] = KEYMAP( | ||
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, | ||
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_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, KC_TRNS, | ||
KC_TRNS, KC_TRNS, | ||
KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, | ||
// right 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, | ||
KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, | ||
KC_TRNS, KC_TRNS, | ||
KC_TRNS, | ||
KC_TRNS, KC_TRNS, KC_WBAK | ||
), | ||
}; | ||
|
||
const uint16_t PROGMEM fn_actions[] = { | ||
[0] = ACTION_MACRO_TAP(0), // FN0 - Ctrl + a (For screen/tmux) | ||
[1] = ACTION_MACRO_TAP(1) // FN1 - Ctrl + ` (For quake style console) | ||
}; | ||
|
||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. | ||
{ | ||
switch(id) { | ||
case 0: | ||
if (record->event.pressed) { | ||
if (record->tap.count) { | ||
if (record->tap.interrupted) { | ||
record->tap.count = 0; | ||
// hold press action | ||
register_code(KC_LCTL); | ||
} else { | ||
// tap press action | ||
return MACRO( D(LCTL), T(A), U(LCTL), END ); | ||
} | ||
} else { | ||
// hold press action | ||
register_code(KC_LCTL); | ||
} | ||
} else { | ||
if (record->tap.count) { | ||
// tap release action | ||
} else { | ||
// hold release action | ||
unregister_code(KC_LCTL); | ||
} | ||
record->tap.count = 0; | ||
} | ||
break; | ||
case 1: | ||
if (record->event.pressed) { | ||
if (record->tap.count) { | ||
if (record->tap.interrupted) { | ||
record->tap.count = 0; | ||
// hold press action | ||
register_code(KC_RCTL); | ||
} else { | ||
// tap press action | ||
return MACRO( DOWN(KC_RCTL), TYPE(KC_GRV), UP(KC_RCTL), END ); | ||
} | ||
} else { | ||
// hold press action | ||
register_code(KC_RCTL); | ||
} | ||
} else { | ||
if (record->tap.count) { | ||
// tap release action | ||
} else { | ||
// hold release action | ||
unregister_code(KC_RCTL); | ||
} | ||
record->tap.count = 0; | ||
} | ||
break; | ||
} | ||
return MACRO_NONE; | ||
}; | ||
|
||
|
||
|
||
// Runs just one time when the keyboard initializes. | ||
void matrix_init_user(void) { | ||
|
||
}; | ||
|
||
// 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 1: | ||
ergodox_right_led_1_on(); | ||
break; | ||
case 2: | ||
ergodox_right_led_2_on(); | ||
break; | ||
default: | ||
// none | ||
break; | ||
} | ||
|
||
}; |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# ErgoDox EZ Plums Configuration | ||
|
||
## Changelog | ||
|
||
* Apr 23, 2016 (v0.1.0): | ||
* Shortcut for iTerm2 quake style dropdown (Ctrl+`) | ||
* Shortcut for screen/tmux (Ctrl+a) | ||
* Shortcut for shush (Hyper+m) | ||
* Combo modifier for LGUI + LALT | ||
|
||
![Plums](plums.png) |