* 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);
 | |
| 
 | |
| */
 |