~ruther/qmk_firmware

8680c50d07604836b0fc7c3f97bd77c7830ea083 — Erez Zukerman 6 years ago 8bcefc9
Removes Erez personally from QMK (#5883)

13 files changed, 20 insertions(+), 338 deletions(-)

M keyboards/ergodox_ez/info.json
M keyboards/ergodox_ez/matrix.c
M keyboards/ergotaco/matrix.c
M keyboards/georgi/matrix.c
M keyboards/gergo/matrix.c
M keyboards/handwired/frenchdev/matrix.c
M keyboards/readme.md
M keyboards/sixkeyboard/matrix.c
D layouts/community/ergodox/erez_experimental/config.h
D layouts/community/ergodox/erez_experimental/keymap.c
D layouts/community/ergodox/erez_experimental/readme.md
D layouts/community/ergodox/erez_experimental/rules.mk
M readme.md
M keyboards/ergodox_ez/info.json => keyboards/ergodox_ez/info.json +1 -1
@@ 1,7 1,7 @@
{
    "keyboard_name": "ErgoDox EZ",
    "url": "ergodox-ez.com",
    "maintainer": "erez",
    "maintainer": "ZSA",
    "width": 17,
    "height": 8,


M keyboards/ergodox_ez/matrix.c => keyboards/ergodox_ez/matrix.c +4 -8
@@ 1,9 1,5 @@
/*

Note for ErgoDox EZ customizers: Here be dragons!
This is not a file you want to be messing with.
All of the interesting stuff for you is under keymaps/ :)
Love, Erez

Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>



@@ 95,7 91,7 @@ void matrix_init(void) {
  // initialize matrix state: all keys off
  for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
    matrix[i]     = 0;
    raw_matrix[i] = 0;    
    raw_matrix[i] = 0;
  }

#ifdef DEBUG_MATRIX_SCAN_RATE


@@ 168,7 164,7 @@ uint8_t matrix_scan(void) {
#ifdef LEFT_LEDS
  mcp23018_status = ergodox_left_leds_update();
#endif  // LEFT_LEDS
  bool changed = false;  
  bool changed = false;
  for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) {
    // select rows from left and right hands
    uint8_t left_index = i;


@@ 178,13 174,13 @@ uint8_t matrix_scan(void) {

    // we don't need a 30us delay anymore, because selecting a
    // left-hand row requires more than 30us for i2c.
    

    changed |= store_raw_matrix_row(left_index);
    changed |= store_raw_matrix_row(right_index);

    unselect_rows();
  }
  

  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
  matrix_scan_quantum();


M keyboards/ergotaco/matrix.c => keyboards/ergotaco/matrix.c +4 -8
@@ 1,8 1,4 @@
/*
Note for ErgoDox EZ customizers: Here be dragons!
This is not a file you want to be messing with.
All of the interesting stuff for you is under keymaps/ :)
Love, Erez

Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>



@@ 226,8 222,8 @@ uint8_t matrix_scan(void)
    matrix_scan_quantum();

#ifdef DEBUG_MATRIX
    for (uint8_t c = 0; c < MATRIX_COLS; c++) 
		for (uint8_t r = 0; r < MATRIX_ROWS; r++) 
    for (uint8_t c = 0; c < MATRIX_COLS; c++)
		for (uint8_t r = 0; r < MATRIX_ROWS; r++)
		  if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c);
#endif



@@ 324,10 320,10 @@ static void unselect_rows(void)
static void select_row(uint8_t row)
{
    if (row < 6) {
        // select on mcp23018 
        // select on mcp23018
        if (mcp23018_status) { // do nothing on error
			// Read using bitmask
        } else { // set active row low  : 0 // set other rows hi-Z : 1 
        } else { // set active row low  : 0 // set other rows hi-Z : 1
            mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT);        if (mcp23018_status) goto out;
            mcp23018_status = i2c_write(GPIOA, ERGODOX_EZ_I2C_TIMEOUT);                 if (mcp23018_status) goto out;
            mcp23018_status = i2c_write(~(1<<row), ERGODOX_EZ_I2C_TIMEOUT);      		if (mcp23018_status) goto out;

M keyboards/georgi/matrix.c => keyboards/georgi/matrix.c +3 -7
@@ 1,8 1,4 @@
/*
Note for ErgoDox EZ customizers: Here be dragons!
This is not a file you want to be messing with.
All of the interesting stuff for you is under keymaps/ :)
Love, Erez

Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>



@@ 248,8 244,8 @@ uint8_t matrix_scan(void)
    matrix_scan_quantum();

#ifdef DEBUG_MATRIX
    for (uint8_t c = 0; c < MATRIX_COLS; c++) 
		for (uint8_t r = 0; r < MATRIX_ROWS; r++) 
    for (uint8_t c = 0; c < MATRIX_COLS; c++)
		for (uint8_t r = 0; r < MATRIX_ROWS; r++)
		  if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c);
#endif



@@ 359,7 355,7 @@ static void select_row(uint8_t row)
    if (row < 7) {
        // select on mcp23018
        if (mcp23018_status) { // do nothing on error
        } else { // set active row low  : 0 // set other rows hi-Z : 1 
        } else { // set active row low  : 0 // set other rows hi-Z : 1
            mcp23018_status = i2c_start(I2C_ADDR_WRITE, ERGODOX_EZ_I2C_TIMEOUT);        if (mcp23018_status) goto out;
            mcp23018_status = i2c_write(GPIOA, ERGODOX_EZ_I2C_TIMEOUT);                 if (mcp23018_status) goto out;
            mcp23018_status = i2c_write(0xFF & ~(1<<row), ERGODOX_EZ_I2C_TIMEOUT);      if (mcp23018_status) goto out;

M keyboards/gergo/matrix.c => keyboards/gergo/matrix.c +0 -4
@@ 1,8 1,4 @@
/*
Note for ErgoDox EZ customizers: Here be dragons!
This is not a file you want to be messing with.
All of the interesting stuff for you is under keymaps/ :)
Love, Erez

Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>


M keyboards/handwired/frenchdev/matrix.c => keyboards/handwired/frenchdev/matrix.c +0 -5
@@ 5,11 5,6 @@ The "column" and "row" in here actually refers to the opposite on the keyboard
see definition of KEYMAP in v1.h, the grid is transposed so that a "row" in here is actually a "column" on the physical keyboard
Nicolas

Note for ErgoDox EZ customizers: Here be dragons!
This is not a file you want to be messing with.
All of the interesting stuff for you is under keymaps/ :)
Love, Erez

Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
Copyright 2013 Nicolas Poirey <nicolas.poirey@gmail.com>


M keyboards/readme.md => keyboards/readme.md +7 -8
@@ 3,8 3,6 @@ QMK runs on a diverse range of keyboards. Some of these keyboards are officially

## Official QMK Keyboards

These keyboards are manufactured by the maintainers of QMK.

### Ortholinear Keyboards - Jack Humbert

What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and killer tactile feel. These are available through [olkb.com](http://olkb.com) as well as through [Massdrop](http://massdrop.com) from time to time, as easy to assemble kits.


@@ 13,12 11,6 @@ What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and
* [Preonic](/keyboards/preonic/) &mdash; Like the Planck, but bigger. 50%.
* [Atomic](/keyboards/atomic/) &mdash; Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine _bigger_. That is the Atomic. A 60% keyboard.

### ErgoDox EZ - Erez Zukerman

Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. Available on [ergodox-ez.com](https://ergodox-ez.com).

* [ErgoDox EZ](/keyboards/ergodox_ez/) &mdash; Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types.

### Clueboard - Zach White

Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components, available on [clueboard.co](http://clueboard.co)


@@ 27,6 19,13 @@ Designed and built in Felton, CA, Clueboards keyboard emphasize quality and loca
* [Cluecard](/keyboards/clueboard/card/) &mdash; A small board to help you hack on QMK.
* [Cluepad](/keyboards/clueboard/17/) &mdash; A mechanical numpad with QMK superpowers.

### ErgoDox EZ and Planck EZ - ZSA Technology Labs

[ZSA Technology Labs](https://ergodox-ez.com) maintains its own [fork of QMK](https://github.com/zsa/qmk_firmware) which feeds its [configurator](https://configure.ergodox-ez.com), for stability and legal purposes. The ZSA boards are:

* [ErgoDox EZ](/keyboards/ergodox_ez/) &mdash; A powerful split mechanical keyboard.
* [Planck EZ](/keyboards/planck/ez) &mdash; A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine, which ships fully assembled with a two-year warranty.


## Community-supported QMK Keyboards


M keyboards/sixkeyboard/matrix.c => keyboards/sixkeyboard/matrix.c +0 -5
@@ 1,10 1,5 @@
/*

Note for ErgoDox EZ customizers: Here be dragons!
This is not a file you want to be messing with.
All of the interesting stuff for you is under keymaps/ :)
Love, Erez

Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>

This program is free software: you can redistribute it and/or modify

D layouts/community/ergodox/erez_experimental/config.h => layouts/community/ergodox/erez_experimental/config.h +0 -13
@@ 1,13 0,0 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H

#include QMK_KEYBOARD_CONFIG_H

#define ONESHOT_TAP_TOGGLE 2
#define ONESHOT_TIMEOUT 300

#undef LEADER_TIMEOUT
#define LEADER_TIMEOUT 300
 

#endif

D layouts/community/ergodox/erez_experimental/keymap.c => layouts/community/ergodox/erez_experimental/keymap.c +0 -217
@@ 1,217 0,0 @@
#include <keymap_extras/keymap_colemak.h>
#include QMK_KEYBOARD_H
#include "debug.h"
#include "action_layer.h"

#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys

enum custom_keycodes {
  PLACEHOLDER = SAFE_RANGE, // can always be here
  RGB_FF00BB // always start with RGB_
};


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
 *
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 * |   =    |   1  |   2  |   3  |   4  |   5  |Ctrl- |           | Ctrl+|   6  |   7  |   8  |   9  |   0  |   -    |
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    |
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  | Alt/J|   K  |   L  |; / L2| LGui/' |
 * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
 * |LShift/(|Z/Ctrl|   X  |   C  |   V  |   B  |   [  |           |  ]   |   N  |   M  |   ,  |   .  |//Ctrl|RShift/)|
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | -/L1  |
 *   `----------------------------------'                                       `----------------------------------'
 *                                        ,-------------.       ,-------------.
 *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
 *                                 ,------|------|------|       |------+--------+------.
 *                                 |      |      | Home |       | PgUp |        |      |
 *                                 | Space|Leader|------|       |------| Tab/L1 |Enter |
 *                                 |      |      | End  |       | PgDn |        |      |
 *                                 `--------------------'       `----------------------'
 */
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = LAYOUT_ergodox(  // layer 0 : default
        // left hand
        KC_EQL,         KC_1,         KC_2,   KC_3,   KC_4,     KC_5,   LCTL(KC_MINS),
        KC_DELT,        KC_Q,         KC_W,   KC_E,   KC_R,     KC_T,   TG(SYMB),
        KC_BSPC,        KC_A,         KC_S,   KC_D,   KC_F,     KC_G,
        KC_LSPO,       CTL_T(KC_Z),  KC_X,   KC_C,   KC_V,     KC_B,   ALL_T(KC_LBRC),
        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,  KC_RGHT,
                                              ALT_T(KC_APP),    KC_LGUI,
                                                                KC_HOME,
                                                 KC_SPC,KC_LEAD,KC_END,
        // right hand
             LCTL(KC_EQL),       KC_6,KC_7,       KC_8,   KC_9,   KC_0,            KC_MINS,
             TG(SYMB),      KC_Y,KC_U,       KC_I,   KC_O,   KC_P,            KC_BSLS,
                            KC_H,ALT_T(KC_J),KC_K,   KC_L,   LT(MDIA,KC_SCLN),GUI_T(KC_QUOT),
             MEH_T(KC_RBRC),KC_N,KC_M,       KC_COMM,KC_DOT, CTL_T(KC_SLSH),  KC_RSPC,
                            KC_UP,           KC_DOWN,KC_LBRC,KC_RBRC,         LT(SYMB,KC_MINS),
             KC_LALT,       CTL_T(KC_ESC),
             KC_PGUP,
             KC_PGDN,LT(SYMB, KC_TAB), KC_ENT
    ),
/* Keymap 1: Symbol Layer
 *
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |   F12  |
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 * |        |   1  |   2  |   3  |   4  |   5  |------|           |------|   &  |   _  |   -  |   ;  |   +  |        |
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 * |        |   6  |   7  |   8  |   9  |   0  |      |           |      |   |  |   @  |   =  |   %  |      |        |
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 *   |      |      |      |NxtTab|PrvTab|                                       |      |      |      |      |      |
 *   `----------------------------------'                                       `----------------------------------'
 *                                        ,-------------.       ,-------------.
 *                                        |      |      |       |TOG   |
 *                                 ,------|------|------|       |------+------+------.
 *                                 |VAI   |VAD   |HUI   |       |SAI   |      |MOD   |
 *                                 |      |      |------|       |------|      |      |
 *                                 |      |      |HUD   |       |SAD   |      |      |
 *                                 `--------------------'       `--------------------'
 */
// SYMBOLS
[SYMB] = LAYOUT_ergodox(
       // left hand
       RGB_FF00BB, KC_F1,  KC_F2,  KC_F3,      KC_F4,        KC_F5,   KC_TRNS,
       KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,       KC_TRNS,      KC_TRNS, KC_TRNS,
       KC_TRNS, KC_1,   KC_2,   KC_3,          KC_4,         KC_5,
       KC_TRNS, KC_6,   KC_7,   KC_8,          KC_9,         KC_0,    KC_TRNS,
       KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN),
                                                                              KC_TRNS,KC_TRNS,
                                                                                      RGB_HUI,
                                                                      RGB_VAI,RGB_VAD,RGB_HUD,
               // 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_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS,
       KC_TRNS, KC_PIPE, KC_AT,   KC_EQL,  KC_PERC,   KC_TRNS, KC_TRNS,
                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
       RGB_TOG, KC_TRNS,
       RGB_SAI,
       RGB_SAD, KC_TRNS, RGB_MOD
),
/* Keymap 2: Media and mouse keys
 *
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 * |        | PgUp | Home | End  | PgDn |      |------|           |------|      |      |      |      |      |  Play  |
 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
 * |        |      |      |      |      |      |      |           |      |      |      | Prev | Next |      |        |
 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
 *   |      |      |      |      |      |                                       |VolUp |VolDn | Mute |      |      |
 *   `----------------------------------'                                       `----------------------------------'
 *                                        ,-------------.       ,-------------.
 *                                        |      |      |       |      |      |
 *                                 ,------|------|------|       |------+------+------.
 *                                 |      |      |      |       |      |      |Brwser|
 *                                 |      |      |------|       |------|      |Back  |
 *                                 |      |      |      |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 */
// MEDIA AND MOUSE
[MDIA] = LAYOUT_ergodox(
       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_PGUP, KC_HOME, KC_END,  KC_PGDN, 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_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_MPLY,
       KC_TRNS,  KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
                          KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
       KC_TRNS, KC_TRNS,
       KC_TRNS,
       KC_TRNS, KC_TRNS, KC_WBAK
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  return MACRO_NONE;
};

// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {

};


bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    // dynamically generate these.
    case RGB_FF00BB:
      if (record->event.pressed) {
        #ifdef RGBLIGHT_ENABLE
          rgblight_enable();
          rgblight_mode(1);
          rgblight_setrgb(0xff,0x00,0xbb);
        #endif
      }
      return false;
      break;
  }
  return true;
}

LEADER_EXTERNS();

// 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;
  }

  LEADER_DICTIONARY() {
    leading = false;
    leader_end();

    SEQ_ONE_KEY(KC_W) {
      register_code(KC_LALT);
      register_code(KC_F4);
      unregister_code(KC_F4);
      unregister_code(KC_LALT);
    }
    SEQ_ONE_KEY(KC_O) {
      register_code(KC_LCTL);
      register_code(KC_LSFT);
      register_code(KC_O);
      unregister_code(KC_O);
      unregister_code(KC_LSFT);
      unregister_code(KC_LCTL);
    }
  }
}


D layouts/community/ergodox/erez_experimental/readme.md => layouts/community/ergodox/erez_experimental/readme.md +0 -55
@@ 1,55 0,0 @@
# Erez's experimental layout

This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks.

Changelog:

## Nov 1, 2016:

* Adds dedicated text zooming keys in inner corners

## May 24, 2016:

* Implements Leader key example
  * Leader, W sends Alt-F4
  * Leader, O sends Ctrl-shift-o (a shortcut I use in FrontApp) 

## May 8, 2016:

* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held
* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on).
* Tweaks media/nav layer
  * Removes mouse control, as I don't use it
  * Makes left home row keys PgUp, Home, End, PgDn

## Apr 29, 2016:

* Tweaks the Hyper and Meh key to send brackets when tapped
* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky)

## Apr 25, 2016:

* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped

## Feb 11, 2016:

* Updated ASCII legend for thumb clusters
* Made it so outer left-hand thumb key is L1 momentary toggle
* Added % and @ to L1
* Swapped positions for _ and - on L1

## Feb 5, 2016:

* A whole new design for the symbol layer. Specifically:
  * Put the minus, underscore, and semicolon right in the homerow for the right hand
  * Parens are in better places for me
  * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer
  * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down
  * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace)
  

## Jan 19, 2016:

* Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic.
* Made ' into dual-action key (Win/Cmd when held down).


D layouts/community/ergodox/erez_experimental/rules.mk => layouts/community/ergodox/erez_experimental/rules.mk +0 -6
@@ 1,6 0,0 @@
# Having a file like this allows you to override Makefile definitions
# for your own particular keymap

SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
COMMAND_ENABLE   = no  # Commands for debug and configuration
LEADER_ENABLE = yes

M readme.md => readme.md +1 -1
@@ 28,7 28,7 @@ The project also includes community support for [lots of other keyboards](/keybo

## Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [Erez Zukerman](https://github.com/ezuk), the Clueboard by [Zach White](https://github.com/skullydazed), and the Atreus by [Phil Hagelberg](https://github.com/technomancy).
QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [ZSA Technology Labs](https://github.com/zsa), the Clueboard by [Zach White](https://github.com/skullydazed), and the Atreus by [Phil Hagelberg](https://github.com/technomancy).

## Official Website