aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2016-09-25 16:45:08 -0400
committerGitHub <noreply@github.com>2016-09-25 16:45:08 -0400
commitf24b3f4589720b796a0184b59e7b7b6d639ef336 (patch)
tree40c5eb6ee769bd1beff4ad4311db823b1502d6e1
parenta64840613f8cbc4aa2057ade1f28c1e9e0636487 (diff)
parent77099c777aa34e07548f64928d5d233c4cf35a5e (diff)
downloadqmk_firmware-f24b3f4589720b796a0184b59e7b7b6d639ef336.tar.gz
qmk_firmware-f24b3f4589720b796a0184b59e7b7b6d639ef336.zip
Merge pull request #785 from jcowgar/master
Added Jeremy’s Atreus Layout
-rw-r--r--keyboards/atreus/keymaps/jeremy/keymap.c66
-rw-r--r--keyboards/atreus/keymaps/jeremy/readme.md45
2 files changed, 111 insertions, 0 deletions
diff --git a/keyboards/atreus/keymaps/jeremy/keymap.c b/keyboards/atreus/keymaps/jeremy/keymap.c
new file mode 100644
index 000000000..90ec6f904
--- /dev/null
+++ b/keyboards/atreus/keymaps/jeremy/keymap.c
@@ -0,0 +1,66 @@
1// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
2
3#include "atreus.h"
4#include "action_layer.h"
5#include "keymap_colemak.h"
6
7#define PREVENT_STUCK_MODIFIERS
8
9// Each layer gets a name for readability, which is then used in the keymap matrix below.
10#define ALPH 0
11#define NUMS 1
12#define CURS 2
13#define SYMB 3
14#define FKEY 4
15
16// Some handy macros to keep the keymaps clean and easier to maintain
17#define KM_SAVE LGUI(CM_S)
18#define KM_CLSE LGUI(CM_W)
19#define KM_OPEN LGUI(CM_O)
20
21#define KM_COPY LGUI(KC_C)
22#define KM_CUT LGUI(KC_X)
23#define KM_PAST LGUI(KC_V)
24#define KM_UNDO LGUI(KC_Z)
25#define KM_REDO LGUI(LSFT(KC_Z))
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28[ALPH] = {
29 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P},
30 {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},
31 {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH},
32 {KC_LCTL, KC_ESC, KC_NO, KC_LSFT, KC_SPC, KC_LGUI, KC_ENT, KC_RSFT, KC_NO, KC_ESC, KC_RCTL}
33},
34[NUMS] = {
35 {KC_TRNS, KC_TRNS, KC_TRNS, KC_ASTR, KC_SLSH, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_SLSH},
36 {KC_TRNS, KC_TRNS, KC_EQL, KC_PLUS, KC_MINS, KC_TRNS, KC_LPRN, KC_4, KC_5, KC_6, KC_ASTR},
37 {KC_TRNS, KC_TRNS, KC_DOT, KC_COMM, CM_SCLN, KC_TRNS, KC_RPRN, KC_1, KC_2, KC_3, KC_MINS},
38 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_EQL, KC_PLUS}
39},
40[CURS] = {
41 {KC_TRNS, KC_BSPC, KC_UP, KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KM_SAVE, KC_TRNS, KM_OPEN, KC_TRNS},
42 {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KM_UNDO, KC_LALT, KC_TRNS, KC_LGUI, KC_TRNS},
43 {KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_MPLY, KM_COPY, KM_REDO, KM_CLSE, KC_TRNS, KC_TRNS, KC_TRNS},
44 {KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TAB, KM_CUT, KM_PAST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
45},
46[SYMB] = {
47 {KC_BSLS, KC_EXLM, KC_LABK, KC_RABK, CM_COLN, KC_TRNS, KC_UNDS, KC_DLR, KC_QUES, KC_TRNS, KC_PERC},
48 {KC_AT, KC_AMPR, KC_LPRN, KC_RPRN, CM_SCLN, KC_TRNS, KC_COMM, KC_DOT, KC_QUOT, KC_TRNS, KC_TILD},
49 {KC_HASH, KC_PIPE, KC_LCBR, KC_RCBR, KC_SLSH, KC_TRNS, KC_TRNS, KC_GRV, KC_DQT, KC_TRNS, KC_CIRC},
50 {KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
51},
52[FKEY] = {
53 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12},
54 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8},
55 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4},
56 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
57}};
58
59const uint16_t PROGMEM fn_actions[] = {};
60
61const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
62{
63 switch(id) {}
64
65 return MACRO_NONE;
66};
diff --git a/keyboards/atreus/keymaps/jeremy/readme.md b/keyboards/atreus/keymaps/jeremy/readme.md
new file mode 100644
index 000000000..df0179a8e
--- /dev/null
+++ b/keyboards/atreus/keymaps/jeremy/readme.md
@@ -0,0 +1,45 @@
1Jeremy's Atreus Key Mapping
2===========================
3
4I 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.
5
6My 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).
7
8## Main Layers
9
101. [Letters](http://www.keyboard-layout-editor.com/#/gists/6861cb9df09ce78efaddf8aa7471e3ac)
112. [Symbols](http://www.keyboard-layout-editor.com/#/gists/8956a18b508a78e93b9c38ec3fcccaa5)
123. [Navigation](http://www.keyboard-layout-editor.com/#/gists/6ed492b714a7f54eb1c5de09b87fd8c4)
134. [Numbers](http://www.keyboard-layout-editor.com/#/gists/399ceb5624e8388e48a3a5eacac8e973)
145. [Function Keys](http://www.keyboard-layout-editor.com/#/gists/7fd7dc24c7048316f3724b1893c64e89)
15
16## Notes
17
18### General
19
20Some 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.
21
22I 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.
23
24### Symbol Layer
25
261. I placed characters that deal with an if statement close together, such as !, & and |.
272. All matching brace/bracket characters are together as well.
28
29### Number Layer
30
311. Everything I did was a compromise when trying to mimic a ten-key. I did the best I could.
322. 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.
333. Parentheses were added for typing on the calculator.
34
35### Cursor Layer
36
371. It includes basic audio controls because they didn't really fit anywhere else
382. 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.
393. It contains the backspace and delete keys right on top of the left and right arrows.
404. 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.
41
42### Function Layer
43
441. 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.
452. 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.