This commit is contained in:
Christopher Browne 2016-02-03 12:49:55 -05:00
commit c39b53bb9a
5 changed files with 168 additions and 30 deletions

View File

@ -1,6 +1,10 @@
atreus keyboard firmware
======================
## Note
This is for the Teensy2 hand wired boards only.
## Quantum MK Firmware
You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you.

View File

@ -6,12 +6,26 @@
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
#define CRSR 3 // media keys
#define SMLY 3 // media keys
#define NUMB 4 // number keys
#define EGOS 5 // Egoshooter layer
#define M_CTRL_CMDV 1
#define M_CTRL_CMDC 2
#define M_MEH_SH_ACUT 3
#define M_DE_PLUS_CTRLALT 12
#define M_DE_CIRC_CTRLCMD 13
#define M_TOGGLE_5 14
#define SM_SMILE 4
#define SM_SMIRK 5
#define SM_FROWN 6
#define SM_CRY 7
#define SM_KISS 8
#define SM_HEART 9
#define SM_LAUGH 10
#define SM_SAD 11
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
@ -43,16 +57,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI,
KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G,
KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT,
LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
LT(SYMB,DE_LESS), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), LALT(KC_LSFT), LGUI(KC_LSFT),
M(M_MEH_SH_ACUT), TG(2),
KC_HOME,
KC_BSPC,KC_DEL, KC_END,
KC_BSPC,KC_DEL, LT(SMLY,KC_END),
// right hand
M(M_CTRL_CMDC), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS,
KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE,
DE_H, DE_J, DE_K, DE_L, DE_OE, ALT_T(DE_AE),
KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT,
KC_UP, KC_DOWN,LGUI(KC_LSFT),DE_PLUS, LT(SYMB,DE_HASH),
KC_LEFT, KC_UP,KC_DOWN,KC_RIGHT, LT(SYMB,DE_HASH),
TG(4), ALL_T(DE_ACUT),
KC_PGUP,
KC_PGDN,KC_ENT, KC_SPC
@ -60,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | < | > | ! | ? | | | | | \ | [ | ] | | | # | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@ -90,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS,KC_DEL,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12,
DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS,
KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST,
@ -102,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | Mute | | | | | | Play |
* | | | | | | | | | Mute | | | | | | EGOS |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@ -140,20 +154,20 @@ KEYMAP(
KC_TRNS,
KC_TRNS, KC_TRNS, KC_WBAK
),
// ADNW-KOY layer
/* Keymap 3: ADNW-Koy layer
* ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts.
/* Keymap 3: Smiley layer
* making it easier to type smileys... tipp: on osx you can easily replace those smileys with the UTF-8 character using
* keyboard short commands...
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | - |
* | | | | | | | | | :-) | ;-) | :-D | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | K | . | O | , | Y | | | | V | G | C | L | ß | Z |
* | | | | | | | | | | :-{ | :-( | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 |
* | | | | | | |------| |------| <3 | :-* | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift |
* | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |</L1| ^ |AltShf| Left | Right| | Up | Down | CMD-SHIFT | ´ | //L1 |
* | | | | | | | | | | | r|
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@ -165,18 +179,18 @@ KEYMAP(
*/
KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_TRNS,
KC_TRNS, KC_H, KC_A, KC_E, KC_I, KC_U,
KC_TRNS, CTL_T(KC_X),KC_Q, DE_AE, DE_UE, DE_OE, 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_TRNS, KC_TRNS, KC_TRNS, 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_SLSH,
KC_TRNS, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y,
KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F),
KC_TRNS, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_TRNS,
M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS,
M(SM_HEART), M(SM_KISS), 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,
@ -195,9 +209,50 @@ KEYMAP(
// 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, LSFT(KC_RBRC), KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS,
KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_MINS,
KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS,
KC_0,KC_DOT, KC_0, KC_EQL, KC_TRNS,
KC_0,KC_DOT, KC_0, DE_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 3: Egoshooter layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | L5 | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | SHIFT | | | | | |------| |------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | CTRL | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | F1 | F2 | | | |
* ,------|------|------| |------+--------+------.
* | | | F3 | | | | |
* | SPACE| CTRL|------| |------| | |
* | | | F4 | | | | |
* `--------------------' `----------------------'
*/
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_LSFT, 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_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_F1, KC_F2,
KC_F3,
KC_SPC, KC_LCTL, KC_F4,
// right hand
M(M_TOGGLE_5), 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
@ -206,7 +261,7 @@ KEYMAP(
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols)
[2] = ACTION_LAYER_TAP_TOGGLE(CRSR) // FN2 - Momentary Layer 2 (Cursors)
[2] = ACTION_LAYER_TAP_TOGGLE(SMLY) // FN2 - Momentary Layer 2 (Smiley)
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@ -257,7 +312,80 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}
}
break;
}
case M_DE_CIRC_CTRLCMD:
if (record->event.pressed) {
start = timer_read();
return MACRO(D(LCTRL),D(LGUI),END);
} else {
if (timer_elapsed(start) > 150){
return MACRO(U(LCTRL),U(LGUI),END);
} else {
return MACRO(U(LCTRL),U(LGUI),T(NUBS),END);
}
}
break;
case M_DE_PLUS_CTRLALT:
if (record->event.pressed) {
start = timer_read();
return MACRO(D(LCTRL),D(LALT),END);
} else {
if (timer_elapsed(start) > 150){
return MACRO(U(LCTRL),U(LALT),END);
} else {
return MACRO(U(LCTRL),U(LALT),T(RBRC),END);
}
}
break;
case SM_SMILE:
if (record->event.pressed) {
return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
}
break;
case SM_SMIRK:
if (record->event.pressed) {
return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
}
break;
case SM_CRY:
if (record->event.pressed) {
return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
}
break;
case SM_SAD:
if (record->event.pressed) {
return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
}
break;
case SM_HEART:
if (record->event.pressed) {
return MACRO(T(GRV),T(3),END);
}
break;
case SM_LAUGH:
if (record->event.pressed) {
return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END);
}
break;
case SM_KISS:
if (record->event.pressed) {
return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END);
}
break;
case SM_FROWN:
if (record->event.pressed) {
return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END);
}
break;
case M_TOGGLE_5:
if (record->event.pressed){
layer_state ^= (1<<5);
layer_state &= (1<<5);
}
break;
}
return MACRO_NONE;
};
@ -291,6 +419,11 @@ void * matrix_scan_user(void) {
ergodox_right_led_3_on();
//ergodox_board_led_on();
break;
case 5:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
ergodox_right_led_3_on();
break;
default:
// none
break;

View File

@ -4,13 +4,14 @@ Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyb
- Die Umlaute sollten an einigermassen sinnvollen Plätzen liegen
- der Umstieg sollte dadurch erleichtert werden, dass einige Tasten an ihren "normalen" Platz zurückgewandert sind. Z.B. ESC, Tab,...
- die Leertaste lässt sich jetzt mit beiden Daumen bedienen
- die Leertaste ist jetzt auf der rechten seite, neben Enter. Dafür hat der linke Daumen nun Backspace und Delete.
- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar.
- es gibt eine neue Layer für die Nutzung der Cursortasten, dort sind sie etwas einfacher angeordnet und sind z.B. auch für Spiele nutzbar
- es gibt eine neue Layer die für Spiele genutzt werden kann (egosooter wie Counter Strike). Dort liegen die wichtigsten Tasten auf der linken Seite, im Daumenblock z.B. space und ctrl sowie die F-Tasten 1-4. Diese Layer ist über die Symbollayer erreichbar.
- Die Symbollayer wurde dahingehend angepasst, dass die klammern, etc nun auf beiden hälften der Tastatur zu finden sind
- der Zehnerblock wurde in eine eigene Layer umgezogen
- die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen
------------------------------
# ErgoDox EZ for OSX

View File

@ -55,7 +55,7 @@ Generally, the instructions to flash the PCB are as follows:
### Keymap
Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h).
Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h).
You can use modifiers with keycodes like this: