Merge pull request #785 from jcowgar/master
Added Jeremy’s Atreus Layout
This commit is contained in:
		
						commit
						f24b3f4589
					
				
					 2 changed files with 111 additions and 0 deletions
				
			
		
							
								
								
									
										66
									
								
								keyboards/atreus/keymaps/jeremy/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								keyboards/atreus/keymaps/jeremy/keymap.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,66 @@ | |||
| // This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
 | ||||
| 
 | ||||
| #include "atreus.h" | ||||
| #include "action_layer.h" | ||||
| #include "keymap_colemak.h" | ||||
| 
 | ||||
| #define PREVENT_STUCK_MODIFIERS | ||||
| 
 | ||||
| // Each layer gets a name for readability, which is then used in the keymap matrix below.
 | ||||
| #define ALPH 0 | ||||
| #define NUMS 1 | ||||
| #define CURS 2 | ||||
| #define SYMB 3 | ||||
| #define FKEY 4 | ||||
| 
 | ||||
| // Some handy macros to keep the keymaps clean and easier to maintain
 | ||||
| #define KM_SAVE LGUI(CM_S) | ||||
| #define KM_CLSE LGUI(CM_W) | ||||
| #define KM_OPEN LGUI(CM_O) | ||||
| 
 | ||||
| #define KM_COPY LGUI(KC_C) | ||||
| #define KM_CUT  LGUI(KC_X) | ||||
| #define KM_PAST LGUI(KC_V) | ||||
| #define KM_UNDO LGUI(KC_Z) | ||||
| #define KM_REDO LGUI(LSFT(KC_Z)) | ||||
| 
 | ||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| [ALPH] = { | ||||
|   {KC_Q,    KC_W,           KC_E,           KC_R,    KC_T,    KC_TRNS, KC_Y,    KC_U,    KC_I,           KC_O,           KC_P}, | ||||
|   {KC_A,    LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F,    KC_G,    KC_TRNS, KC_H,    KC_J,    LT(CURS, KC_K), LT(SYMB, KC_L), KC_SCLN}, | ||||
|   {KC_Z,    KC_X,           KC_C,           KC_V,    KC_B,    KC_LALT, KC_N,    KC_M,    KC_COMM,        KC_DOT,         KC_SLSH}, | ||||
|   {KC_LCTL, KC_ESC,         KC_NO,          KC_LSFT, KC_SPC,  KC_LGUI, KC_ENT,  KC_RSFT, KC_NO,          KC_ESC,         KC_RCTL} | ||||
| }, | ||||
| [NUMS] = { | ||||
|   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_ASTR, KC_SLSH, KC_TRNS, KC_TRNS, KC_7,    KC_8,           KC_9,           KC_SLSH}, | ||||
|   {KC_TRNS, KC_TRNS,        KC_EQL,         KC_PLUS, KC_MINS, KC_TRNS, KC_LPRN, KC_4,    KC_5,           KC_6,           KC_ASTR}, | ||||
|   {KC_TRNS, KC_TRNS,        KC_DOT,         KC_COMM, CM_SCLN, KC_TRNS, KC_RPRN, KC_1,    KC_2,           KC_3,           KC_MINS}, | ||||
|   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0,    KC_DOT,         KC_EQL,         KC_PLUS} | ||||
| }, | ||||
| [CURS] = { | ||||
|   {KC_TRNS, KC_BSPC,        KC_UP,          KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KM_SAVE, KC_TRNS,        KM_OPEN,        KC_TRNS}, | ||||
|   {KC_TRNS, KC_LEFT,        KC_DOWN,        KC_RGHT, KC_PGDN, KC_TRNS, KM_UNDO, KC_LALT, KC_TRNS,        KC_LGUI,        KC_TRNS}, | ||||
|   {KC_TRNS, KC_VOLD,        KC_MUTE,        KC_VOLU, KC_MPLY, KM_COPY, KM_REDO, KM_CLSE, KC_TRNS,        KC_TRNS,        KC_TRNS}, | ||||
|   {KC_TRNS, KC_TRNS,        RESET,          KC_TRNS, KC_TAB,  KM_CUT,  KM_PAST, KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS} | ||||
| }, | ||||
| [SYMB] = { | ||||
|   {KC_BSLS, KC_EXLM,        KC_LABK,        KC_RABK, CM_COLN, KC_TRNS, KC_UNDS, KC_DLR,  KC_QUES,       KC_TRNS,         KC_PERC}, | ||||
|   {KC_AT,   KC_AMPR,        KC_LPRN,        KC_RPRN, CM_SCLN, KC_TRNS, KC_COMM, KC_DOT,  KC_QUOT,       KC_TRNS,         KC_TILD}, | ||||
|   {KC_HASH, KC_PIPE,        KC_LCBR,        KC_RCBR, KC_SLSH, KC_TRNS, KC_TRNS, KC_GRV,  KC_DQT,        KC_TRNS,         KC_CIRC}, | ||||
|   {KC_TRNS, KC_TRNS,        KC_LBRC,        KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,       KC_TRNS,         KC_TRNS} | ||||
| }, | ||||
| [FKEY] = { | ||||
|   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9,   KC_F10,        KC_F11,          KC_F12}, | ||||
|   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5,   KC_F6,         KC_F7,           KC_F8}, | ||||
|   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1,   KC_F2,         KC_F3,           KC_F4}, | ||||
|   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,       KC_TRNS,         KC_TRNS} | ||||
| }}; | ||||
| 
 | ||||
| const uint16_t PROGMEM fn_actions[] = {}; | ||||
| 
 | ||||
| const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||||
| { | ||||
|   switch(id) {} | ||||
| 
 | ||||
|   return MACRO_NONE; | ||||
| }; | ||||
							
								
								
									
										45
									
								
								keyboards/atreus/keymaps/jeremy/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								keyboards/atreus/keymaps/jeremy/readme.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | |||
| Jeremy's Atreus Key Mapping | ||||
| =========================== | ||||
| 
 | ||||
| I am a programmer by trade that suffers from the beginning stages of RSI. As a programmer I use letters, symbols and cursor navigation most often. To prevent strange finger gymnastics, I wrote a script to rank which non-letter characters occurred in my primary source projects most often and then placed these characters in the easiest to reach locations, for me. I made heavy use of momentary layer toggling. | ||||
| 
 | ||||
| My layout is also geared toward a software based Colemak mapping. I would like it to be hardware, but I use my Laptop on the go frequently and thus my laptop keyboard. I have moved the keycaps to reflect the Colemak layout. My laptop is a MacBook Pro (2015). | ||||
| 
 | ||||
| ## Main Layers | ||||
| 
 | ||||
| 1. [Letters](http://www.keyboard-layout-editor.com/#/gists/6861cb9df09ce78efaddf8aa7471e3ac) | ||||
| 2. [Symbols](http://www.keyboard-layout-editor.com/#/gists/8956a18b508a78e93b9c38ec3fcccaa5) | ||||
| 3. [Navigation](http://www.keyboard-layout-editor.com/#/gists/6ed492b714a7f54eb1c5de09b87fd8c4) | ||||
| 4. [Numbers](http://www.keyboard-layout-editor.com/#/gists/399ceb5624e8388e48a3a5eacac8e973) | ||||
| 5. [Function Keys](http://www.keyboard-layout-editor.com/#/gists/7fd7dc24c7048316f3724b1893c64e89) | ||||
| 
 | ||||
| ## Notes | ||||
| 
 | ||||
| ### General | ||||
| 
 | ||||
| Some characters can be accessed multiple ways. This was done because you may be in a given layer, such as numbers, where when doing math, you may need quick access to the parentheses characters for grouping. This prevents some layer switching. | ||||
| 
 | ||||
| I own an ErgoDox and plan on porting this as a base layer, then using the extra keys the ErgoDox provides accordingly. My goal, though, is to be fully functional on this base setup and build everything into muscle memory. | ||||
| 
 | ||||
| ### Symbol Layer | ||||
| 
 | ||||
| 1. I placed characters that deal with an if statement close together, such as !, & and |. | ||||
| 2. All matching brace/bracket characters are together as well. | ||||
| 
 | ||||
| ### Number Layer | ||||
| 
 | ||||
| 1. Everything I did was a compromise when trying to mimic a ten-key. I did the best I could. | ||||
| 2. Operators are duplicated on the right and left. I do not find it comfortable to use my pinky much, so I tend to use my left hand for +, -, * and / but those were also placed on the right hand to mimic the ten-key. | ||||
| 3. Parentheses were added for typing on the calculator. | ||||
| 
 | ||||
| ### Cursor Layer | ||||
| 
 | ||||
| 1. It includes basic audio controls because they didn't really fit anywhere else | ||||
| 2. It contains basic file manipulation. I'm not sure that was a good idea. I do save all the time, but Cmd+S isn't exactly hard. | ||||
| 3. It contains the backspace and delete keys right on top of the left and right arrows. | ||||
| 4. Cmd and Opt keys are duplicated. This makes for very easy navigation, for example on a Mac, Opt+Left/Right moves word by word. It also backspaces or deletes word by word. | ||||
| 
 | ||||
| ### Function Layer | ||||
| 
 | ||||
| 1. Almost all other layers I saw grouped the F keys into a bunch of three. This only gives nine function keys in order if you attempt to stay as close to the home row as possible. I went with a group of four, which gives all twelve function keys to the right hand, one row below and above the home row. | ||||
| 2. I duplicated the Command and Option keys the same as on the cursor layer. This makes it dead easy to hit modified function keys such as Cmd+Opt+F5. It's also easy to toss in a Shift modifier in there with the right thumb since the bottom row is preserved. | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jack Humbert
						Jack Humbert