Eric Gebhart user space and keymaps (#17487)
Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
		
							parent
							
								
									49a78b8114
								
							
						
					
					
						commit
						050472a4d0
					
				
					 147 changed files with 13177 additions and 4102 deletions
				
			
		
							
								
								
									
										420
									
								
								users/ericgebhart/layers/edge_keys.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										420
									
								
								users/ericgebhart/layers/edge_keys.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,420 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
/*
 | 
			
		||||
  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/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
/* This is where I put my Keyboard layouts, Everything on the     */
 | 
			
		||||
/* edges, the functions on keys like LT() and SFT_T()             */
 | 
			
		||||
/* can be applied here. The physical shape of the keyboard is     */
 | 
			
		||||
/* also accounted for here. This makes it very simple to add a    */
 | 
			
		||||
/* new keyboard and reuse all of my layouts and layers            */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* The particular pieces we define here (as needed) are:          */
 | 
			
		||||
/*     * Edge pinky keys, */
 | 
			
		||||
/*     * Middle section keys */
 | 
			
		||||
/*     * Bottom/5th row */
 | 
			
		||||
/*     * Thumbkeys */
 | 
			
		||||
/*     * Any functional additions to wrap the keys. ie. LT()      */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* With all of that in hand, we then create a LAYOUT wrapper      */
 | 
			
		||||
/* macro that takes a list of keys, to create a keyboard matrix   */
 | 
			
		||||
/* that fits the keyboard. Simple.                                */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* The thumb keys, the bottom rows, etc.                          */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* An attempt has been made to adapt the kinesis and ergodox      */
 | 
			
		||||
/* Thumb keys to the rectangular shapes of the xd75 and viterbi.  */
 | 
			
		||||
/* which are 15x and 14x matrices respectively.                   */
 | 
			
		||||
/* The Corne was a perfect fit                                    */
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
/* * The XD75 is a 5x15 Ortholinear matrix which means it has 3   */
 | 
			
		||||
/*       keys inbetween the usual left and right hand keys        */
 | 
			
		||||
/* * The Viterbi is a split 5x14 Ortholinear with 2 middle keys.  */
 | 
			
		||||
/* * The Ergodox is a split 5x14 Ortholinear with 2 middle keys,  */
 | 
			
		||||
/*       thumbkeys. It is missing middle keys on (home) row 3.    */
 | 
			
		||||
/* * The Corne is a split 3x12 with 6 thumb keys. It has no       */
 | 
			
		||||
/*       extra middle keys                                        */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
/*   In all cases these keyboards are defined in a matrix which is */
 | 
			
		||||
/*   a set of rows. Maybe like so, or not.                         */
 | 
			
		||||
/*                                                                 */
 | 
			
		||||
/*   -------------------------|------------------------ */
 | 
			
		||||
/*   | Left0 | Numbers L | mid|dle0 | numbers R | Right0 | */
 | 
			
		||||
/*   | Left1 | keys0-5   | mid|dle1 | Keys6-10  | Right1 | */
 | 
			
		||||
/*   | Left2 | keys11-15 | mid|dle2 | Keys16-20 | Right2 | */
 | 
			
		||||
/*   | Left3 | keys20-25 | mid|dle3 | Keys25-30 | Right3 | */
 | 
			
		||||
/*   | Row5L                  |                    Row5R | */
 | 
			
		||||
/*   |               ThumbsL  | ThumbsR                  | */
 | 
			
		||||
/*   -------------------------|------------------------ */
 | 
			
		||||
 | 
			
		||||
/* Generally speaking, the keys on the right and left don't change. */
 | 
			
		||||
/* Neither does the bottom row or the thumbs. Frequently the numbers */
 | 
			
		||||
/* row is identical across layers. Mostly, we want our Base layers to */
 | 
			
		||||
/* be predctable.                                                     */
 | 
			
		||||
 | 
			
		||||
// Edge columns. N rows by 6 columns per side.
 | 
			
		||||
// Outside pinky keys are 'yes'
 | 
			
		||||
// Should be undef/def'd by the keyboard's keymap if no.
 | 
			
		||||
//#define EDGE_COLS yes
 | 
			
		||||
 | 
			
		||||
// BEPO or EN. Used in map.h
 | 
			
		||||
//#define LANG_IS EN
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define CONCATENATEE(a, ...) a ## __VA_ARGS__
 | 
			
		||||
#define CATE(a, ...) CONCATENATEE(a, __VA_ARGS__)
 | 
			
		||||
// EDGES
 | 
			
		||||
// outside pinky keys row 0-3.
 | 
			
		||||
// Qwerty and Bepo, - Applies
 | 
			
		||||
// to foreign layouts on bepo. dvorak_bp, beakl_bp.
 | 
			
		||||
// Use by Wrapping the root like so. LANG_N(LEFT0)
 | 
			
		||||
// Add more languages by adding more definitions.
 | 
			
		||||
#define EDGE_KEY(KNAME) CATE(LANG_N(KNAME), EDGE_KEY_SFX)
 | 
			
		||||
#define LEFT_0 EDGE_KEY(LEFT0)
 | 
			
		||||
#define LEFT_1 EDGE_KEY(LEFT1)
 | 
			
		||||
#define LEFT_2 EDGE_KEY(LEFT2)
 | 
			
		||||
#define LEFT_3 EDGE_KEY(LEFT3)
 | 
			
		||||
#define RIGHT_0 EDGE_KEY(RIGHT0)
 | 
			
		||||
#define RIGHT_1 EDGE_KEY(RIGHT1)
 | 
			
		||||
#define RIGHT_2 EDGE_KEY(RIGHT2)
 | 
			
		||||
#define RIGHT_3 EDGE_KEY(RIGHT3)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define EDGE_KEY_SFX CATE(CATE(EDGE_KEY_SET_IS, _), SFX)
 | 
			
		||||
#define SML_SFX _sml
 | 
			
		||||
#define NOKC_SFX _nokc
 | 
			
		||||
#define NORM_SFX _norm
 | 
			
		||||
#define TEST_SFX _test
 | 
			
		||||
#define REF1_SFX _ref1
 | 
			
		||||
#define REF2_SFX _ref2
 | 
			
		||||
 | 
			
		||||
// Edge key sets
 | 
			
		||||
// a mostly normalish set of edge keys.
 | 
			
		||||
#define LEFT0_EN_norm KC_GRV
 | 
			
		||||
#define LEFT1_EN_norm KC_GRV
 | 
			
		||||
#define LEFT2_EN_norm KC_TAB
 | 
			
		||||
#define LEFT3_EN_norm KC_BSLS
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_EN_norm KC_EQL
 | 
			
		||||
#define RIGHT1_EN_norm KC_EQL
 | 
			
		||||
#define RIGHT2_EN_norm KC_MINS
 | 
			
		||||
#define RIGHT3_EN_norm KC_SLSH
 | 
			
		||||
 | 
			
		||||
// smart lock edges mostly
 | 
			
		||||
#define LEFT0_EN_sml SML_NAV
 | 
			
		||||
#define LEFT1_EN_sml SML_NAV
 | 
			
		||||
#define LEFT2_EN_sml KC_TAB
 | 
			
		||||
#ifdef ACCENTS_MORTE_LAYER_ENABLE
 | 
			
		||||
#define LEFT3_EN_sml TT(_ACCENTS_MORTE_EN)
 | 
			
		||||
#else
 | 
			
		||||
#define LEFT3_EN_sml ___
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_EN_sml SML_KEYPAD
 | 
			
		||||
#define RIGHT1_EN_sml SML_KEYPAD
 | 
			
		||||
#define RIGHT2_EN_sml KC_MINS
 | 
			
		||||
#define RIGHT3_EN_sml TT(_LAYERS)
 | 
			
		||||
 | 
			
		||||
// empty no kc edges
 | 
			
		||||
#define LEFT0_EN_nokc KC_NO
 | 
			
		||||
#define LEFT1_EN_nokc KC_NO
 | 
			
		||||
#define LEFT2_EN_nokc KC_NO
 | 
			
		||||
#define LEFT3_EN_nokc KC_NO
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_EN_nokc KC_NO
 | 
			
		||||
#define RIGHT1_EN_nokc KC_NO
 | 
			
		||||
#define RIGHT2_EN_nokc KC_NO
 | 
			
		||||
#define RIGHT3_EN_nokc KC_NO
 | 
			
		||||
 | 
			
		||||
//test edge keys
 | 
			
		||||
#define LEFT0_EN_test KC_NO
 | 
			
		||||
#define LEFT1_EN_test KC_NO
 | 
			
		||||
#define LEFT2_EN_test KC_NO
 | 
			
		||||
#define LEFT3_EN_test KC_NO
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_EN_test KC_NO
 | 
			
		||||
#define RIGHT1_EN_test KC_NO
 | 
			
		||||
#define RIGHT2_EN_test KC_NO
 | 
			
		||||
#define RIGHT3_EN_test KC_NO
 | 
			
		||||
 | 
			
		||||
// bepo
 | 
			
		||||
// mostly normal expected things
 | 
			
		||||
#define LEFT0_BP_norm BP_GRV
 | 
			
		||||
#define LEFT1_BP_norm BP_GRV
 | 
			
		||||
#define LEFT2_BP_norm BP_TAB
 | 
			
		||||
#define LEFT3_BP_norm BP_BSLS
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_BP_norm BP_EQL
 | 
			
		||||
#define RIGHT1_BP_norm BP_EQL
 | 
			
		||||
#define RIGHT2_BP_norm BP_DV_MINS
 | 
			
		||||
#define RIGHT3_BP_norm BP_SLSH
 | 
			
		||||
 | 
			
		||||
// smart locks mostly, tab, mins
 | 
			
		||||
#define LEFT0_BP_sml SML_NAV
 | 
			
		||||
#define LEFT1_BP_sml SML_NAV
 | 
			
		||||
#define LEFT2_BP_sml KC_TAB
 | 
			
		||||
#define LEFT3_BP_sml TT(_ACCENTS_MORTE_BP)
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_BP_sml SML_KEYPAD_BP
 | 
			
		||||
#define RIGHT1_BP_sml SML_KEYPAD_BP
 | 
			
		||||
#define RIGHT2_BP_sml BP_MINS
 | 
			
		||||
#define RIGHT3_BP_sml TT(_LAYERS)
 | 
			
		||||
 | 
			
		||||
// empty nokc edges
 | 
			
		||||
#define LEFT0_BP_nokc KC_NO
 | 
			
		||||
#define LEFT1_BP_nokc KC_NO
 | 
			
		||||
#define LEFT2_BP_nokc KC_NO
 | 
			
		||||
#define LEFT3_BP_nokc KC_NO
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_BP_nokc KC_NO
 | 
			
		||||
#define RIGHT1_BP_nokc KC_NO
 | 
			
		||||
#define RIGHT2_BP_nokc KC_NO
 | 
			
		||||
#define RIGHT3_BP_nokc KC_NO
 | 
			
		||||
 | 
			
		||||
// test edges
 | 
			
		||||
#define LEFT0_BP_test KC_NO
 | 
			
		||||
#define LEFT1_BP_test KC_NO
 | 
			
		||||
#define LEFT2_BP_test KC_NO
 | 
			
		||||
#define LEFT3_BP_test KC_NO
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_BP_test KC_NO
 | 
			
		||||
#define RIGHT1_BP_test KC_NO
 | 
			
		||||
#define RIGHT2_BP_test KC_NO
 | 
			
		||||
#define RIGHT3_BP_test KC_NO
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Edges for the combo reference layers.
 | 
			
		||||
#define LEFT0_CB_ref1 L0_CB
 | 
			
		||||
#define LEFT1_CB_ref1 L1_CB
 | 
			
		||||
#define LEFT2_CB_ref1 L2_CB
 | 
			
		||||
#define LEFT3_CB_ref1 L3_CB
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_CB_ref1 R0_CB
 | 
			
		||||
#define RIGHT1_CB_ref1 R1_CB
 | 
			
		||||
#define RIGHT2_CB_ref1 R2_CB
 | 
			
		||||
#define RIGHT3_CB_ref1 R3_CB
 | 
			
		||||
 | 
			
		||||
#define LEFT0_CB_ref2 L0_CB2
 | 
			
		||||
#define LEFT1_CB_ref2 L1_CB2
 | 
			
		||||
#define LEFT2_CB_ref2 L2_CB2
 | 
			
		||||
#define LEFT3_CB_ref2 L3_CB2
 | 
			
		||||
 | 
			
		||||
#define RIGHT0_CB_ref2 R0_CB2
 | 
			
		||||
#define RIGHT1_CB_ref2 R1_CB2
 | 
			
		||||
#define RIGHT2_CB_ref2 R2_CB2
 | 
			
		||||
#define RIGHT3_CB_ref2 R3_CB2
 | 
			
		||||
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
/* Middle Keysets for various keyboards                           */
 | 
			
		||||
// MIDDLES
 | 
			
		||||
/// Middle left and right keys.
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
#define ___MIDDLE_LT___ OSL(_LAYERS)
 | 
			
		||||
#define ___MIDDLE_L1___ LANG_KC(_CCCV)
 | 
			
		||||
#define ___MIDDLE_L2___ TO(LN_SYMB)
 | 
			
		||||
#define ___MIDDLE_L3___ TO(_NAV)
 | 
			
		||||
 | 
			
		||||
#define ___MIDDLE_RT___ _X_
 | 
			
		||||
#define ___MIDDLE_R1___ LANG_KC(_CCCV)
 | 
			
		||||
#define ___MIDDLE_R2___ TO(LN_TOPROWS)
 | 
			
		||||
#define ___MIDDLE_R3___ ___
 | 
			
		||||
 | 
			
		||||
// 3 keys in the middle of a 15x matrix
 | 
			
		||||
#define ___3_MIDDLE_T___ ___MIDDLE_LT___,    LCTL(LANG_KC(_A)), ___MIDDLE_RT___
 | 
			
		||||
#define ___3_MIDDLE_1___ ___MIDDLE_L1___,    LCTL(LANG_KC(_X)), ___MIDDLE_R1___
 | 
			
		||||
#define ___3_MIDDLE_2___ ___MIDDLE_L2___,    TO_RGB,            ___MIDDLE_R2___
 | 
			
		||||
#define ___3_MIDDLE_3___ ___MIDDLE_L3___,    TO(LN_SYMB),       ___MIDDLE_R3___
 | 
			
		||||
 | 
			
		||||
// 2 keys in the middle of a 14x matrix  - For viterbi and ergodox.
 | 
			
		||||
#define ___2_MIDDLE_T___ ___MIDDLE_LT___,    ___MIDDLE_RT___
 | 
			
		||||
#define ___2_MIDDLE_1___ ___MIDDLE_L1___,    ___MIDDLE_R1___
 | 
			
		||||
#define ___2_MIDDLE_2___ ___MIDDLE_L2___,    ___MIDDLE_R2___
 | 
			
		||||
#define ___2_MIDDLE_3___ ___MIDDLE_L3___,    ___MIDDLE_R3___
 | 
			
		||||
 | 
			
		||||
// 2 keys in the middle of a 14x matrix  - For viterbi and ergodox.
 | 
			
		||||
#define ___3_MIDDLE_T_EN___ ___3_MIDDLE_T___
 | 
			
		||||
#define ___3_MIDDLE_1_EN___ ___3_MIDDLE_1___
 | 
			
		||||
#define ___3_MIDDLE_2_EN___ ___3_MIDDLE_2___
 | 
			
		||||
#define ___3_MIDDLE_3_EN___ ___3_MIDDLE_3___
 | 
			
		||||
 | 
			
		||||
#define ___2_MIDDLE_T_EN___ ___2_MIDDLE_T___
 | 
			
		||||
#define ___2_MIDDLE_1_EN___ ___2_MIDDLE_1___
 | 
			
		||||
#define ___2_MIDDLE_2_EN___ ___2_MIDDLE_2___
 | 
			
		||||
#define ___2_MIDDLE_3_EN___ ___2_MIDDLE_3___
 | 
			
		||||
 | 
			
		||||
#define ___3_MIDDLE_T_BP___ ___3_MIDDLE_T___
 | 
			
		||||
#define ___3_MIDDLE_1_BP___ ___3_MIDDLE_1___
 | 
			
		||||
#define ___3_MIDDLE_2_BP___ ___3_MIDDLE_2___
 | 
			
		||||
#define ___3_MIDDLE_3_BP___ ___3_MIDDLE_3___
 | 
			
		||||
 | 
			
		||||
#define ___2_MIDDLE_T_BP___ ___2_MIDDLE_T___
 | 
			
		||||
#define ___2_MIDDLE_1_BP___ ___2_MIDDLE_1___
 | 
			
		||||
#define ___2_MIDDLE_2_BP___ ___2_MIDDLE_2___
 | 
			
		||||
#define ___2_MIDDLE_3_BP___ ___2_MIDDLE_3___
 | 
			
		||||
 | 
			
		||||
#define ___2_MIDDLE_T_CB___ CB_0M1, CB_0M2
 | 
			
		||||
#define ___2_MIDDLE_1_CB___ CB_1M1, CB_1M2
 | 
			
		||||
#define ___2_MIDDLE_2_CB___ CB_2M1, CB_2M2
 | 
			
		||||
#define ___2_MIDDLE_3_CB___ CB_3M1, CB_3M2
 | 
			
		||||
#define ___2_MIDDLE_4_CB___ CB_4M1, CB_4M2
 | 
			
		||||
 | 
			
		||||
#define ___3_MIDDLE_T_CB___ CB_0M1, CB_0M2, CB_0M3
 | 
			
		||||
#define ___3_MIDDLE_1_CB___ CB_1M1, CB_1M2, CB_1M3
 | 
			
		||||
#define ___3_MIDDLE_2_CB___ CB_2M1, CB_2M2, CB_2M3
 | 
			
		||||
#define ___3_MIDDLE_3_CB___ CB_3M1, CB_3M2, CB_3M3
 | 
			
		||||
#define ___3_MIDDLE_4_CB___ CB_4M1, CB_4M2, CB_4M3
 | 
			
		||||
 | 
			
		||||
#define ___4_MIDDLE_4_CB___ CB_4M1, CB_4M2, CB_4M3, CB_4M4
 | 
			
		||||
#define ___5_MIDDLE_4_CB___ CB_4M1, CB_4M2, CB_4M3, CB_4M4, CB_4M5
 | 
			
		||||
 | 
			
		||||
#define ___2_MIDDLE_T_CB2___ CB2_0M1, CB2_0M2
 | 
			
		||||
#define ___2_MIDDLE_1_CB2___ CB2_1M1, CB2_1M2
 | 
			
		||||
#define ___2_MIDDLE_2_CB2___ CB2_2M1, CB2_2M2
 | 
			
		||||
#define ___2_MIDDLE_3_CB2___ CB2_3M1, CB2_3M2
 | 
			
		||||
#define ___2_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2
 | 
			
		||||
 | 
			
		||||
#define ___3_MIDDLE_T_CB2___ CB2_0M1, CB2_0M2, CB2_0M3
 | 
			
		||||
#define ___3_MIDDLE_1_CB2___ CB2_1M1, CB2_1M2, CB2_1M3
 | 
			
		||||
#define ___3_MIDDLE_2_CB2___ CB2_2M1, CB2_2M2, CB2_2M3
 | 
			
		||||
#define ___3_MIDDLE_3_CB2___ CB2_3M1, CB2_3M2, CB2_3M3
 | 
			
		||||
#define ___3_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2, CB2_4M3
 | 
			
		||||
 | 
			
		||||
#define ___4_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2, CB2_4M3, CB2_4M4
 | 
			
		||||
#define ___5_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2, CB2_4M3, CB2_4M4, CB2_4M5
 | 
			
		||||
 | 
			
		||||
#define ___4_LEFT_4_CB___  CB_4L1, CB_4L2, CB_4L3, CB_4L4
 | 
			
		||||
#define ___4_RIGHT_4_CB___ CB_4R1, CB_4R2, CB_4R3, CB_4R4
 | 
			
		||||
 | 
			
		||||
#define ___4_LEFT_4_CB2___ CB2_4L1, CB2_4L2, CB2_4L3, CB2_4L4
 | 
			
		||||
#define ___4_RIGHT_4_CB2___ CB2_4R1, CB2_4R2, CB2_4R3, CB2_4R4
 | 
			
		||||
 | 
			
		||||
#define ___5_LEFT_4_CB___  CB_4L1, CB_4L2, CB_4L3, CB_4L4, CB_4L5
 | 
			
		||||
#define ___5_RIGHT_4_CB___ CB_4R1, CB_4R2, CB_4R3, CB_4R4, CB_4R5
 | 
			
		||||
 | 
			
		||||
#define ___5_LEFT_4_CB2___ CB2_4L1, CB2_4L2, CB2_4L3, CB2_4L4, CB2_4L5
 | 
			
		||||
#define ___5_RIGHT_4_CB2___ CB2_4R1, CB2_4R2, CB2_4R3, CB2_4R4, CB2_4R5
 | 
			
		||||
 | 
			
		||||
#define ___13_BOTTOM_CB___ ___5_LEFT_4_CB___,    \
 | 
			
		||||
    ___3_MIDDLE_4_CB___,                         \
 | 
			
		||||
    ___5_RIGHT_4_CB___
 | 
			
		||||
 | 
			
		||||
#define ___12_BOTTOM_CB___ ___5_LEFT_4_CB___,    \
 | 
			
		||||
    ___2_MIDDLE_4_CB___,                         \
 | 
			
		||||
    ___5_RIGHT_4_CB___
 | 
			
		||||
 | 
			
		||||
#define ___13_BOTTOM_CB2___ ___5_LEFT_4_CB2___,  \
 | 
			
		||||
    ___3_MIDDLE_4_CB2___,                        \
 | 
			
		||||
    ___5_RIGHT_4_CB2___
 | 
			
		||||
 | 
			
		||||
#define ___12_BOTTOM_CB2___ ___5_LEFT_4_CB2___,  \
 | 
			
		||||
    ___2_MIDDLE_4_CB2___,                 \
 | 
			
		||||
    ___5_RIGHT_4_CB2___
 | 
			
		||||
 | 
			
		||||
/* BOTTOMS, sorta like THUMBS                                       */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
// for xd75 or other layouts with a center column.
 | 
			
		||||
// #define ___5_MIDDLE_THUMBS___ CTL_BSPC,    ALT_DEL,     XMONAD_ESC,  ALT_ENT,   CTL_SPC
 | 
			
		||||
#define ___5_MIDDLE_THUMBS___ ALT_DEL, BSPC_TOPR, ESC_SYMB, ENT_NAV, SPC_TOPR
 | 
			
		||||
 | 
			
		||||
  // for a last, 4th thumb row. for rebound.
 | 
			
		||||
  // backtab, home end, ----, pgup, pgdn, tab ?
 | 
			
		||||
#define ___13_BOTTOM___                                           \
 | 
			
		||||
  KC_BKTAB, HOME_END, KC_TAB, TT(_NAV), BSPC_SYMB, ESC_TOPR,      \
 | 
			
		||||
    OSL(_LAYERS),                                               \
 | 
			
		||||
    ENT_NAV, SPC_TOPR, KC_LEFT, KC_PGUP, KC_PGDN, KC_RIGHT
 | 
			
		||||
 | 
			
		||||
#define ___13_BOTTOM_EN___ ___13_BOTTOM___
 | 
			
		||||
#define ___13_BOTTOM_BP___ ___13_BOTTOM___
 | 
			
		||||
 | 
			
		||||
#define ___12_BOTTOM___                                         \
 | 
			
		||||
  KC_BKTAB, HOME_END, KC_TAB, TT(_NAV), BSPC_SYMB, ESC_TOPR,    \
 | 
			
		||||
    ENT_NAV, SPC_TOPR, KC_LEFT, KC_PGUP, KC_PGDN, KC_RIGHT
 | 
			
		||||
 | 
			
		||||
#define ___12_BOTTOM_EN___ ___12_BOTTOM___
 | 
			
		||||
#define ___12_BOTTOM_BP___ ___12_BOTTOM___
 | 
			
		||||
 | 
			
		||||
// becomes the upper thumbs, the real 4th row if we throw away
 | 
			
		||||
// the number row at the top.
 | 
			
		||||
// this is the 4th row on the viterbi above the thumbrow if the number
 | 
			
		||||
// row is not used for numbers.
 | 
			
		||||
#define ___4_MIDDLE_4___    LSFT(KC_TAB),    HOME_END,    KC_PGDN, KC_TAB
 | 
			
		||||
#define ___4_MIDDLE_4b___   TAB_BKTAB,       HOME_END,    KC_PGDN, KC_PGUP
 | 
			
		||||
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
/*  The bottom row and thumbs as needed.                            */
 | 
			
		||||
/********************************************************************/
 | 
			
		||||
// Only the 14 and 15 wide bottom rows have bepo versions.
 | 
			
		||||
// all others are handled through macros.
 | 
			
		||||
 | 
			
		||||
#define ___5_BOTTOM_LEFT___  ___X2___,  KC_INS,  KC_LEFT, KC_RIGHT
 | 
			
		||||
#define ___5_BOTTOM_RIGHT___ KC_UP,  KC_DOWN,  KC_BSLASH, ___X2___
 | 
			
		||||
 | 
			
		||||
#define ___5_BOTTOM_LEFT_EN___  ___5_BOTTOM_LEFT___
 | 
			
		||||
#define ___5_BOTTOM_RIGHT_EN___  ___5_BOTTOM_RIGHT___
 | 
			
		||||
 | 
			
		||||
#define ___4_BOTTOM_LEFT___  LCTL(KC_V),  KC_INS,  KC_LEFT,   KC_RIGHT
 | 
			
		||||
#define ___4_BOTTOM_RIGHT___ KC_UP,       KC_DOWN, KC_BSLASH, LCTL(KC_C)
 | 
			
		||||
 | 
			
		||||
#define ___4_BOTTOM_LEFT_EN___  ___4___ //___4_BOTTOM_LEFT___
 | 
			
		||||
#define ___4_BOTTOM_RIGHT_EN___  ___4___ //___4_BOTTOM_RIGHT___
 | 
			
		||||
 | 
			
		||||
// the bottom rows  for keyboards on bepo.
 | 
			
		||||
// bepo on bepo - not enough space to go around....
 | 
			
		||||
#define ___5_BOTTOM_LEFT_BP___  _X_,    BP_EACU,  _X_,           KC_LEFT, KC_RIGHT
 | 
			
		||||
#define ___5_BOTTOM_RIGHT_BP___ KC_UP,  KC_DOWN,  BP_BSLS,  BP_CCED,  BP_PERC
 | 
			
		||||
 | 
			
		||||
#define ___4_BOTTOM_LEFT_BP___  LCTL(BP_C),  BP_EACU,  KC_LEFT, KC_RIGHT
 | 
			
		||||
#define ___4_BOTTOM_RIGHT_BP___ KC_UP,  KC_DOWN, BP_BSLS,  BP_CCED
 | 
			
		||||
 | 
			
		||||
// for combo ref layers for kinesis, dactyl and kinesis.
 | 
			
		||||
#define ___5_BOTTOM_LEFT_FR___  ___X3___,  KC_LEFT, KC_RIGHT
 | 
			
		||||
#define ___5_BOTTOM_RIGHT_FR___ KC_UP,  KC_DOWN,  BP_BSLS, ___X2___
 | 
			
		||||
 | 
			
		||||
#define ___4_BOTTOM_LEFT_CB___ ___4_LEFT_4_CB___
 | 
			
		||||
#define ___4_BOTTOM_RIGHT_CB___ ___4_RIGHT_4_CB___
 | 
			
		||||
 | 
			
		||||
#define ___4_BOTTOM_LEFT_CB2___ ___4_LEFT_4_CB2___
 | 
			
		||||
#define ___4_BOTTOM_RIGHT_CB2___ ___4_RIGHT_4_CB2___
 | 
			
		||||
 | 
			
		||||
#define ___5_BOTTOM_LEFT_CB___ ___5_LEFT_4_CB___
 | 
			
		||||
#define ___5_BOTTOM_RIGHT_CB___ ___5_RIGHT_4_CB___
 | 
			
		||||
 | 
			
		||||
#define ___5_BOTTOM_LEFT_CB2___ ___5_LEFT_4_CB2___
 | 
			
		||||
#define ___5_BOTTOM_RIGHT_CB2___ ___5_RIGHT_4_CB2___
 | 
			
		||||
 | 
			
		||||
// basically a 5th row in a 5x matrix. but maybe a 4th if there isnt a number row.
 | 
			
		||||
// need an en, because we a have a BP and we used it directly in the layout.
 | 
			
		||||
#define ___15_BOTTOM_EN___  ___5_BOTTOM_LEFT___,    ___5_MIDDLE_THUMBS___, ___5_BOTTOM_RIGHT___
 | 
			
		||||
#define ___15_BOTTOM_FR___  ___5_BOTTOM_LEFT_FR___, ___5_MIDDLE_THUMBS___, ___5_BOTTOM_RIGHT_FR___
 | 
			
		||||
#define ___15_BOTTOM_BP___  ___5_BOTTOM_LEFT_BP___, ___5_MIDDLE_THUMBS___, ___5_BOTTOM_RIGHT_BP___
 | 
			
		||||
#define ___15_BOTTOM_CB___  ___5_LEFT_4_CB___,    ___5_MIDDLE_4_CB___, ___5_RIGHT_4_CB___
 | 
			
		||||
#define ___15_BOTTOM_CB2___  ___5_LEFT_4_CB2___,    ___5_MIDDLE_4_CB2___, ___5_RIGHT_4_CB2___
 | 
			
		||||
 | 
			
		||||
// need an en, because we a have a BP and we used it directly in the layout.
 | 
			
		||||
#define ___14_BOTTOM_EN___    ___5_BOTTOM_LEFT___,    ___4_MIDDLE_4b___, ___5_BOTTOM_RIGHT___
 | 
			
		||||
#define ___14_BOTTOM_FR___ ___5_BOTTOM_LEFT_FR___, ___4_MIDDLE_4b___, ___5_BOTTOM_RIGHT_FR___
 | 
			
		||||
#define ___14_BOTTOM_BP___ ___5_BOTTOM_LEFT_BP___, ___4_MIDDLE_4b___, ___5_BOTTOM_RIGHT_BP___
 | 
			
		||||
#define ___14_BOTTOM_CB___ ___5_LEFT_4_CB___, ___4_MIDDLE_4_CB___, ___5_RIGHT_4_CB___
 | 
			
		||||
#define ___14_BOTTOM_CB2___ ___5_LEFT_4_CB2___, ___4_MIDDLE_4_CB2___, ___5_RIGHT_4_CB2___
 | 
			
		||||
 | 
			
		||||
#define ___14_THUMBS_BOTTOM___   ___X4___, ___6_ERGO_THUMBS___, ___X4___
 | 
			
		||||
							
								
								
									
										236
									
								
								users/ericgebhart/layers/keypads.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								users/ericgebhart/layers/keypads.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,236 @@
 | 
			
		|||
/*
 | 
			
		||||
  Copyright 2018-2022 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/>.
 | 
			
		||||
*/
 | 
			
		||||
/**********************************************_**********************************/
 | 
			
		||||
/*  KEYPADS.  Mostly all in Bepo and Qwerty versions                            */
 | 
			
		||||
/*      4 row Pads:                                                             */
 | 
			
		||||
/*         * The BEAKL 15,19 Number pad, for the left hand.                     */
 | 
			
		||||
/*         * The BEAKL Wi hex pad, Number pad.                                  */
 | 
			
		||||
/*         * Regular Number pad, for the right hand.                            */
 | 
			
		||||
/*         * 12 Function pad.                                                   */
 | 
			
		||||
/*      3 row pads:                                                             */
 | 
			
		||||
/*         keypad                                                               */
 | 
			
		||||
/*         function pad - 3x4, 12 function keys.                                */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/*  LAYERS:                                                                     */
 | 
			
		||||
/*      4 Row:                                                                  */
 | 
			
		||||
/*         * BEAKL with a compact FuncPad on the right.                         */
 | 
			
		||||
/*         * Funcpad on the left, keypad on the right.                          */
 | 
			
		||||
/*      3 Row:                                                                  */
 | 
			
		||||
/*         * Funcpad on the left, keypad on the right.                          */
 | 
			
		||||
/*         * BEAKL with a compact FuncPad on the right.                         */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
 | 
			
		||||
// BEAKL 15 (numpad layer):
 | 
			
		||||
/*    +=*   ^%~ */
 | 
			
		||||
/*   ↹523:      */
 | 
			
		||||
/* - 7.104      */
 | 
			
		||||
/*   /698,      */
 | 
			
		||||
 | 
			
		||||
/* BEAKL27 (numpad layer): */
 | 
			
		||||
/*   ↹+/\*=  yxz */
 | 
			
		||||
/*    -523: ~FED */
 | 
			
		||||
/*    7.104 {CBA} */
 | 
			
		||||
/*    ,698⏎  []% */
 | 
			
		||||
 | 
			
		||||
// Keypads
 | 
			
		||||
#define ___KEYPAD_BEAKL_L1___  ___,    _PLUS,  _SLSH,  _ASTR, _EQL
 | 
			
		||||
#define ___KEYPAD_BEAKL_L2___  _MINS,  _5,     _2,     _3,   _COLN
 | 
			
		||||
#define ___KEYPAD_BEAKL_L3___  _7,     _DOT,   _1,     _0,   _4
 | 
			
		||||
#define ___KEYPAD_BEAKL_L4___  _COMM,  _6,     _9,     _8,   _COMM
 | 
			
		||||
 | 
			
		||||
#define ___6KEYPAD_BEAKL_L1___     ___, KEYPAD_BEAKL_L1
 | 
			
		||||
#define ___6KEYPAD_BEAKL_L2___     ___, KEYPAD_BEAKL_L2
 | 
			
		||||
#define ___6KEYPAD_BEAKL_L3___ KC_MINS, KEYPAD_BEAKL_L3
 | 
			
		||||
#define ___6KEYPAD_BEAKL_L4___     ___, KEYPAD_BEAKL_L4
 | 
			
		||||
 | 
			
		||||
// if there's room. the top row on the right.
 | 
			
		||||
#define ___KEYPAD_BEAKL_R1___     ___, KC_CIRC,  KC_PERC,  KC_TILD, ___
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/// parts is parts.
 | 
			
		||||
 | 
			
		||||
#define ___KP_BKL_WI_L1___ _X_,    HEX_A,  HEX_B,  HEX_C,   _X_
 | 
			
		||||
#define ___KP_BKL_WI_L2___ _X_,    HEX_D,  HEX_E,  HEX_F,   _X_
 | 
			
		||||
#define ___KP_BKL_WI_L3___ _X_,    L_BRKT, R_BRKT, DELIM,   _X_
 | 
			
		||||
 | 
			
		||||
#define ___KP_BKL_WI_R1___ _SLSH, _4, _5, _9, _ASTR
 | 
			
		||||
#define ___KP_BKL_WI_R2___ _DOT , _1, _2, _3, _MINS
 | 
			
		||||
#define ___KP_BKL_WI_R3___ _COMM, _8, _6, _7, _PLUS
 | 
			
		||||
 | 
			
		||||
#define ___KEYPAD_1___ ___,  _7,  _8,    _9,     _PSLS
 | 
			
		||||
#define ___KEYPAD_2___ _DOT, _4,  _5,    _6,     _PAST
 | 
			
		||||
#define ___KEYPAD_3___ _0,   _1,  _2,    _3,     _PMNS
 | 
			
		||||
 | 
			
		||||
#define ___KEYPAD_miryoku_1___ _LBRC, _7,  _8,  _9,  _RBRC, ____5_
 | 
			
		||||
#define ___KEYPAD_miryoku_2___ _SCLN, _4,  _5,  _6,  _EQUAL, ____5_
 | 
			
		||||
#define ___KEYPAD_miryoku_3___ _GRV,  _1,  _2,  _3,  _BSLS, ____5_
 | 
			
		||||
 | 
			
		||||
// 4 Row keypads
 | 
			
		||||
#define ___5KEYPAD_1___ _X_, ___KEYPAD_1___
 | 
			
		||||
#define ___5KEYPAD_2___ _X_, ___KEYPAD_2___
 | 
			
		||||
#define ___5KEYPAD_3___ _X_, ___KEYPAD_3___
 | 
			
		||||
#define ___5KEYPAD_4___ _X_, _0,  _DOT,  _PEQL,  _PPLS
 | 
			
		||||
 | 
			
		||||
// Function pad.  Same idea as above, but for function keys.
 | 
			
		||||
 | 
			
		||||
// Funcpads are a bit weird. THey are KC values, so for
 | 
			
		||||
// this to work, there are BP_ versions of the F keys.
 | 
			
		||||
// I don't really use this, so maybe it'll go away in favor
 | 
			
		||||
// of something more useful.
 | 
			
		||||
// 4x3 and 3x4 funcpads.
 | 
			
		||||
// Only 4 columns, so the fifth can be added to either end.
 | 
			
		||||
#define ___4_FUNCPAD_1___   _F9, _F10, _F11, _F12
 | 
			
		||||
#define ___4_FUNCPAD_2___   _F5, _F6,  _F7,  _F8
 | 
			
		||||
#define ___4_FUNCPAD_3___   _F1, _F2,  _F3,  _F4
 | 
			
		||||
 | 
			
		||||
#define ___FUNCPAD_miryoku_1___   KC_F12, KC_F7, KC_F8, KC_F9, KC_PRINT_SCREEN
 | 
			
		||||
#define ___FUNCPAD_miryoku_2___   KC_F11, KC_F4, KC_F5, KC_F6, KC_SCROLL_LOCK
 | 
			
		||||
#define ___FUNCPAD_miryoku_3___   KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUSE
 | 
			
		||||
 | 
			
		||||
// For the left or right side.
 | 
			
		||||
#define ___5x4_FUNCPAD_T___   _TRNS, _F10,  _F11,  _F12, _TRNS
 | 
			
		||||
#define ___5x4_FUNCPAD_1___   _TRNS, _F7,   _F8,   _F9,  _TRNS
 | 
			
		||||
#define ___5x4_FUNCPAD_2___   _TRNS, _F4,   _F5,   _F6,  _TRNS
 | 
			
		||||
#define ___5x4_FUNCPAD_3___   _TRNS, _F1,   _F2,   _F3,  _TRNS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* FUNCPAD and Keypad Layer chunks                                              */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
// beakl wi is a hexpad numpad.
 | 
			
		||||
/* Beakle Wi, Hexpad and keypad - needs a zero somewhere.*/
 | 
			
		||||
#define CARTE_KP_BKL_WI                         \
 | 
			
		||||
  carte_de_map( "  ABC  /459* ",                \
 | 
			
		||||
                "  DEF  .123- ",                \
 | 
			
		||||
                "  {}|  ,867+ ")
 | 
			
		||||
 | 
			
		||||
#define ___KP_BKL_WI_3x10___                                    \
 | 
			
		||||
  CHUNK_LANG_MAP(___KP_BKL_WI_L1___, ___KP_BKL_WI_R1___,        \
 | 
			
		||||
                 ___KP_BKL_WI_L2___, ___KP_BKL_WI_R2___,        \
 | 
			
		||||
                 ___KP_BKL_WI_L3___, ___KP_BKL_WI_R3___)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// BEAKL 15 and a f1-f12 funcpad
 | 
			
		||||
#define CARTE_KP_BKL_FUNC                       \
 | 
			
		||||
  carte_de_map("    523:  F9-12",               \
 | 
			
		||||
               "  -7.104  F5-8",                \
 | 
			
		||||
               "   /798,  F1-4")
 | 
			
		||||
 | 
			
		||||
#define ___KP_BKL_FUNC_3x10___                                          \
 | 
			
		||||
  CHUNK_LANG_MAP(___KEYPAD_BEAKL_L2___, _TRNS, ___4_FUNCPAD_1___,       \
 | 
			
		||||
                 ___KEYPAD_BEAKL_L3___, _TRNS, ___4_FUNCPAD_2___,       \
 | 
			
		||||
                 ___KEYPAD_BEAKL_L4___, _TRNS, ___4_FUNCPAD_3___)
 | 
			
		||||
 | 
			
		||||
// BEAKL 15 and mods.
 | 
			
		||||
#define CARTE_KP_BKL_MODS                          \
 | 
			
		||||
  carte_de_map("    523:  SL Mods",                \
 | 
			
		||||
               "  -7.104  OS Mods",                \
 | 
			
		||||
               "   /798,   Enter")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define ___KP_BKL_MODS_3x10___                                          \
 | 
			
		||||
  CHUNK_LANG_MAP(___KEYPAD_BEAKL_L2___, _TRNS, ___SML_MODS_R___,        \
 | 
			
		||||
                 ___KEYPAD_BEAKL_L3___, ___OS_MODS_R___,                \
 | 
			
		||||
                 ___KEYPAD_BEAKL_L4___, _TRNS, _ENT, _ENT, _ENT, _TRNS)
 | 
			
		||||
 | 
			
		||||
// 4 rows, BEAKL 15 and a f1-f12 funcpad
 | 
			
		||||
#define ___KP_BKL_FUNC_4x10___                                  \
 | 
			
		||||
  CHUNK_LANG_ROW(___KEYPAD_BEAKL_L1___, ___KEYPAD_BEAKL_R1___), \
 | 
			
		||||
    CHUNK_LANG_MAP(___KP_BKL_FUNC_3x10___)
 | 
			
		||||
 | 
			
		||||
// 4 rows, funcpad, regular keypad on right.
 | 
			
		||||
#define ___FP_KP_4x10___                                        \
 | 
			
		||||
  CHUNK_LANG_ROW(___5x4_FUNCPAD_T___,  ___5KEYPAD_1___),        \
 | 
			
		||||
    CHUNK_LANG_MAP(___5x4_FUNCPAD_1___,  ___5KEYPAD_2___,       \
 | 
			
		||||
                   ___5x4_FUNCPAD_2___,  ___5KEYPAD_3___,       \
 | 
			
		||||
                   ___5x4_FUNCPAD_3___,  ___5KEYPAD_4___)
 | 
			
		||||
 | 
			
		||||
#define CARTE_FP_KP                             \
 | 
			
		||||
  carte_de_map("  F9-12   789+",                \
 | 
			
		||||
               "  F5-8   .456*",                \
 | 
			
		||||
               "  F1-4   0123-")
 | 
			
		||||
 | 
			
		||||
// funcpad, regular keypad on right.
 | 
			
		||||
#define ___FP_KP_3x10___                                        \
 | 
			
		||||
  CHUNK_LANG_MAP(___4_FUNCPAD_1___, ___, ___5KEYPAD_1___,       \
 | 
			
		||||
                 ___4_FUNCPAD_2___, ___,  ___5KEYPAD_2___,      \
 | 
			
		||||
                 ___4_FUNCPAD_3___, ___,  ___5KEYPAD_3___)
 | 
			
		||||
 | 
			
		||||
#define CARTE_KP_FP                             \
 | 
			
		||||
  carte_de_map("   789+  F9-12",                \
 | 
			
		||||
               "  .456*  F5-8",                 \
 | 
			
		||||
               "  0123-  F1-4")
 | 
			
		||||
// regular keypad on left.
 | 
			
		||||
#define ___KP_FP_3x10___                                        \
 | 
			
		||||
  CHUNK_LANG_MAP(___5KEYPAD_1___,  ___, ___4_FUNCPAD_1___,      \
 | 
			
		||||
                 ___5KEYPAD_2___,  ___, ___4_FUNCPAD_2___,      \
 | 
			
		||||
                 ___5KEYPAD_3___,  ___, ___4_FUNCPAD_3___)
 | 
			
		||||
 | 
			
		||||
#define CARTE_MODS_KP                           \
 | 
			
		||||
  carte_de_map("  SMods   789+",                \
 | 
			
		||||
               "  OSMods .456*",                \
 | 
			
		||||
               "  F1-4   0123-")
 | 
			
		||||
 | 
			
		||||
// funcpad, regular keypad on right.
 | 
			
		||||
#define ___MODS_KP_3x10___                                    \
 | 
			
		||||
  CHUNK_LANG_MAP(___SML_MODS_L___, ___, ___5KEYPAD_1___,        \
 | 
			
		||||
                 ___OS_MODS_L___,       ___5KEYPAD_2___,     \
 | 
			
		||||
                 ___5___,               ___5KEYPAD_3___)
 | 
			
		||||
 | 
			
		||||
#define CARTE_KP_MODS                           \
 | 
			
		||||
  carte_de_map("   789+  SMods",                \
 | 
			
		||||
               "  .456*  OSMods",                 \
 | 
			
		||||
               "  0123-  ")
 | 
			
		||||
 | 
			
		||||
// regular keypad on left.
 | 
			
		||||
#define ___KP_MODS_3x10___                                      \
 | 
			
		||||
  CHUNK_LANG_MAP(___5KEYPAD_1___,  ___, ___SML_MODS_R___,       \
 | 
			
		||||
                 ___5KEYPAD_2___,  ___OS_MODS_L___,        \
 | 
			
		||||
                 ___5KEYPAD_3___,  ___, ___4___)
 | 
			
		||||
 | 
			
		||||
#define CARTE_FUN                           \
 | 
			
		||||
  carte_de_map("  F9-F12  SMods",                \
 | 
			
		||||
               "  F5-F8   OSMods",               \
 | 
			
		||||
               "  F1-F4   ")
 | 
			
		||||
 | 
			
		||||
#define ___FUN_3x10___                                                  \
 | 
			
		||||
  CHUNK_LANG_MAP(___4_FUNCPAD_1___, ___,  ___, ___SML_MODS_R___,        \
 | 
			
		||||
                 ___4_FUNCPAD_2___, ___,  ___OS_MODS_R___,              \
 | 
			
		||||
                 ___4_FUNCPAD_3___, ___,  ___5___)
 | 
			
		||||
 | 
			
		||||
#define CARTE_FUN_MIRYOKU                       \
 | 
			
		||||
  carte_de_map("F12 F7-F9 prt  SMods",          \
 | 
			
		||||
               "F11 F4-F6 scr  OSMods",         \
 | 
			
		||||
               "F10 F1-F3 pse  ")
 | 
			
		||||
 | 
			
		||||
#define ___FP_MIRYOKU_3x10___                           \
 | 
			
		||||
  ___FUNCPAD_miryoku_1___,  ___, ___SML_MODS_R___,     \
 | 
			
		||||
    ___FUNCPAD_miryoku_2___,  ___OS_MODS_R___,         \
 | 
			
		||||
    ___FUNCPAD_miryoku_3___,  ___5___
 | 
			
		||||
 | 
			
		||||
// wants . and 0 on left thumb.
 | 
			
		||||
#define CARTE_KP_MIRYOKU      \
 | 
			
		||||
  carte_de_map(" [789]",      \
 | 
			
		||||
               " ;456=",      \
 | 
			
		||||
               " `123\\")
 | 
			
		||||
 | 
			
		||||
#define ___KP_MIRYOKU_3x10___                                     \
 | 
			
		||||
  CHUNK_LANG_MAP(___KEYPAD_miryoku_1___,                          \
 | 
			
		||||
                 ___KEYPAD_miryoku_2___,                             \
 | 
			
		||||
                 ___KEYPAD_miryoku_3___)
 | 
			
		||||
							
								
								
									
										112
									
								
								users/ericgebhart/layers/layers.h
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										112
									
								
								users/ericgebhart/layers/layers.h
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,112 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
/*
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
  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 "keycodes.h"
 | 
			
		||||
/*********************************************************************/
 | 
			
		||||
/* Non-Base Layer Definitions.                                       */
 | 
			
		||||
/*                                                                   */
 | 
			
		||||
/* Keypads, sympads, funcpads, symbols, RGB, Layers, Controls, etc.  */
 | 
			
		||||
/* Qwerty and Bepo versions exist as needed.                         */
 | 
			
		||||
/*                                                                   */
 | 
			
		||||
/* This file defines every auxillary layer I use on every keyboard   */
 | 
			
		||||
/* Ergodox, keebio/viterbi, xd75, rebound, crkbd, morpho, dactyl,..  */
 | 
			
		||||
/*********************************************************************/
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* The following Transient/Non-Base Layers are provided within.                 */
 | 
			
		||||
/* Each layer is named with the size of Keymatrix it has entries for.           */
 | 
			
		||||
/* 3x10 are usual for these.  I had 3x12's but I didn't need the edges really.  */
 | 
			
		||||
/* It was an attempt to accommodate Bepo which is 13 columns wide.              */
 | 
			
		||||
/* Even in a 3x12 Bepo is wonky. So I gave up on it. I also gave up on 4 row    */
 | 
			
		||||
/* layers, I really want my keys in that 3x5 space. Everything on the edges can */
 | 
			
		||||
/* stay as it is.  Splitting is managed in the macros as                        */
 | 
			
		||||
/* needed. BP indicates the Bepo equivalent to the Qwerty layer when needed.    */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* Explore below to see what they all are.                                      */
 | 
			
		||||
/* Naming gives the sizes of things, a prefix number is the length.             */
 | 
			
		||||
/* BP is the bepo version of things.                                            */
 | 
			
		||||
/* BKL is the beakl 15 version of a layout or chunk.                            */
 | 
			
		||||
/* C on the end of a name means its a compact version of something.             */
 | 
			
		||||
/* Compact meaning for use on a 3 row layout.                                   */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* TOPROWS - numbers, symbols, functions, all on one layer.                     */
 | 
			
		||||
/* ___TOPROWS_3x10___                                                           */
 | 
			
		||||
/* ___TOPROWS_BP_3x10___                                                        */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* KEYPADS/FUNCPADS.                                                            */
 | 
			
		||||
/* ___KP_C_3x10___                                                              */
 | 
			
		||||
/* ___KP_C_BP_3x10___                                                           */
 | 
			
		||||
/* ___KP_C_BKL_FUNC_3x10___  -- BEAKL key/func pads.                            */
 | 
			
		||||
/* ___KP_C_BKL_FUNC_BP_3x10___                                                  */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* SYMBOLS   -Beakl or Beakl extended                                           */
 | 
			
		||||
/* ___SYMB_BEAKL_3x10___                                                        */
 | 
			
		||||
/* ___SYMB_BEAKL_BP_3x10___                                                     */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* Beakl extended symbol layer with additional corner symbols.                  */
 | 
			
		||||
/* For use with non-beakl base layers.                                          */
 | 
			
		||||
/* ___SYMB_BEAKLA_3x10___                                                       */
 | 
			
		||||
/* ___SYMB_BEAKLA_BP_3x10___                                                    */
 | 
			
		||||
/* For use with vi bindings optimized                                           */
 | 
			
		||||
/* ___SYMB_BEAKLB_3x10___                                                       */
 | 
			
		||||
/* ___SYMB_BEAKLB_BP_3x10___                                                    */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* NAVIGATION                                                                   */
 | 
			
		||||
/* ___NAV_3x10___                                                               */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* CONTROLS                                                                     */
 | 
			
		||||
/* ___RGB_3x10___                                                               */
 | 
			
		||||
/* ___ADJUST_3x10___                                                            */
 | 
			
		||||
 /* ___LAYERS_3x10___                                                            */
 | 
			
		||||
 /********************************************************************************/
 | 
			
		||||
 /*********************************************************************/
 | 
			
		||||
 /* XXXXXX Layer chunk  -- These are the final layers.                */
 | 
			
		||||
 /*                                                                   */
 | 
			
		||||
/* Each section defines the necessary pieces to create a layer.      */
 | 
			
		||||
/* It builds them up into consistently shaped lists for the layout   */
 | 
			
		||||
/* wrapper.                                                          */
 | 
			
		||||
/*                                                                   */
 | 
			
		||||
/* Each Section ends with a _Layer Chunk_. This is so the            */
 | 
			
		||||
/* layer can be easily given to the Layout Wrapper macros which      */
 | 
			
		||||
/* takes a list of keys in lengths of 2x3x5, 2x3x6, 2x4x5, or 2x4x6. */
 | 
			
		||||
/*                                                                   */
 | 
			
		||||
/* All of my keyboard definitions use these same chunks with similar */
 | 
			
		||||
/* macros. The differences between keyboards are all managed in the  */
 | 
			
		||||
/* macro. Here we just have nice rectangular sets of keys to         */
 | 
			
		||||
/* complete a layout.                                                */
 | 
			
		||||
/*********************************************************************/
 | 
			
		||||
 | 
			
		||||
// these are needed so that groups of defined keys will unravel
 | 
			
		||||
// into their values. The Base layers don't need them becuse the
 | 
			
		||||
// keys are explicit in their passing. Here, chunks are made for
 | 
			
		||||
// convenience and reuse. They don't unravel unless we wrap these
 | 
			
		||||
// in var args.
 | 
			
		||||
#define CHUNK_LANG_MAP(...) LANG_MAP(__VA_ARGS__)
 | 
			
		||||
#define CHUNK_LANG_ROW(...) LANG_ROW(__VA_ARGS__)
 | 
			
		||||
 | 
			
		||||
// 5 wide, with the two shot control.
 | 
			
		||||
#define ___OS_MODS_L___   OS_LGUI, OS_LALT, OS_LCTL, OS_LSFT, TS_LCTL
 | 
			
		||||
#define ___OS_MODS_R___   TS_RCTL, OS_RSFT, OS_RCTL, OS_RALT, OS_RGUI
 | 
			
		||||
// 4 wide.
 | 
			
		||||
#define ___SML_MODS_L___  SMLM_LGUI, SMLM_LALT, SMLM_LCTL, SMLM_LSFT
 | 
			
		||||
#define ___SML_MODS_R___  SMLM_RSFT, SMLM_RCTL, SMLM_RALT, SMLM_RGUI
 | 
			
		||||
 | 
			
		||||
#include "keypads.h"
 | 
			
		||||
#include "nav.h"
 | 
			
		||||
#include "symbols.h"
 | 
			
		||||
#include "toprows.h"
 | 
			
		||||
#include "utility.h"
 | 
			
		||||
							
								
								
									
										199
									
								
								users/ericgebhart/layers/nav.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										199
									
								
								users/ericgebhart/layers/nav.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,199 @@
 | 
			
		|||
/*
 | 
			
		||||
  Copyright 2018-2022 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/>.
 | 
			
		||||
*/
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* NAVIGATION  - MOUSE, Scroll, Buttons, Arrows, Tab, Home, page up/down, End   */
 | 
			
		||||
/* Navigation layers:                                                           */
 | 
			
		||||
/*    3 row Layer                                                               */
 | 
			
		||||
/*    4 Row Layer with repeated and swapped VI arrows, and Scroll wheel.        */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* Navigation layer with optional 4th Row....                                   */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* M = Mouse                                                                    */
 | 
			
		||||
/* B = Button                                                                   */
 | 
			
		||||
/* W = Wheel                                                                    */
 | 
			
		||||
/* AC   = Acceleration                                                          */
 | 
			
		||||
/* CCCV = Tap -> Ctrl-C, hold for double tap duration -> Ctrl-V                 */
 | 
			
		||||
/* CTCN = Tap -> Ctrl-T, hold for double tap duration -> Ctrl-N                 */
 | 
			
		||||
/* CWCQ = Tap -> Ctrl-W, hold for double tap duration -> Ctrl-Q                 */
 | 
			
		||||
/* HOME = TAB & PGDN                                                            */
 | 
			
		||||
/* END =  BKTAB & PGUP -- See combos.                                           */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* MB5  MB4    MB3    MB2  MB1     MAC0  |  CTCN  MB1    MB2    MB3  MB4   MB5 */
 | 
			
		||||
/* TAB  MLeft  MDown  MUp  MRight  MAC1  |  CCCV  Left   Down   UP   Right TAB */
 | 
			
		||||
/*      WLeft  WDown  WUp  WRight  MAC2  |  CWCQ  TAB    PGDN   PGUP BKTAB       */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/*      Left   Down   Up   Right   CCCV  |  CCCV   MLeft  MDown  MUp  MRight    */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
#define ___MOUSE_LDUR___      KC_MS_L,  KC_MS_D,  KC_MS_U,  KC_MS_R
 | 
			
		||||
#define ___MWHEEL_LDUR___     KC_WH_L,  KC_WH_D,  KC_WH_U,  KC_WH_R
 | 
			
		||||
//  really BTN 1, 2, 3, 8, 9 - according to xev.
 | 
			
		||||
#define ___MOUSE_BTNS_R___    KC_BTN1,  KC_BTN3,  KC_BTN2,  KC_BTN4,  KC_BTN5
 | 
			
		||||
#define ___4MOUSE_BTNS_R___   KC_BTN1,  KC_BTN3,  KC_BTN2,  KC_BTN4
 | 
			
		||||
#define ___3MOUSE_BTNS_R___   KC_BTN1,  KC_BTN3,  KC_BTN2
 | 
			
		||||
//  really BTN 9, 8, 3, 2, 1 - according to xev
 | 
			
		||||
#define ___4MOUSE_BTNS_L___   KC_BTN4,  KC_BTN2,  KC_BTN3,  KC_BTN1
 | 
			
		||||
#define ___MOUSE_BTNS_L___    KC_BTN5,  KC_BTN4,  KC_BTN2,  KC_BTN3,  KC_BTN1
 | 
			
		||||
#define ___MOUSE_ACCL_012___  KC_ACL0,  KC_ACL1,  KC_ACL2
 | 
			
		||||
#define ___MACCL___ ___MOUSE_ACCL_012___
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define ___VI_ARROWS___           KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT
 | 
			
		||||
#define ___HOME_PGDN_PGUP_END___  KC_HOME,  KC_PGDN, KC_PGUP, KC_END
 | 
			
		||||
#define ___TAB_PGDN_PGUP_BKTAB___ KC_TAB,  KC_PGDN, KC_PGUP, KC_BKTAB
 | 
			
		||||
// home and end are combos.  tab/pgdn = home, bktab/pgup = end.
 | 
			
		||||
 | 
			
		||||
#define ___REDO_CUT_COPY_PASTE_UNDO___ S_REDO, S_CUT, S_COPY, S_PASTE, S_UNDO
 | 
			
		||||
 | 
			
		||||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
#define ___NAV_La_1___ ___SML_MODS_L___, KC_ACL0
 | 
			
		||||
#define ___NAV_L_1___ ___4MOUSE_BTNS_L___, KC_ACL0
 | 
			
		||||
#define ___NAV_L_2___ ___MOUSE_LDUR___,  KC_ACL1
 | 
			
		||||
#define ___NAV_L_3___ ___MWHEEL_LDUR___, KC_ACL2
 | 
			
		||||
#define ___NAV_L_4___ ___VI_ARROWS___,   KC_CCCV
 | 
			
		||||
 | 
			
		||||
#define ___NAV_R_1___  KC_CTCN, ___4MOUSE_BTNS_R___
 | 
			
		||||
#define ___NAV_R_4___  KC_CCCV, ___MOUSE_LDUR___
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#define ___NAV_La_1___ ___NAV_L_1___
 | 
			
		||||
#define ___NAV_L_1___  ___OS_MODS_L___
 | 
			
		||||
#define ___NAV_L_2___  ___SML_MODS_L___, ___
 | 
			
		||||
#define ___NAV_L_3___  ___5___
 | 
			
		||||
#define ___NAV_L_4___  ___VI_ARROWS___,   KC_CCCV
 | 
			
		||||
 | 
			
		||||
#define ___NAV_R_1___  KC_CTCN, ___SML_MODS_R___
 | 
			
		||||
#define ___NAV_R_4___  KC_CCCV, ___4___
 | 
			
		||||
 | 
			
		||||
#endif // end mousekey
 | 
			
		||||
 | 
			
		||||
#define ___NAV_R_2___  KC_CCCV, ___VI_ARROWS___
 | 
			
		||||
#define ___NAV_R_3___  KC_CWCQ, ___HOME_PGDN_PGUP_END___
 | 
			
		||||
#define ___NAV_Ra_3___ KC_CWCQ, ___TAB_PGDN_PGUP_BKTAB___
 | 
			
		||||
 | 
			
		||||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
 | 
			
		||||
#define ___6NAV_L_1___ ___MOUSE_BTNS_L___,           KC_ACL0
 | 
			
		||||
#define ___6NAV_L_2___ TAB_BKTAB, ___MOUSE_LDUR___,  KC_ACL1
 | 
			
		||||
#define ___6NAV_L_3___ ___,       ___MWHEEL_LDUR___, KC_ACL2
 | 
			
		||||
#define ___6NAV_L_4___ ___,       ___VI_ARROWS___,   KC_CCCV
 | 
			
		||||
 | 
			
		||||
#define ___6NAV_R_1___ KC_CTCN, ___MOUSE_BTNS_R___
 | 
			
		||||
#define ___6NAV_R_4___ KC_CCCV, ___MOUSE_LDUR___, ___
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#define ___6NAV_L_1___ ___6___
 | 
			
		||||
#define ___6NAV_L_2___ TAB_BKTAB, ___SML_MODS_L___, ___
 | 
			
		||||
 | 
			
		||||
#define ___6NAV_L_3___ ___,       ___5___
 | 
			
		||||
#define ___6NAV_L_4___ ___,       ___VI_ARROWS___,   KC_CCCV
 | 
			
		||||
 | 
			
		||||
#define ___6NAV_R_1___ KC_CTCN, ___SML_MODS_R___
 | 
			
		||||
#define ___6NAV_R_4___ KC_CCCV, ___4___, ___
 | 
			
		||||
 | 
			
		||||
#endif // end mousekey
 | 
			
		||||
 | 
			
		||||
#define ___6NAV_R_2___ KC_CCCV, ___VI_ARROWS___,          TAB_BKTAB
 | 
			
		||||
#define ___6NAV_R_3___ KC_CWCQ, ___HOME_PGDN_PGUP_END___, ___
 | 
			
		||||
 | 
			
		||||
// compact. 3x10 per layer.
 | 
			
		||||
#define ___10_NAV_1a___ ___NAV_La_1___, ___NAV_R_1___
 | 
			
		||||
#define ___10_NAV_1___ ___NAV_L_1___, ___NAV_R_1___
 | 
			
		||||
#define ___10_NAV_2___ ___NAV_L_2___, ___NAV_R_2___
 | 
			
		||||
#define ___10_NAV_3___ ___NAV_L_3___, ___NAV_Ra_3___
 | 
			
		||||
 | 
			
		||||
// designed without mouse, mods on left.
 | 
			
		||||
#define ___NAVnm_La_1___ ___NAV_L_1___
 | 
			
		||||
#define ___NAVnm_L_1___  ___SML_MODS_L___
 | 
			
		||||
#define ___NAVnm_L_2___  ___OS_MODS_L___, ___
 | 
			
		||||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
#define ___NAVnm_L_3___  ___2___, SML_NAVm, ___2___  // get to mouse layer if enabled.
 | 
			
		||||
#else
 | 
			
		||||
#define ___NAVnm_L_3___  ___5___
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define ___10_NAVnm_1___ ___SML_MODS_L___, ___, ___NAV_R_1___
 | 
			
		||||
#define ___10_NAVnm_2___ ___OS_MODS_L___, ___NAV_R_2___
 | 
			
		||||
#define ___10_NAVnm_3___ ___NAVnm_L_3___, ___NAV_R_3___
 | 
			
		||||
 | 
			
		||||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
// Mouse layer only. mods on right.
 | 
			
		||||
#define ___10_NAVm_1___ ___NAV_L_1___, ___NAV_R_1___
 | 
			
		||||
#define ___10_NAVm_2___ ___NAV_L_2___, ___NAV_R_2___
 | 
			
		||||
#define ___10_NAVm_3___ ___NAV_L_3___, ___NAV_R_3___
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* The Navigation LAYER Chunks                                                  */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
// A Navigation Layer
 | 
			
		||||
#define CARTE_NAV                               \
 | 
			
		||||
  carte_de_map("54321 0  ctn 12345",            \
 | 
			
		||||
               " ldur 1  ccv ldur",             \
 | 
			
		||||
               " ldur 2  cwq tdubt")
 | 
			
		||||
 | 
			
		||||
#define CARTE_NAVA                              \
 | 
			
		||||
  carte_de_map(" gacs 0  ctn 12345",             \
 | 
			
		||||
               " ldur 1  ccv ldur",              \
 | 
			
		||||
               " ldur 2  cwq tdubt")
 | 
			
		||||
 | 
			
		||||
#define CARTE_NAVnm                             \
 | 
			
		||||
  carte_de_map(" gacsc2 ctn cscag ",            \
 | 
			
		||||
               " gacs   ccv ldur",              \
 | 
			
		||||
               " __M_   cwq tdubt")
 | 
			
		||||
 | 
			
		||||
// currently the same as NAVA
 | 
			
		||||
#define CARTE_NAVm                                 \
 | 
			
		||||
  carte_de_map(" gacs 0  ctn 12345",               \
 | 
			
		||||
               " ldur 1  ccv ldur",                \
 | 
			
		||||
               " ldur 2  cwq tdubt")
 | 
			
		||||
 | 
			
		||||
#define CARTE_NAV_miryoku                       \
 | 
			
		||||
  carte_de_map("  rdo  ccp undo",               \
 | 
			
		||||
               "  Caps ldur",                   \
 | 
			
		||||
               "  Ins  HDUE")
 | 
			
		||||
 | 
			
		||||
#define CARTE_NAVm_miryoku                      \
 | 
			
		||||
  carte_de_map("  rdo ccp undo",               \
 | 
			
		||||
               "      ldur",                   \
 | 
			
		||||
               "      ldur")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
#define ___NAVm_3x10___ ___10_NAVm_1___, ___10_NAVm_2___, ___10_NAVm_3___
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define ___NAVnm_3x10___ ___10_NAVnm_1___, ___10_NAVnm_2___, ___10_NAVnm_3___
 | 
			
		||||
#define ___NAVA_3x10___ ___10_NAV_1a___, ___10_NAV_2___, ___10_NAV_3___
 | 
			
		||||
#define ___NAV_3x10___ ___10_NAV_1___, ___10_NAV_2___, ___10_NAV_3___
 | 
			
		||||
#define ___NAV_3x12___ ___12_NAV_1___, ___12_NAV_2___, ___12_NAV_3___
 | 
			
		||||
#define ___NAV_miryoku___ \
 | 
			
		||||
  ___5___, ___redo_cut_copy_paste_undo___,                              \
 | 
			
		||||
    ___5___, KC_CAPS, ___VI_ARROWS___,                                  \
 | 
			
		||||
    ___5___, KC_INSERT, ___HOME_PGDN_PGUP_END___
 | 
			
		||||
 | 
			
		||||
#ifdef MOUSEKEY_ENABLE
 | 
			
		||||
#define ___NAVm_miryoku___                                              \
 | 
			
		||||
  ___5___, ___redo_cut_copy_paste_undo___,                              \
 | 
			
		||||
    ___5___, ___, ___MOUSE_LDUR___,                                     \
 | 
			
		||||
    ___5___, ___, ___MWHEEL_LDUR___,
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										225
									
								
								users/ericgebhart/layers/symbols.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										225
									
								
								users/ericgebhart/layers/symbols.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,225 @@
 | 
			
		|||
/*
 | 
			
		||||
  Copyright 2018-2022 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/>.
 | 
			
		||||
*/
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* Symbol layers:                                                 */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* The BEAKL15 Symbol layer with or without additions.            */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* There is the offical beakl symbol layer, an extended symbol    */
 | 
			
		||||
/* layer which is expanded with: !?@`'/-;.                        */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* Placing these 8 keys in the pinky and index corners            */
 | 
			
		||||
/* at the edges of the, 3x3, BEAKL home Region.                   */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* Beakl has these keys in it's base layer which isn't the case   */
 | 
			
		||||
/* for other layouts like dvorak, colemak, etc.                   */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* The third layer moves /:? to more accessible places.           */
 | 
			
		||||
/* to make vi keybindings more accessible.                        */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* Note that there are 2 widths. 12 and 10. The wider layer adds  */
 | 
			
		||||
/* - and ; to the middle row edges.                               */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* Official:                                                      */
 | 
			
		||||
/*         <$>   [_]                                              */
 | 
			
		||||
/*      - \(")# %{=}| ;                                           */
 | 
			
		||||
/*         :*+   &^~                                              */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/*   not yet implemented                                          */
 | 
			
		||||
/* BEAKL27 (punctuation layer):                                   */
 | 
			
		||||
/*   ↹@$#↹  ~^`                                                  */
 | 
			
		||||
/*   ↹<=>   [_]                                                   */
 | 
			
		||||
/*   \(-)+ %{;}!                                                  */
 | 
			
		||||
/*    *:/⏎  |~&                                                   */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* BEAKL Extended symbol layer                                    */
 | 
			
		||||
/* Expanded with: !?@`'/-;                                        */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* A:                                                             */
 | 
			
		||||
/*        `<$>' ?[_]-                                             */
 | 
			
		||||
/*      - \(")# %{=}| ;                                           */
 | 
			
		||||
/*        @:*+; !&^~/                                             */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* Optimized for Vi.                                              */
 | 
			
		||||
/* B:                                                             */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/*        `<$>' ?[_]-                                             */
 | 
			
		||||
/*      - \(")# !{:}/ ;                                           */
 | 
			
		||||
/*        @=*+; %&^~|                                             */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* C:                                                             */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/*        `<$>' ?[_-]                                             */
 | 
			
		||||
/*      - \("#) !{:/} ;                                           */
 | 
			
		||||
/*        @=*+; %&^~|                                             */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
/* Both ; and ' could have found their dvorak positions. Analysis showed */
 | 
			
		||||
/* that only caused pinky overuse. Rotating the symbols around Put better */
 | 
			
		||||
/* keys on the index finger which showed a huge improvement in efficiency. */
 | 
			
		||||
/* The same is true of the exclamation point.                     */
 | 
			
		||||
/*                                                                */
 | 
			
		||||
 | 
			
		||||
/* Beakl Wi */
 | 
			
		||||
 | 
			
		||||
/* This Symbol layer does not improve on the above extended symbol */
 | 
			
		||||
/* layers in my opinon, for my usage. */
 | 
			
		||||
 | 
			
		||||
/* The original symbol was the Left side with defined/but/transparent */
 | 
			
		||||
/* right. The regex layer was the opposite. I combined them into one, I am */
 | 
			
		||||
/* not sure of the functionality that might be lost due to that, but they */
 | 
			
		||||
/* are defined as original sans extra tap dance functions. It would be easy to */
 | 
			
		||||
/* make two layers with transparent right and left. There is duplication */
 | 
			
		||||
/* of | and *. */
 | 
			
		||||
 | 
			
		||||
/* Symbols on the left */
 | 
			
		||||
/* .*&+ */
 | 
			
		||||
/* ?!/| */
 | 
			
		||||
/* <>%@ */
 | 
			
		||||
 | 
			
		||||
// regex on the right
 | 
			
		||||
/* *[^] */
 | 
			
		||||
/* ?($) */
 | 
			
		||||
/* |{#} */
 | 
			
		||||
 | 
			
		||||
// Altogether
 | 
			
		||||
/* .*&+  *[^] */
 | 
			
		||||
/* ?!/|  ?($) */
 | 
			
		||||
/* <>%@  |{#} */
 | 
			
		||||
/******************************************************************/
 | 
			
		||||
 | 
			
		||||
// Left
 | 
			
		||||
#define ___SB_L1___          _OCLTGT, _DLR,    _GT
 | 
			
		||||
#define ___SB_L2___  _BSLS,  _OCPRN,  _OCDQUO, _RPRN, _HASH
 | 
			
		||||
#define ___SB_L2c___ _BSLS,  _OCPRN,  _OCDQUO, _HASH, _RPRN
 | 
			
		||||
#define ___SB_L3___          _COLN,   _ASTR,   _PLUS
 | 
			
		||||
 | 
			
		||||
// Right
 | 
			
		||||
#define ___SB_R1___          _OCBRC,   _UNDS,     _RBRC
 | 
			
		||||
#define ___SB_R1c___         _OCBRC,   _UNDS,     _MINS
 | 
			
		||||
#define ___SB_R2___  _PERC,  _OCCBR,   _EQL,      _RCBR,  _PIPE
 | 
			
		||||
#define ___SB_R3___          _AMPR,    _CIRC_ND,  _TILD_ND
 | 
			
		||||
 | 
			
		||||
// a and b... left and right.
 | 
			
		||||
#define ___SB_L3b___          _EQL,    _ASTR,   _PLUS
 | 
			
		||||
 | 
			
		||||
#define ___SB_R2a___ _PERC,  _OCCBR,   _EXLM,  _RCBR,  _PIPE
 | 
			
		||||
#define ___SB_R2b___ _EXLM,  _OCCBR,   _COLN,  _RCBR,  _SLSH
 | 
			
		||||
#define ___SB_R2c___ _EXLM,  _OCCBR,   _COLN,  _SLSH,  _RCBR
 | 
			
		||||
 | 
			
		||||
// ---------------------------
 | 
			
		||||
// ---------------------------
 | 
			
		||||
#define CARTE_SYMB_BEAKL                        \
 | 
			
		||||
  carte_de_map("  <$>   [_]   ",                \
 | 
			
		||||
               "-\\(\")# %{=}|;",               \
 | 
			
		||||
               "  :*+   &^~   ")
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_BEAKL_3x10___                                           \
 | 
			
		||||
  CHUNK_LANG_MAP(_TRNS,   ___SB_L1___, _TRNS,    _TRNS,  ___SB_R1___, _TRNS, \
 | 
			
		||||
                 ___SB_L2___,                    ___SB_R2___,           \
 | 
			
		||||
                 _TRNS,   ___SB_L3___, _TRNS,    _TRNS, ___SB_R3___, _TRNS)
 | 
			
		||||
 | 
			
		||||
// ---------------------------
 | 
			
		||||
// A: Extended.
 | 
			
		||||
#define CARTE_SYMB_BEAKLA                       \
 | 
			
		||||
  carte_de_map("   `<$>'  ?[_]-",               \
 | 
			
		||||
               "  -\\(\")#  %{:}|;",            \
 | 
			
		||||
               "   @=*+;  !&^~/")
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_BEAKLA_3x10___                                          \
 | 
			
		||||
  CHUNK_LANG_MAP(_OCGRV, ___SB_L1___, _OCQUOT,   _QUES,  ___SB_R1___, _MINS, \
 | 
			
		||||
                 ___SB_L2___,                    ___SB_R2a___,          \
 | 
			
		||||
                 _AT,    ___SB_L3___, _SCLN,     _EXLM, ___SB_R3___, _SLSH)
 | 
			
		||||
 | 
			
		||||
// ---------------------------
 | 
			
		||||
// B: Extended & Vi
 | 
			
		||||
#define CARTE_SYMB_BEAKLB                       \
 | 
			
		||||
  carte_de_map("   `<$>'  ?[_]-",               \
 | 
			
		||||
               "  -\\(\")#  !{:}/;",            \
 | 
			
		||||
               "   @=*+;  %&^~|")
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_BEAKLB_3x10___                                          \
 | 
			
		||||
  CHUNK_LANG_MAP(_OCGRV, ___SB_L1___,  _OCQUOT,   _QUES,  ___SB_R1___, _MINS, \
 | 
			
		||||
                 ___SB_L2___,                     ___SB_R2b___,         \
 | 
			
		||||
                 _AT,    ___SB_L3b___, _SCLN,     _PERC, ___SB_R3___, _PIPE)
 | 
			
		||||
 | 
			
		||||
// ---------------------------
 | 
			
		||||
// C: Extended & Vi, move closing braces to pinky, seldom used.
 | 
			
		||||
// because of tap hold - open_openclose feature.
 | 
			
		||||
// Also emacs which mostly closes them.
 | 
			
		||||
#define CARTE_SYMB_BEAKLC                       \
 | 
			
		||||
  carte_de_map("   `<$>'  ?[_-]",               \
 | 
			
		||||
               "  -\\(\"#)  !{:/};",            \
 | 
			
		||||
               "   @=*+;  %&^~|")
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_BEAKLC_3x10___                                          \
 | 
			
		||||
  CHUNK_LANG_MAP(_OCGRV, ___SB_L1___,  _OCQUOT,   _QUES,  ___SB_R1c___, _RBRC, \
 | 
			
		||||
                 ___SB_L2c___,                     ___SB_R2c___,        \
 | 
			
		||||
                 _AT,    ___SB_L3b___, _SCLN,     _PERC, ___SB_R3___, _PIPE)
 | 
			
		||||
 | 
			
		||||
// wants ( and ) on the left thumb.
 | 
			
		||||
#define CARTE_SYMB_MIRYOKU                                  \
 | 
			
		||||
  carte_de_map("  {&.(} ",                                  \
 | 
			
		||||
               "  :$%^+ ",                                  \
 | 
			
		||||
               "  ~!@#| ")
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_MIRYOKU_3x10___                         \
 | 
			
		||||
  CHUNK_LANG_MAP(_OCCBR,   _AMPR, _DOT,  _OCPRN,   _RCBR, ____5_,     \
 | 
			
		||||
                 _COLN,    _DLR,  _PERC, _CIRC_ND, _PLUS, ____5_,     \
 | 
			
		||||
                 _TILD_ND, _EXLM, _AT,   _HASH,    _PIPE, ____5_)
 | 
			
		||||
 | 
			
		||||
// ---------------------------
 | 
			
		||||
// WI: the Beakl Wi definition.
 | 
			
		||||
#define ___SYMB_BKL_WI_L1___ ___,   _DOT,  _ASTR, _AMPR, _PLUS
 | 
			
		||||
#define ___SYMB_BKL_WI_L2___ ___,   _QUES, _EXLM, _SLSH, _PIPE
 | 
			
		||||
#define ___SYMB_BKL_WI_L3___ ___,   _LT,   _GT,   _PERC, _AT
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_BKL_WI_R1___ _ASTR, _OCBRC, _CIRC_ND, _RBRC, ___
 | 
			
		||||
#define ___SYMB_BKL_WI_R2___ _QUES, _OCPRN, _DLR ,    _RPRN, ___
 | 
			
		||||
#define ___SYMB_BKL_WI_R3___ _PIPE, _OCCBR, _HASH,    _RCBR, ___
 | 
			
		||||
 | 
			
		||||
#define CARTE_SYMB_BEAKLWI                      \
 | 
			
		||||
  carte_de_map(" .*&+  *[^] ",                  \
 | 
			
		||||
               " ?!/|  ?($) ",                  \
 | 
			
		||||
               " <>%@  |{#} ")
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_BEAKL_WI_3x10___                                \
 | 
			
		||||
  CHUNK_LANG_MAP(___SYMB_BKL_WI_L1___, ___SYMB_BKL_WI_R1___,    \
 | 
			
		||||
                 ___SYMB_BKL_WI_L2___, ___SYMB_BKL_WI_R2___,    \
 | 
			
		||||
                 ___SYMB_BKL_WI_L3___, ___SYMB_BKL_WI_R3___)
 | 
			
		||||
 | 
			
		||||
// ---------------------------
 | 
			
		||||
// Neo symbol layer
 | 
			
		||||
#define ___SYMB_NEO_L1___ ___,  _OCDQUOT, _UNDS,  _OCLBRC, _RBRC, _CIRC_ND
 | 
			
		||||
#define ___SYMB_NEO_L2___ ___,  _SLSH,  _MINS,  _OCLCBR, _RCBR, _ASTR
 | 
			
		||||
#define ___SYMB_NEO_L3___ ___,  _HASH,  _DLR,   _PIPE, _TILD_ND, _OCGRV
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_NEO_R1___ _EXLM, _LT,    _GT,    _EQL,  _AMPR
 | 
			
		||||
#define ___SYMB_NEO_R2___ _QUES, _OCPRN, _RPRN , _QUOT, _COLN
 | 
			
		||||
#define ___SYMB_NEO_R3___ _PLUS, _PERC,  _BSLS,  _AT,   ___
 | 
			
		||||
 | 
			
		||||
#define CARTE_SYMB_NEO                          \
 | 
			
		||||
  carte_de_map("\"_[]^  !<>=&",                 \
 | 
			
		||||
               "/-{}*  ?()':",                  \
 | 
			
		||||
               "#$|~`  +%\@")
 | 
			
		||||
 | 
			
		||||
#define ___SYMB_NEO_3x10___                                     \
 | 
			
		||||
  CHUNK_LANG_MAP(___SYMB_NEO_L1___, ___SYMB_NEO_R1___,          \
 | 
			
		||||
                 ___SYMB_NEO_L2___, ___SYMB_NEO_R2___,          \
 | 
			
		||||
                 ___SYMB_NEO_L3___, ___SYMB_NEO_R3___)
 | 
			
		||||
							
								
								
									
										276
									
								
								users/ericgebhart/layers/thumbs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										276
									
								
								users/ericgebhart/layers/thumbs.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,276 @@
 | 
			
		|||
/*
 | 
			
		||||
  Copyright 2018-2022 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/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// Split thumbs.
 | 
			
		||||
 | 
			
		||||
// Split these down the middle to think in left and right hand.
 | 
			
		||||
// Top row on kinesis, ergodox, etc.
 | 
			
		||||
#define ___THUMBS_1___                                  \
 | 
			
		||||
  ___X___  , MO_ADJUST,   MO_LAYERS, OSL(LN_TOPROWS)
 | 
			
		||||
 | 
			
		||||
// Middle row on kinesis, ergodox, etc.
 | 
			
		||||
#define ___THUMBS_2___   HOME_END,   KC_PGUP
 | 
			
		||||
 | 
			
		||||
#define ___4_THUMBS_1___  ___X___, KC_HOME, KC_PGUP, OSL(LN_TOPROWS)
 | 
			
		||||
#define ___6_THUMBS_2___  KC_LSFT,    KC_BKTAB, KC_END,  KC_PGDN, KC_TAB, KC_RSFT
 | 
			
		||||
#define ___6_THUMBS_2_CB___  KC_LSFT,    KC_BKTAB, KC_END,  KC_PGDN, KC_TAB, KC_RSFT
 | 
			
		||||
 | 
			
		||||
#define ___6_THUMBS_2a___ BSPC_SYMB, ESC_TOPR, ESC_TOPR, ENT_NAV, ENT_NAV, SPC_TOPR
 | 
			
		||||
#define ___6_THUMBS_2a_CB___ BSPC_SYMB, ESC_TOPR, ESC_TOPR, ENT_NAV, ENT_NAV, SPC_TOPR
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// This has become the default center group of thumbs for all
 | 
			
		||||
// So here's the beakl wi thumbs adapted to this combined layer system.
 | 
			
		||||
//
 | 
			
		||||
#define ___6_ERGO_THUMBS_WI___                                  \
 | 
			
		||||
  ESC_TOPR, I_SYMB, TAB_NUM,  ENT_NAV, SPC_SYMB, BSPC_NAV
 | 
			
		||||
 | 
			
		||||
// Like my other thumb rows. With an I.
 | 
			
		||||
#define ___6_ERGO_THUMBS_WIa___                                 \
 | 
			
		||||
  BSPC_NAV, I_SYMB, ESC_TOPR, ENT_NAV, SPC_TOPR, TAB_NUM
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_layers___                              \
 | 
			
		||||
  SML_NAV, BSPC_SYMB, ESC_TOPR, ENT_NAV, SPC_TOPR, ACCCENTS_RALT
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_COMBO___ CB_TH1, CB_TH2, CB_TH3, CB_TH4, CB_TH5, CB_TH6
 | 
			
		||||
#define ___6_ERGO_THUMBS_COMBO2___ CB2_TH1, CB2_TH2, CB2_TH3, CB2_TH4, CB2_TH5, CB2_TH6
 | 
			
		||||
 | 
			
		||||
// Transparent.
 | 
			
		||||
#define ___6_ERGO_THUMBS_trns___ ___6___
 | 
			
		||||
 | 
			
		||||
// A place to test stuff.
 | 
			
		||||
#define ___6_ERGO_THUMBS_tst___                                 \
 | 
			
		||||
  TT_KEYPAD, BSPC_SYMB, ESC_TOPR, ENT_NAV, SPC_TOPR, KC_XM_PORD
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_mods___                                \
 | 
			
		||||
  ALT_DEL, CTL_BSPC, GUI_ESC,  ALT_ENT, CTL_SPC, XC_XM_PORD
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_mod_layers___                          \
 | 
			
		||||
  ALT_DEL, BSPC_SYMB, GUI_ESC,  CTL_ENT, SPC_TOPR, ACCENTS_RALT
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_mod_layers_nav___                      \
 | 
			
		||||
  ALT_DEL, BSPC_SYMB, GUI_ESC,  ENT_NAV, SPC_TOPR, ACCENTS_RALT
 | 
			
		||||
 | 
			
		||||
// for keymaps that need a letter on the thumb.
 | 
			
		||||
#define ___6_ERGO_THUMBS_left_letter___                                 \
 | 
			
		||||
  BSPC_ALT, TH_LTR_SYM, GUI_ESC,  ENT_NAV, SPC_TOPR, KC_TAB
 | 
			
		||||
 | 
			
		||||
// an attempt at an approximation of the HD thumbs as they are on the site.
 | 
			
		||||
// really should be expected to be a starting point that doesnt strand you.
 | 
			
		||||
#define ___6_ERGO_THUMBS_hd___                                  \
 | 
			
		||||
  BSPC_ALT, TH_LTR_SYM, GUI_ESC, ENT_NAV, SPC_TOPR, ACCENTS_CTL
 | 
			
		||||
#define ___6_ERGO_THUMBS_hd_a___                                        \
 | 
			
		||||
  OS_LSHIFT, TH_LTR_SYM, GUI_ESC, BSPC_ALT, SPC_TOPR, ACCENTS_CTL
 | 
			
		||||
#define ___6_ERGO_THUMBS_hd_simple___                   \
 | 
			
		||||
  MO_SYMB, THUMB_LETTER, KC_ENT, KC_BSPC, KC_SPC, MO_TOPROWS
 | 
			
		||||
/* HD dash has thumbs of ,; and .:        */
 | 
			
		||||
#define ___6_ERGO_THUMBS_hd_dash___                                     \
 | 
			
		||||
  LANG_KC(TL_COMM), TL_DOT_SYMB, GUI_ESC, ENT_NAV, SPC_TOPR, BSPC_NUM
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_media___ ___3___, ___STOP_PLAY_MUTE___
 | 
			
		||||
#define ___6_ERGO_THUMBS_mouse___ ___3___, ___3MOUSE_BTNS_R___
 | 
			
		||||
#define ___6_ERGO_THUMBS_keypad___ \
 | 
			
		||||
  LANG_KC(_DOT), LANG_KC(_0), LANG_KC(_MINS), ___3___
 | 
			
		||||
#define ___6_ERGO_THUMBS_symb___                                \
 | 
			
		||||
  LANG_KC(_OCPRN), LANG_KC(_RPRN), LANG_KC(_UNDS), ___3___
 | 
			
		||||
 | 
			
		||||
// miryoku thumbs, either its toprows or keypad for numbers.
 | 
			
		||||
#define ___6_ERGO_THUMBS_miryoku_tr___                          \
 | 
			
		||||
  ESC_MEDIA, SPACE_NAV, TAB_NAVM,  ENT_SYM, BSPC_TOPR, DEL_FUN
 | 
			
		||||
#define ___6_ERGO_THUMBS_miryoku___                             \
 | 
			
		||||
  ESC_MEDIA, SPACE_NAV, TAB_NAVM,  ENT_SYM, BSPC_NUM, DEL_FUN
 | 
			
		||||
// lose the tab key, put a letter where space was.
 | 
			
		||||
// move space to the right side, put backspace where tab was.
 | 
			
		||||
#define ___6_ERGO_THUMBS_miryoku_ltr___                         \
 | 
			
		||||
  ESC_MEDIA, TH_LTR_NAV, BSPC_NAVm,  ENT_SYM, SPC_NUM, DEL_FUN
 | 
			
		||||
#define ___6_ERGO_THUMBS_miryoku_tr_ltr___                      \
 | 
			
		||||
  ESC_MEDIA, TH_LTR_NAV, BSPC_NAVm,  ENT_SYM, SPC_TOPR, DEL_FUN
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_miryoku_ltr_tab___                      \
 | 
			
		||||
  BSPC_MEDIA, TH_LTR_NAV, TAB_NAVM,    ENT_SYM, SPC_NUM, DEL_FUN
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS_miryoku_tr_ltr_tab___                   \
 | 
			
		||||
  BSPC_MEDIA, TH_LTR_NAV, TAB_NAVM,    ENT_SYM, SPC_TOPR, DEL_FUN
 | 
			
		||||
 | 
			
		||||
// Give the right symbol suffix by the value of THUMBS_ARE
 | 
			
		||||
// Basically we choose the right cluster here, so the layout
 | 
			
		||||
// level doesn't know or care.
 | 
			
		||||
//
 | 
			
		||||
// ___foo  --> ___foo_WI___, or ___foo_WIa___, or ___foo_def___.
 | 
			
		||||
// THUMBS_ARE = WI, or WIa, or DEFAULT, TEST, TRNS, MOD_LAYERS, etc.
 | 
			
		||||
// the value of THUMB_LETTER is the key used when needed.
 | 
			
		||||
#define THUMB_EXT CAT(THUMBS_ARE, _EXT)
 | 
			
		||||
#define WI_EXT _WI___
 | 
			
		||||
#define WIa_EXT _WIa___
 | 
			
		||||
#define DEFAULT_EXT _mod_layers_nav___  //change this to change the default.
 | 
			
		||||
#define TEST_EXT _tst___
 | 
			
		||||
#define TRNS_EXT _trns___
 | 
			
		||||
#define MODS_EXT _mods___
 | 
			
		||||
#define LAYERS_EXT _layers___
 | 
			
		||||
#define MODS_LAYERS_EXT _mod_layers___
 | 
			
		||||
#define MODS_LAYERS_NAV_EXT _mod_layers_nav___
 | 
			
		||||
#define MIRYOKU_EXT _miryoku___
 | 
			
		||||
#define MIRYOKU_TR_EXT _miryoku_tr___
 | 
			
		||||
#define MIRYOKU_LTR_EXT _miryoku_ltr___  // miryoku versions with a letter
 | 
			
		||||
#define MIRYOKU_LTR_TAB_EXT _miryoku_ltr_tab___
 | 
			
		||||
#define MIRYOKU_TR_LTR_EXT _miryoku_tr_ltr___
 | 
			
		||||
#define MIRYOKU_TR_LTR_TAB_EXT _miryoku_tr_ltr_tab___
 | 
			
		||||
#define TH_LTR_EXT _left_letter___ // takes a letter for the left thumb.
 | 
			
		||||
#define HD_DASH_EXT _hd_dash___
 | 
			
		||||
#define HD_EXT _hd___  // takes a letter for the left thumb.
 | 
			
		||||
#define HDA_EXT _hd_a___  // relocate backspace
 | 
			
		||||
#define HD_SIMPLE_EXT _hd_simple___  // no LTs or MT´s.
 | 
			
		||||
// for the function layers
 | 
			
		||||
#define COMBO_EXT _COMBO___
 | 
			
		||||
#define COMBO2_EXT _COMBO2___
 | 
			
		||||
#define MEDIA_THUMBS_EXT _media___
 | 
			
		||||
#define MOUSE_THUMBS_EXT _mouse___
 | 
			
		||||
#define KEYPAD_THUMBS_EXT _keypad___
 | 
			
		||||
#define SYMB_THUMBS_EXT _symb___
 | 
			
		||||
 | 
			
		||||
#define ___6_ERGO_THUMBS___ CAT2(___6_ERGO_THUMBS, THUMB_EXT)
 | 
			
		||||
// for the kyria, mostly for the combo reference layers.
 | 
			
		||||
#define ___10_ERGO_THUMBS___ CATR(___10_ERGO_THUMBS, EXP_THUMB_EXT)
 | 
			
		||||
#define ___4_THUMBS___ CAT2(___4_THUMBS, EXP_THUMB_EXT)
 | 
			
		||||
 | 
			
		||||
/* #define ___6_ERGO_THUMBS___ ___6_ERGO_THUMBS_def___ */
 | 
			
		||||
 | 
			
		||||
/* #define ___ERGODOX_THUMB_LEFT___                \ */
 | 
			
		||||
/*   OSL(SYMB), OSM(KC_LGUI),                      \ */
 | 
			
		||||
/*     HOME_END,                                   \ */
 | 
			
		||||
/*     CTL_BSPC, ALT_DEL, XMONAD_ESC */
 | 
			
		||||
 | 
			
		||||
/* #define ___ERGODOX_THUMB_RIGHT___               \ */
 | 
			
		||||
/*   XXX, OSL(KEYPAD),                             \ */
 | 
			
		||||
/*     KC_PGUP,                                    \ */
 | 
			
		||||
/*     KC_PGDN, ALT_ENT, CTL_SPC */
 | 
			
		||||
 | 
			
		||||
// Translation of LT thumb keys from beakl wi where function layers
 | 
			
		||||
// have separate left and right to here, where I'm defining left and right in
 | 
			
		||||
// one layer and using it that way. I don't feel that having both halves
 | 
			
		||||
// on one layer hurts, if I invoke a layer, I'm not trying to use a non
 | 
			
		||||
// layer part of the keyboard. I don't have an edit layer, might be a good idea.
 | 
			
		||||
// have most of it on the Navigation layer.
 | 
			
		||||
// use the keycodes on that original layer, so It's not defined here.
 | 
			
		||||
// The wi keypad has a hexpad instead of a funcpad. All the other keypads
 | 
			
		||||
// have a funcpad on the opposite side.
 | 
			
		||||
 | 
			
		||||
// translation of the original wi layers to those here.
 | 
			
		||||
// BSPC_NAV
 | 
			
		||||
// SPC_SYMB
 | 
			
		||||
// TAB_NUM
 | 
			
		||||
// ESC_func ->  ESC_TOPR
 | 
			
		||||
// I_regex   -> I_SYMB
 | 
			
		||||
// ENT_edit  -> ENT_NAV
 | 
			
		||||
 | 
			
		||||
/* // consolidated for kinesis, ergodox, and dactyl */
 | 
			
		||||
/* //for the ergodox and kinesis. */
 | 
			
		||||
/* #define ___12_DOX_ALL_THUMBS___                 \ */
 | 
			
		||||
/*   ___4___,                                      \ */
 | 
			
		||||
/*     ___2___,                                    \ */
 | 
			
		||||
/*     ___6___ */
 | 
			
		||||
 | 
			
		||||
#define ___12_DOX_ALL_THUMBS___ ___12___
 | 
			
		||||
 | 
			
		||||
/* ___THUMBS_1___,                             \ */
 | 
			
		||||
/* ___xTHUMBS_2___,                            \ */
 | 
			
		||||
/* ___6_ERGO_THUMBS___ */
 | 
			
		||||
 | 
			
		||||
#define ___12_DOX_ALL_THUMBS_EN___ ___12_DOX_ALL_THUMBS___
 | 
			
		||||
#define ___12_DOX_ALL_THUMBS_BP___ ___12_DOX_ALL_THUMBS___
 | 
			
		||||
 | 
			
		||||
#define ___16_ALL_THUMBS___                     \
 | 
			
		||||
  ___4_THUMBS_1___,                             \
 | 
			
		||||
    ___6_THUMBS_2___,                           \
 | 
			
		||||
    ___6_ERGO_THUMBS___
 | 
			
		||||
 | 
			
		||||
#define ___16_ALL_THUMBS_EN___ ___16_ALL_THUMBS___
 | 
			
		||||
#define ___16_ALL_THUMBS_BP___ ___16_ALL_THUMBS___
 | 
			
		||||
#define ___16_ALL_THUMBSa___                    \
 | 
			
		||||
  ___4_THUMBS_1___,                             \
 | 
			
		||||
    ___6_THUMBS_2a___,                          \
 | 
			
		||||
    ___6_ERGO_THUMBS___
 | 
			
		||||
 | 
			
		||||
#define ___16_ALL_THUMBSa_EN___ ___16_ALL_THUMBSa___
 | 
			
		||||
#define ___16_ALL_THUMBSa_BP___ ___16_ALL_THUMBSa___
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// For the Kyria
 | 
			
		||||
#define ___4_THUMBS_def___       OS_LALT, OS_LCTL, SML_NAV, OS_LSFT
 | 
			
		||||
#define ___10_ERGO_THUMBS_def___ _X_, _X_, ___6_ERGO_THUMBS___, _X_, _X_
 | 
			
		||||
 | 
			
		||||
#define ___4_THUMBS_EN___ ___4_THUMBS_def___
 | 
			
		||||
#define ___4_THUMBS_BP___ ___4_THUMBS_def___
 | 
			
		||||
#define ___10_ERGO_THUMBS_EN___ ___10_ERGO_THUMBS_def___
 | 
			
		||||
#define ___10_ERGO_THUMBS_BP___ ___10_ERGO_THUMBS_def___
 | 
			
		||||
 | 
			
		||||
// combo reference layer thumbs for the kyria.
 | 
			
		||||
// for the kyria, note the odd numbering...a 0 row, and a,b,c,d for the extras
 | 
			
		||||
// on either side of the central 6 thumbs.
 | 
			
		||||
#define ___2_THUMBS_CB___       CB_1TH1,   CB_1TH2
 | 
			
		||||
#define ___4_THUMBS_CB___       CB_0TH1,   CB_0TH2, CB_0TH3, CB_0TH4
 | 
			
		||||
#define ___6_THUMBS_CB___       CB_1TH1,   CB_1TH2, CB_1TH3, CB_1TH4, CB_1TH5, CB_1TH6
 | 
			
		||||
#define ___10_ERGO_THUMBS_CB___ CB_THA,    CB_THB,      \
 | 
			
		||||
    ___6_ERGO_THUMBS___, CB_THC, CB_THD
 | 
			
		||||
#define ___12_ERGO_THUMBS_CB___ ___2_THUMBS_CB___,              \
 | 
			
		||||
    CB_THA,    CB_THB,  ___6_ERGO_THUMBS___, CB_THC, CB_THD
 | 
			
		||||
#define ___12_DOX_ALL_THUMBS_CB___ ___4_THUMBS_CB___, ___2_THUMBS_CB___, ___6_ERGO_THUMBS___
 | 
			
		||||
#define ___16_DOX_ALL_THUMBS_CB___ ___4_THUMBS_CB___, ___6_THUMBS_2_CB___, ___6_ERGO_THUMBS___
 | 
			
		||||
#define ___16_DOX_ALL_THUMBSa_CB___ ___4_THUMBS_CB___, ___6_THUMBS_2a_CB___, ___6_ERGO_THUMBS___
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define ___2_THUMBS_CB2___       CB2_1TH1, CB2_1TH2
 | 
			
		||||
#define ___4_THUMBS_CB2___       CB2_0TH1, CB2_0TH2, CB2_0TH3, CB2_0TH4
 | 
			
		||||
#define ___6_THUMBS_CB2___       CB2_1TH1, CB2_1TH2, CB2_1TH3, CB2_1TH4, CB2_1TH5, CB2_1TH6
 | 
			
		||||
#define ___10_ERGO_THUMBS_CB2___ CB2_THA,  CB2_THB,     \
 | 
			
		||||
    ___6_ERGO_THUMBS___, CB2_THC, CB2_THD
 | 
			
		||||
#define ___12_ERGO_THUMBS_CB2___ ___2_THUMBS_CB2___,      \
 | 
			
		||||
    CB2_THA,  CB2_THB, ___6_ERGO_THUMBS___, CB2_THC, CB2_THD
 | 
			
		||||
#define ___12_DOX_ALL_THUMBS_CB2___ ___4_THUMBS_CB2___, ___2_THUMBS_CB2___, ___6_ERGO_THUMBS___
 | 
			
		||||
#define ___16_DOX_ALL_THUMBS_CB2___ ___4_THUMBS_CB2___, ___6_THUMBS_2_CB2___, ___6_ERGO_THUMBS___
 | 
			
		||||
#define ___16_DOX_ALL_THUMBSa_CB2___ ___4_THUMBS_CB2___, ___6_THUMBS_2a_CB2___, ___6_ERGO_THUMBS___
 | 
			
		||||
 | 
			
		||||
// Basically give the same 4 top thumbs and bottom outer 4 thumbs for everyone.
 | 
			
		||||
// Could be different for every one, but the core 6 is enough for now I think.
 | 
			
		||||
// Everyone is the same except the combo reference layers.
 | 
			
		||||
// Let 6 ERGO_THUMBS do it´s thing inside.
 | 
			
		||||
#define EXP_THUMB_EXT CAT(THUMBS_ARE, _EXP_EXT)
 | 
			
		||||
#define WI_EXP_EXT _def___
 | 
			
		||||
#define WIa_EXP_EXT _def___
 | 
			
		||||
#define DEFAULT_EXP_EXT _def___
 | 
			
		||||
#define TEST_EXP_EXT _def___
 | 
			
		||||
#define TRNS_EXP_EXT _def___
 | 
			
		||||
#define MODS_EXP_EXT _def___
 | 
			
		||||
#define LAYERS_EXP_EXT _def___
 | 
			
		||||
#define MODS_LAYERS_EXP_EXT _def___
 | 
			
		||||
#define MODS_LAYERS_NAV_EXP_EXT _def___
 | 
			
		||||
#define MIRYOKU_EXP_EXT _def___
 | 
			
		||||
#define MIRYOKU_TR_EXP_EXT _def___
 | 
			
		||||
#define MIRYOKU_LTR_EXP_EXT _def___
 | 
			
		||||
#define MIRYOKU_TR_LTR_EXP_EXT _def___
 | 
			
		||||
#define TH_LTR_EXP_EXT _def___
 | 
			
		||||
#define HD_DASH_EXP_EXT _def___
 | 
			
		||||
#define HD_EXP_EXT _def___
 | 
			
		||||
#define HDA_EXP_EXT _def___
 | 
			
		||||
#define HD_SIMPLE_EXP_EXT _def___
 | 
			
		||||
// for the function layers
 | 
			
		||||
#define COMBO_EXP_EXT _COMBO___
 | 
			
		||||
#define COMBO2_EXT _COMBO2___
 | 
			
		||||
#define MEDIA_THUMBS_EXP_EXT _def___
 | 
			
		||||
#define MOUSE_THUMBS_EXP_EXT _def___
 | 
			
		||||
#define KEYPAD_THUMBS_EXP_EXT _def___
 | 
			
		||||
#define SYMB_THUMBS_EXP_EXT _def___
 | 
			
		||||
							
								
								
									
										80
									
								
								users/ericgebhart/layers/toprows.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								users/ericgebhart/layers/toprows.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,80 @@
 | 
			
		|||
/*
 | 
			
		||||
  Copyright 2018-2022 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 "keycodes.h"
 | 
			
		||||
/*******************************************************************/
 | 
			
		||||
/* A Top Rows layer.  Pick your parts.  Bepo and Qwerty            */
 | 
			
		||||
/*                                                                 */
 | 
			
		||||
/* This is, to me, a stop gap layer. If I need symbols, numbers or */
 | 
			
		||||
/* function keys these rows are nicely predictable to most people. */
 | 
			
		||||
/* I currently use the beakl number row with regular symbols.      */
 | 
			
		||||
/* I never use function keys for anything.                         */
 | 
			
		||||
/*******************************************************************/
 | 
			
		||||
// Kinesis function key row. I don't use them. but might as well define them.
 | 
			
		||||
#define ___KINTFUNC_L___ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8
 | 
			
		||||
// #define ___KINTFUNC_RIGHT___ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_FN0, RESET
 | 
			
		||||
#define ___KINTFUNC_R___ KC_F9, KC_F10, KC_F11, KC_F12, XXX, XXX, XXX, XXX, RESET
 | 
			
		||||
 | 
			
		||||
// A TOPROWS Layer.
 | 
			
		||||
// set it how you like it, if you like it.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//#define ___MODS_ROW___ ___OS_MODS_L___, ___, ___SML_MODS_R___
 | 
			
		||||
#define ___MODS_ROW___ ___SML_MODS_L___, ___, ___OS_MODS_R___
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* TOPROWS Layer chunk                                                          */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
// These rows have already been langed, at their creation.
 | 
			
		||||
// altogether in a chunk.
 | 
			
		||||
#define CARTE_TOPROWS                           \
 | 
			
		||||
  carte_de_map("   !@#$%  ^&*()",               \
 | 
			
		||||
               "   40123  76598",               \
 | 
			
		||||
               " F1-    --    -F12")
 | 
			
		||||
 | 
			
		||||
#define ___TOPROWS_3x10___                      \
 | 
			
		||||
  ___10_SYMBOLS___,                             \
 | 
			
		||||
    ___10_NUMBERS_BEAKL15___,                   \
 | 
			
		||||
    ___10_FUNCS___
 | 
			
		||||
 | 
			
		||||
#define CARTE_TOPROWS_MOD                       \
 | 
			
		||||
  carte_de_map("   !@#$%  ^&*()",               \
 | 
			
		||||
               "   40123  76598",               \
 | 
			
		||||
               "  SLMods  OSMods")
 | 
			
		||||
 | 
			
		||||
#define ___TOPROWS_MOD_3x10___                  \
 | 
			
		||||
  ___10_SYMBOLS___,                             \
 | 
			
		||||
    ___10_NUMBERS_BEAKL15___,                   \
 | 
			
		||||
    ___MODS_ROW___
 | 
			
		||||
 | 
			
		||||
#define CARTE_TOPROWS_BKL19                     \
 | 
			
		||||
  carte_de_map("   !@#$%  ^&*()",               \
 | 
			
		||||
               "   32104  76598",               \
 | 
			
		||||
               " F1-    --    -F12")
 | 
			
		||||
 | 
			
		||||
#define ___TOPROWS_BKL19_3x10___                \
 | 
			
		||||
  ___10_SYMBOLS___,                             \
 | 
			
		||||
    ___10_NUMBERS_BEAKL19___,                   \
 | 
			
		||||
    ___10_FUNCS___
 | 
			
		||||
 | 
			
		||||
#define CARTE_RAISE                             \
 | 
			
		||||
  carte_de_map("   !@#$%  ^&*()",               \
 | 
			
		||||
               "   12345  67890",               \
 | 
			
		||||
               " F1-    --    -F12")
 | 
			
		||||
 | 
			
		||||
#define ___RAISE_3x10___                        \
 | 
			
		||||
  ___10_SYMBOLS___,                             \
 | 
			
		||||
    ___10_NUMBERS___,                           \
 | 
			
		||||
    ___10_FUNCS___
 | 
			
		||||
							
								
								
									
										125
									
								
								users/ericgebhart/layers/utility.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								users/ericgebhart/layers/utility.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,125 @@
 | 
			
		|||
/*
 | 
			
		||||
  Copyright 2018-2022 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/>.
 | 
			
		||||
*/
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* MEDIA  - Mute, Vol, play, pause, stop, next, prev, etc.   */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
#define ___PRV_PLAY_NXT_STOP___ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP
 | 
			
		||||
#define ___VDN_MUTE_VUP___ KC_VOLD, KC_MUTE, KC_VOLU
 | 
			
		||||
 | 
			
		||||
#define ___PRV_VDN_VUP_NXT___ KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
 | 
			
		||||
#define ___STOP_PLAY_MUTE___ KC_MSTP, KC_MPLY, KC_MUTE
 | 
			
		||||
 | 
			
		||||
#define ___MUTE_PRV_PLAY_NXT_STOP___  KC_MUTE,  KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP
 | 
			
		||||
#define ___MUTE_PLAY_STOP___  KC_MUTE,  KC_MPLY,  KC_MSTP
 | 
			
		||||
 | 
			
		||||
#define CARTE_MEDIA                      \
 | 
			
		||||
  carte_de_map(" ",                      \
 | 
			
		||||
               "  < vdn vup >",          \
 | 
			
		||||
               "  stp play mute")
 | 
			
		||||
 | 
			
		||||
// miryoku, to be used with stop play mute on thumbs. - MEDIA thumbs.
 | 
			
		||||
#define ___MEDIA_3x10___                        \
 | 
			
		||||
  ___5___, ___5___,                             \
 | 
			
		||||
    ___5___, ___, ___PRV_VDN_VUP_NXT___,        \
 | 
			
		||||
    ___5___, ___5___
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* RGB  - Control those lights.                                                 */
 | 
			
		||||
 | 
			
		||||
/* ___, HUE SAT_INT MOD (UP),            | */
 | 
			
		||||
/* ___, HUE SAT INT MOD (DOWN), RGB_TOG  | P_B_R_SW_SN___, ___ */
 | 
			
		||||
/* ___6___,                              | ___, ___RGB_KXGT___, ___ */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
// RGB FUNCTION Keysets
 | 
			
		||||
// RGB row for the _FN layer from the redo of the default keymap.c
 | 
			
		||||
#define ___RGB_HUE_SAT_INT_UP___ RGB_HUI, RGB_SAI, RGB_VAI, RGB_RMOD
 | 
			
		||||
#define ___RGB_HUE_SAT_INT_DN___ RGB_HUD, RGB_SAD, RGB_VAD, RGB_MOD
 | 
			
		||||
#define ___RGB_MODE_PRV_NXT___   RGB_RMOD, RGB_MOD
 | 
			
		||||
#define ___RGB_TOGGLE___         RGB_TOG
 | 
			
		||||
#define ___RGB_P_B_R_SW_SN___    RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN
 | 
			
		||||
#define ___RGB_KXGT___           RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T
 | 
			
		||||
 | 
			
		||||
/// An RGB Layer
 | 
			
		||||
#define ___10_RGB_1___ ___RGB_HUE_SAT_INT_UP___, ___,     ___5___
 | 
			
		||||
#define ___10_RGB_2___ ___RGB_HUE_SAT_INT_DN___, RGB_TOG, ___RGB_P_B_R_SW_SN___
 | 
			
		||||
#define ___10_RGB_3___ ___5___,                                ___, ___RGB_KXGT___
 | 
			
		||||
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* The RGB LAYER Chunk                                                          */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
#define ___RGB_3x10___ ___10_RGB_1___, ___10_RGB_2___, ___10_RGB_3___
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* ADJUST - Miscellaneous Melange.                                              */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
// For an Adjust layer. Like RBB with audio, flash, etc.
 | 
			
		||||
#define ___ADJUST_L1___ ___RGB_HUE_SAT_INT_UP___,       RGB_TOG
 | 
			
		||||
#define ___ADJUST_L2___ MU_TOG, CK_TOGG, AU_ON, AU_OFF, CG_NORM
 | 
			
		||||
#define ___ADJUST_L3___ ___RGB_HUE_SAT_INT_DN___,       KC_RGB_T
 | 
			
		||||
 | 
			
		||||
#define ___ADJUST_R1___  ___, KC_MAKE, VRSN, MG_NKRO, KC_RESET
 | 
			
		||||
#define ___ADJUST_R2___  EEP_RST, ___PRV_PLAY_NXT_STOP___,
 | 
			
		||||
#define ___ADJUST_R3___  MG_NKRO, ___VDN_MUTE_VUP___, RGB_IDL
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* The Adjust LAYER Chunks                                                      */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
#define ___ADJUST_3x10___  ___ADJUST_L1___, ___ADJUST_R1___,    \
 | 
			
		||||
    ___ADJUST_L2___, ___ADJUST_R2___,                           \
 | 
			
		||||
    ___ADJUST_L3___, ___ADJUST_R3___
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
/* LAYERS - Define a base layer, switch to any layer. Get around. Experiment.   */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/* Base Layers on the left hand,                                                */
 | 
			
		||||
/* transient layers on the right. Centered on the home region.                  */
 | 
			
		||||
/* A good place to attach an experimental layer.                                */
 | 
			
		||||
/*                                                                              */
 | 
			
		||||
/********************************************************************************/
 | 
			
		||||
//  Base Layers
 | 
			
		||||
// this was kc_dvorak et al. But since its configurable as to who would be here
 | 
			
		||||
// that no longer makes sense. So next keys for locale and base layer. and a set to
 | 
			
		||||
// make it permanent. Cycling of layers is based on current locale.
 | 
			
		||||
#define ___BASE_LAYERS___ ___, KC_SET_BASE, KC_NEXT_BASE_LAYER, KC_NEXT_LOCALE, ___
 | 
			
		||||
 | 
			
		||||
// transient layers.
 | 
			
		||||
#define ___5_LAYERS_T___     ___, MO(_NAV),  MO_SYMB,  MO_KEYPAD,  MO_TOPROWS
 | 
			
		||||
#ifdef SECOND_LOCALE
 | 
			
		||||
#undef LANG_IS
 | 
			
		||||
#define LANG_IS SECOND_LOCALE
 | 
			
		||||
#define ___5_LAYERS_T_BP___  ___, MO(_NAV),  MO_SYMB,  MO_KEYPAD,  MO_TOPROWS
 | 
			
		||||
#undef LANG_IS
 | 
			
		||||
#define LANG_IS DEFAULT_LANG
 | 
			
		||||
#else
 | 
			
		||||
#define ___5_LAYERS_T_BP___  ___, MO(_NAV),  ___3___
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define ___5_LAYERS_T_CTL___ ___, MO_RGB, ___, ___, MO_ADJUST
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define CARTE_LAYERS                            \
 | 
			
		||||
  carte_de_map("          |Nv S K TR",          \
 | 
			
		||||
               "  EE Bs Ln|Nv S K TR",          \
 | 
			
		||||
               " ")
 | 
			
		||||
 | 
			
		||||
/// A Layers Layer
 | 
			
		||||
#define ___LAYERS_3x10___                       \
 | 
			
		||||
  ___5___,            ___5_LAYERS_T_BP___,      \
 | 
			
		||||
    ___BASE_LAYERS___,  ___5_LAYERS_T___,       \
 | 
			
		||||
    ___5___,            ___5_LAYERS_T_CTL___
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue