* Refactor matrices and keymaps * Fixes for @ericgebhart keymap * Deleted macro aliases * ericgebhart/keymap.c to LAYOUT_ergodox_wrapper
		
			
				
	
	
		
			355 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			355 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
  Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
 | 
						|
 | 
						|
  This program is free software: you can redistribute it and/or modify
 | 
						|
  it under the terms of the GNU General Public License as published by
 | 
						|
  the Free Software Foundation, either version 2 of the License, or
 | 
						|
  (at your option) any later version.
 | 
						|
 | 
						|
  This program is distributed in the hope that it will be useful,
 | 
						|
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
  GNU General Public License for more details.
 | 
						|
 | 
						|
  You should have received a copy of the GNU General Public License
 | 
						|
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
*/
 | 
						|
#include "keymap_bepo.h"
 | 
						|
#include "ericgebhart.h"
 | 
						|
 | 
						|
 | 
						|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
						|
 | 
						|
  [DVORAK] = LAYOUT_ergodox_wrapper(
 | 
						|
                             // left hand
 | 
						|
                             KC_GRV,     ___NUMBER_L___,   DEF_OS_LAYER_SW,
 | 
						|
                             KC_LOCK,    ___DVORAK_L1___,  KC_LBRC,
 | 
						|
                             TAB_BKTAB,  ___DVORAK_L2___,
 | 
						|
                             KC_LSFT,    ___DVORAK_L3___,  KC_LPRN,
 | 
						|
 | 
						|
                             ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                             ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
                             // right hand
 | 
						|
                             MDIA_SYMB,  ___NUMBER_R___,   KC_EQL,
 | 
						|
                             KC_RBRC,    ___DVORAK_R1___,  KC_SLASH,
 | 
						|
                             /*    */    ___DVORAK_R2___,  KC_MINUS,
 | 
						|
                             KC_RPRN,    ___DVORAK_R3___,  KC_RSFT,
 | 
						|
 | 
						|
                             ___ERGODOX_BOTTOM_RIGHT___,
 | 
						|
                             ___ERGODOX_THUMB_RIGHT___
 | 
						|
                             ),
 | 
						|
 | 
						|
  [XMONAD] = LAYOUT_ergodox_wrapper(
 | 
						|
                             // left hand
 | 
						|
                             ___,  ___FUNC_L___,     ___,
 | 
						|
                             ___,  ___DVORAK_L1___,  ___,
 | 
						|
                             ___,  ___DVORAK_L2___,
 | 
						|
                             ___,  ___DVORAK_L3___,  ___,
 | 
						|
 | 
						|
                             ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                             ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
                             // right hand
 | 
						|
                             ___,  ___FUNC_R___,     ___,
 | 
						|
                             ___,  ___DVORAK_R1___,  ___,
 | 
						|
                             /**/  ___DVORAK_R2___,  ___,
 | 
						|
                             ___,  ___DVORAK_R3___,  ___,
 | 
						|
 | 
						|
                             ___ERGODOX_BOTTOM_RIGHT___,
 | 
						|
                             ___ERGODOX_THUMB_RIGHT___
 | 
						|
                             ),
 | 
						|
 | 
						|
  [QWERTY] = LAYOUT_ergodox_wrapper(
 | 
						|
                            // left hand
 | 
						|
                            KC_GRV,     ___NUMBER_L___,   DEF_OS_LAYER_SW,
 | 
						|
                            KC_LOCK,    ___QWERTY_L1___,  KC_LBRC,
 | 
						|
                            TAB_BKTAB,  ___QWERTY_L2___,
 | 
						|
                            KC_LSFT,    ___QWERTY_L3___,  KC_LPRN,
 | 
						|
 | 
						|
                            ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                            ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
                            // right hand
 | 
						|
                            MDIA_SYMB,  ___NUMBER_R___,   KC_EQL,
 | 
						|
                            KC_RBRC,    ___QWERTY_R1___,  KC_SLASH,
 | 
						|
                            /*       */ ___QWERTY_R2___,  KC_MINUS,
 | 
						|
                            KC_RPRN,    ___QWERTY_R3___,  KC_RSFT,
 | 
						|
 | 
						|
                            ___ERGODOX_BOTTOM_RIGHT___,
 | 
						|
                            ___ERGODOX_THUMB_RIGHT___
 | 
						|
                            ),
 | 
						|
 | 
						|
  [COLEMAK] = LAYOUT_ergodox_wrapper(
 | 
						|
                              // left hand
 | 
						|
                              KC_GRV,     ___NUMBER_L___,    DEF_OS_LAYER_SW,
 | 
						|
                              KC_LOCK,    ___COLEMAK_L1___,  KC_LBRC,
 | 
						|
                              TAB_BKTAB,  ___COLEMAK_L2___,
 | 
						|
                              KC_LSFT,    ___COLEMAK_L3___,  KC_LPRN,
 | 
						|
 | 
						|
                              ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                              ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
                              // right hand
 | 
						|
                              MDIA_SYMB,  ___NUMBER_R___,    KC_EQL,
 | 
						|
                              KC_RBRC,    ___COLEMAK_R1___,  KC_SLASH,
 | 
						|
                              /*       */ ___COLEMAK_R2___,  KC_MINUS,
 | 
						|
                              KC_RPRN,    ___COLEMAK_R3___,  KC_RSFT,
 | 
						|
 | 
						|
                              ___ERGODOX_BOTTOM_RIGHT___,
 | 
						|
                              ___ERGODOX_THUMB_RIGHT___
 | 
						|
                              ),
 | 
						|
 | 
						|
  [WORKMAN] = LAYOUT_ergodox_wrapper(
 | 
						|
                              // left hand
 | 
						|
                              KC_GRV,     ___NUMBER_L___,    DEF_OS_LAYER_SW,
 | 
						|
                              KC_LOCK,    ___WORKMAN_L1___,  KC_LBRC,
 | 
						|
                              TAB_BKTAB,  ___WORKMAN_L2___,
 | 
						|
                              KC_LSFT,    ___WORKMAN_L3___,  KC_LPRN,
 | 
						|
 | 
						|
                              ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                              ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
                              // right hand
 | 
						|
                              MDIA_SYMB,  ___NUMBER_R___,    KC_EQL,
 | 
						|
                              KC_RBRC,    ___WORKMAN_R1___,  KC_SLASH,
 | 
						|
                              /*    */    ___WORKMAN_R2___,  KC_MINUS,
 | 
						|
                              KC_RPRN,    ___WORKMAN_R3___,  KC_RSFT,
 | 
						|
 | 
						|
                              ___ERGODOX_BOTTOM_RIGHT___,
 | 
						|
                              ___ERGODOX_THUMB_RIGHT___
 | 
						|
                              ),
 | 
						|
 | 
						|
  [NORMAN] = LAYOUT_ergodox_wrapper(
 | 
						|
                            // left hand
 | 
						|
                            KC_GRV,     ___NUMBER_L___,   DEF_OS_LAYER_SW,
 | 
						|
                            KC_LOCK,    ___NORMAN_L1___,  KC_LBRC,
 | 
						|
                            TAB_BKTAB,  ___NORMAN_L2___,
 | 
						|
                            KC_LSFT,    ___NORMAN_L3___,  KC_LPRN,
 | 
						|
 | 
						|
                            ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                            ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
                            // right hand
 | 
						|
                            MDIA_SYMB,  ___NUMBER_R___,   KC_EQL,
 | 
						|
                            KC_RBRC,    ___NORMAN_R1___,  KC_SLASH,
 | 
						|
                            /*       */ ___NORMAN_R2___,  KC_MINUS,
 | 
						|
                            KC_RPRN,    ___NORMAN_R3___,  KC_RSFT,
 | 
						|
 | 
						|
                            ___ERGODOX_BOTTOM_RIGHT___,
 | 
						|
                            ___ERGODOX_THUMB_RIGHT___
 | 
						|
                            ),
 | 
						|
 | 
						|
  [DVORAK_ON_BEPO] = LAYOUT_ergodox_wrapper(
 | 
						|
                                    // left hand
 | 
						|
                                    DB_GRV,     ___NUMBER_BEPO_L___,  DEF_OS_LAYER_SW,
 | 
						|
                                    KC_LOCK,    ___DVORAK_FR_L1___,   DB_LBRC,
 | 
						|
                                    TAB_BKTAB,  ___DVORAK_FR_L2___,
 | 
						|
                                    KC_LSFT,    ___DVORAK_FR_L3___,   DB_LPRN,
 | 
						|
 | 
						|
                                    ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                                    ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
 | 
						|
                                    // right hand
 | 
						|
                                    MDIA_SYMB,   ___NUMBER_BEPO_R___,  DB_EQL,
 | 
						|
                                    DB_RBRC,     ___DVORAK_FR_R1___,   DB_SLASH,
 | 
						|
 | 
						|
                                    /*      */   ___DVORAK_FR_R2___,   DB_MINUS,
 | 
						|
                                    DB_RPRN,     ___DVORAK_FR_R3___,   KC_RSFT,
 | 
						|
 | 
						|
                                    ___ERGODOX_BOTTOM_RIGHT_FR___,
 | 
						|
                                    ___ERGODOX_THUMB_RIGHT___
 | 
						|
                                    ),
 | 
						|
 | 
						|
  [XMONAD_FR] = LAYOUT_ergodox_wrapper(
 | 
						|
                               // left hand
 | 
						|
                               ___,  ___FUNC_L___,        ___,
 | 
						|
                               ___,  ___DVORAK_FR_L1___,  ___,
 | 
						|
                               ___,  ___DVORAK_FR_L2___,
 | 
						|
                               ___,  ___DVORAK_FR_L3___,  ___,
 | 
						|
 | 
						|
                               ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                               ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
 | 
						|
                               // right hand
 | 
						|
                               ___,  ___FUNC_R___,         ___,
 | 
						|
                               ___,  ___DVORAK_FR_R1___,   ___,
 | 
						|
                               /**/  ___DVORAK_FR_R2___,   ___,
 | 
						|
                               ___,  ___DVORAK_FR_R3___,   ___,
 | 
						|
 | 
						|
                               ___ERGODOX_BOTTOM_RIGHT_FR___,
 | 
						|
                               ___ERGODOX_THUMB_RIGHT___
 | 
						|
                               ),
 | 
						|
 | 
						|
  [BEPO] = LAYOUT_ergodox_wrapper(
 | 
						|
                           // Left hand
 | 
						|
                           BP_DLR,         ___SYMBOL_BEPO_L___,  DEF_OS_LAYER_SW,
 | 
						|
                           KC_LOCK,        ___BEPO_FR_L1___,     DB_LBRC,
 | 
						|
                           TAB_BKTAB,      ___BEPO_FR_L2___,
 | 
						|
                           BP_SFT_T_ECRC,  ___BEPO_FR_L3___,     DB_RBRC,
 | 
						|
 | 
						|
                           ___ERGODOX_BOTTOM_LEFT___,
 | 
						|
                           ___ERGODOX_THUMB_LEFT___,
 | 
						|
 | 
						|
 | 
						|
                           // Right hand
 | 
						|
                           MDIA_SYMB,  ___SYMBOL_BEPO_R___,  BP_EQL,
 | 
						|
                           BP_DCRC,    ___BEPO_FR_R1___,     BP_W,
 | 
						|
                           /*     */   ___BEPO_FR_R2___,     BP_CCED,
 | 
						|
                           BP_C,    ___BEPO_FR_R3___,        KC_RSFT,
 | 
						|
 | 
						|
                           ___ERGODOX_BOTTOM_RIGHT___,
 | 
						|
                           ___ERGODOX_THUMB_RIGHT___
 | 
						|
                           ),
 | 
						|
 | 
						|
  // SYMBOLS
 | 
						|
  [SYMB] = LAYOUT_ergodox_wrapper(
 | 
						|
                          // left hand
 | 
						|
                          ___,  ___FUNC_L___,     ___,
 | 
						|
                          ___,  ___SYMBOLS_1___,  ___,
 | 
						|
                          ___,  ___SYMBOLS_2___,
 | 
						|
                          ___,  ___SYMBOLS_3___,  ___,
 | 
						|
 | 
						|
                          ___ERGODOX_TRANS_BOTTOM___,
 | 
						|
                          ___ERGODOX_TRANS_THUMBS___,
 | 
						|
 | 
						|
 | 
						|
                          // right hand
 | 
						|
                          ___,  ___FUNC_R___, KC_F11,
 | 
						|
                          ___,  KC_UP,    ___KEYPAD_1___,  KC_F12,
 | 
						|
                          /**/  KC_DOWN,  ___KEYPAD_2___,  KC_TRNS,
 | 
						|
                          ___,  KC_AMPR,  ___KEYPAD_3___,  KC_PENT,
 | 
						|
                          /*    */        ___KEYPAD_4___,  ___,
 | 
						|
 | 
						|
                          ___ERGODOX_TRANS_THUMBS___
 | 
						|
                          ),
 | 
						|
 | 
						|
  [SYMB_ON_BEPO] = LAYOUT_ergodox_wrapper(
 | 
						|
                                  // left hand
 | 
						|
                                  ___,  ___FUNC_L___,     ___,
 | 
						|
                                  ___,  ___SYMBOLS_1_BP___,  ___,
 | 
						|
                                  ___,  ___SYMBOLS_2_BP___,
 | 
						|
                                  ___,  ___SYMBOLS_3_BP___,  ___,
 | 
						|
 | 
						|
                                  ___ERGODOX_TRANS_BOTTOM___,
 | 
						|
                                  ___ERGODOX_TRANS_THUMBS___,
 | 
						|
 | 
						|
 | 
						|
                                  // right hand
 | 
						|
                                  ___,  ___FUNC_R___, KC_F11,
 | 
						|
                                  ___,  KC_UP,    ___KEYPAD_1_BP___,  KC_F12,
 | 
						|
                                  /**/  KC_DOWN,  ___KEYPAD_2_BP___,  KC_TRNS,
 | 
						|
                                  ___,  KC_AMPR,  ___KEYPAD_3_BP___,  KC_PENT,
 | 
						|
                                  /*    */        ___KEYPAD_4_BP___,  ___,
 | 
						|
 | 
						|
                                  ___ERGODOX_TRANS_THUMBS___
 | 
						|
                                  ),
 | 
						|
 | 
						|
  // MEDIA AND MOUSE
 | 
						|
  [MDIA] = LAYOUT_ergodox_wrapper(
 | 
						|
                          // left hand
 | 
						|
                          ___,  ___FUNC_L___,  ___,
 | 
						|
                          ___MOUSE_BTNS_L___,  ___, ___,
 | 
						|
                          ___,  ___MOUSE_LDUR___,   ___,
 | 
						|
                          ___,  ___MWHEEL_LDUR___,  XXX,  ___,
 | 
						|
                          ___,  ___,  ___MOUSE_ACCL_012___,
 | 
						|
                          ___ERGODOX_TRANS_THUMBS___,
 | 
						|
 | 
						|
                          // right hand
 | 
						|
                          ___,      ___FUNC_R___,                    KC_F11,
 | 
						|
                          KC_VOLU,  ___, ___MUTE_PLAY_STOP___,  ___, KC_F12,
 | 
						|
                          /*    */  KC_PGUP, ___VI_ARROWS___,        ___,
 | 
						|
                          KC_VOLD,  KC_PGDN, ___MOUSE_BTNS_R___,
 | 
						|
                          ___ERGODOX_TRANS_BOTTOM___,
 | 
						|
                          ___ERGODOX_TRANS_THUMBS___
 | 
						|
                          ),
 | 
						|
 | 
						|
  [LAYERS] = LAYOUT_ergodox_wrapper(
 | 
						|
                            // left hand
 | 
						|
                            ___,  ___FUNC_L___,  ___,
 | 
						|
                            XXX,  XXX,  XXX, ___LAYERS_L1___,  XXX, XXX,
 | 
						|
                            XXX,  XXX,  XXX, ___LAYERS_L2___,  XXX,
 | 
						|
                            XXX,  XXX,  ___LAYERS_L3___,       XXX,  XXX,
 | 
						|
                            ___,  ___,  ___LAYERS_L4___,
 | 
						|
                            ___ERGODOX_TRANS_THUMBS___,
 | 
						|
 | 
						|
                            // right hand
 | 
						|
                            ___,      ___FUNC_R___,                    KC_F11,
 | 
						|
                            KC_VOLU,  ___, ___MUTE_PLAY_STOP___,  ___, KC_F12,
 | 
						|
                            /*    */  KC_PGUP, ___VI_ARROWS___,        ___,
 | 
						|
                            KC_VOLD,  KC_PGDN, ___MOUSE_BTNS_R___,
 | 
						|
                            ___ERGODOX_TRANS_BOTTOM___,
 | 
						|
                            ___ERGODOX_TRANS_THUMBS___
 | 
						|
                            ),
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
// 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();
 | 
						|
  if(!on_qwerty())
 | 
						|
    ergodox_right_led_1_on();
 | 
						|
  switch (layer) {
 | 
						|
    //case DVORAK:
 | 
						|
    //ergodox_right_led_1_off();
 | 
						|
    //break;
 | 
						|
    // first led on for a bepo software keyboard layer
 | 
						|
  case DVORAK_ON_BEPO:
 | 
						|
    ergodox_right_led_2_on();
 | 
						|
    break;
 | 
						|
  case BEPO:
 | 
						|
    ergodox_right_led_1_on();
 | 
						|
    ergodox_right_led_1_off();
 | 
						|
    ergodox_right_led_1_on();
 | 
						|
    ergodox_right_led_1_off();
 | 
						|
    ergodox_right_led_1_on();
 | 
						|
    break;
 | 
						|
  case SYMB:
 | 
						|
    ergodox_right_led_3_on();
 | 
						|
    break;
 | 
						|
  case MDIA:
 | 
						|
    ergodox_right_led_3_on();
 | 
						|
    break;
 | 
						|
  case LAYERS:
 | 
						|
    ergodox_right_led_1_on();
 | 
						|
    ergodox_right_led_2_on();
 | 
						|
    ergodox_right_led_3_on();
 | 
						|
    break;
 | 
						|
  default:
 | 
						|
    ergodox_board_led_off();
 | 
						|
    break;
 | 
						|
 | 
						|
    /* default: */
 | 
						|
    /*   // none */
 | 
						|
    /*   break; */
 | 
						|
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
  clear_oneshot_mods();
 | 
						|
  set_oneshot_locked_mods(mods);
 | 
						|
  register_mods(mods);
 | 
						|
 | 
						|
  register_code(action.key.code);
 | 
						|
  unregister_code(action.key.code);
 | 
						|
 | 
						|
  layer_on(action.layer_tap.val);
 | 
						|
  layer_off(action.layer_tap.val);
 | 
						|
 | 
						|
  clear_oneshot_locked_mods();
 | 
						|
  clear_oneshot_mods();
 | 
						|
  unregister_mods(mods);
 | 
						|
 | 
						|
*/
 |