aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeeBak Kim <jeebak.kim@gmail.com>2016-08-26 15:05:51 -0700
committerJeeBak Kim <jeebak.kim@gmail.com>2016-08-26 22:18:40 -0700
commit5fe883e74b7f8a1265c2069d16e8dcbd25fab18b (patch)
tree32a0a99d87b9d165247474a95e1eef548e797042
parentff0e0ee4595cb6d9cfa5a742c58b8f7705d9a3f3 (diff)
downloadqmk_firmware-5fe883e74b7f8a1265c2069d16e8dcbd25fab18b.tar.gz
qmk_firmware-5fe883e74b7f8a1265c2069d16e8dcbd25fab18b.zip
[tv44] Port jeebak's planck keymap to tv44
-rw-r--r--keyboards/tv44/keymaps/jeebak/config.h17
-rw-r--r--keyboards/tv44/keymaps/jeebak/keymap.c460
-rw-r--r--keyboards/tv44/keymaps/jeebak/readme.md130
3 files changed, 538 insertions, 69 deletions
diff --git a/keyboards/tv44/keymaps/jeebak/config.h b/keyboards/tv44/keymaps/jeebak/config.h
index df06a2620..a59ef2b70 100644
--- a/keyboards/tv44/keymaps/jeebak/config.h
+++ b/keyboards/tv44/keymaps/jeebak/config.h
@@ -3,6 +3,19 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6// place overrides here 6/**
7 *TV44 keymap definition macro
8 */
9#define KEYMAP_TV44( \
10 K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \
11 K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \
12 K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \
13 K37, K38, K39, K40, K41, K42, K43, K44 \
14) { \
15 { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \
16 { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \
17 { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \
18 { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \
19}
7 20
8#endif \ No newline at end of file 21#endif
diff --git a/keyboards/tv44/keymaps/jeebak/keymap.c b/keyboards/tv44/keymaps/jeebak/keymap.c
index f3f989f2d..1bb1015c3 100644
--- a/keyboards/tv44/keymaps/jeebak/keymap.c
+++ b/keyboards/tv44/keymaps/jeebak/keymap.c
@@ -8,65 +8,281 @@ extern keymap_config_t keymap_config;
8// The underscores don't mean anything - you can have a layer called STUFF or any other name. 8// The underscores don't mean anything - you can have a layer called STUFF or any other name.
9// Layer names don't all need to be of the same length, obviously, and you can also skip them 9// Layer names don't all need to be of the same length, obviously, and you can also skip them
10// entirely and just use numbers. 10// entirely and just use numbers.
11#define _QWERTY 0
12#define _COLEMAK 1
13#define _DVORAK 2
14#define _LOWER 3
15#define _RAISE 4
16#define _PLOVER 5
17#define _TOUCHCURSOR 6
18#define _MOUSECURSOR 7
19#define _ADJUST 16
11 20
12#define _QW 0 21// Keycodes
13#define _DV 1 22enum planck_keycodes {
14#define _CM 2 23 QWERTY = SAFE_RANGE,
15#define _L1 3 24 COLEMAK,
16#define _L2 4 25 DVORAK,
17#define _L3 5 26 PLOVER,
27 LOWER,
28 RAISE,
29 BACKLIT,
30 EXT_PLV
31};
18 32
19// Macro name shortcuts 33enum macro_keycodes {
20#define QWERTY M(_QW) 34 KC_ALT_TAB,
21#define DVORAK M(_DV) 35 KC_CMD_TAB,
22#define COLEMAK M(_CM) 36 KC_CTL_TAB,
37 KC_CMD_SLSH,
38 KC_AG_FIND,
39 KC_AG_AGAIN,
40 KC_AG_UNDO,
41 KC_AG_CUT,
42 KC_AG_COPY,
43 KC_AG_PASTE,
44 KC_AG_DESK_L,
45 KC_AG_DESK_R,
46 KC_AG_TAB_C,
47 KC_AG_TAB_N,
48 KC_AG_TAB_R,
49};
23 50
24// Fillers to make layering more clear 51// Fillers to make layering more clear
25#define _______ KC_TRNS 52#define _______ KC_TRNS
26#define XXXXXXX KC_NO 53#define XXXXXXX KC_NO
27 54
55// Custom macros
56#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
57#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
58#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper
59#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI
60#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt
61// Requires KC_TRNS/_______ for the trigger key in the destination layer
62#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
63#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
64#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab
65#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab
66#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab
67#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility)
68#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings
69#define AG_AGAIN M(KC_AG_AGAIN)
70#define AG_UNDO M(KC_AG_UNDO)
71#define AG_CUT M(KC_AG_CUT)
72#define AG_COPY M(KC_AG_COPY)
73#define AG_PASTE M(KC_AG_PASTE)
74#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and
75#define AG_D_R M(KC_AG_DESK_R) // Right
76#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close,
77#define AG_T_N M(KC_AG_TAB_N) // Tab New, and
78#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed
28 79
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 80const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 [_QW] = { /* Qwerty */
31 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
32 {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_L1) },
33 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_F, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) },
34 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
35 },
36 [_DV] = { /* Dvorak */
37 {KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC },
38 {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1) },
39 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2) },
40 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
41 },
42 [_CM] = { /* Colemak */
43 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
44 {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, MO(_L1) },
45 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) },
46 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) }
47 },
48 [_L1] = { /* LAYER 1 */
49 {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
50 {_______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ },
51 {_______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT },
52 {_______, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ }
53 },
54 [_L2] = { /* LAYER 2 */
55 {_______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______ },
56 {KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_4, KC_5, KC_6, KC_VOLU, KC_ENT },
57 {_______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______ },
58 {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ }
59 },
60 [_L3] = { /* LAYER 3 */
61 {_______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______ },
62 {KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______ },
63 {KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F9, KC_F10, KC_F11, KC_F12, _______ },
64 {_______, KC_LSFT, KC_B, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_C, _______, _______, XXXXXXX, _______ }
65 }
66};
67 81
68const uint16_t PROGMEM fn_actions[] = { 82/* Qwerty
83 *
84 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
85 * |Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
86 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
87 * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
88 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
89 * | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/Ent |
90 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
91 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
92 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
93 */
94[_QWERTY] = KEYMAP_TV44(
95/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
96 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
97/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
98 CTL_ESC , KC_A, KC_S,LT_MC(KC_D), KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO ,
99/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
100 KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
101/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
102 KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLU , KC_MPLY ),
103/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
104
105/* Colemak
106 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
107 * |Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp |
108 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
109 * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " |
110 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
111 * | Shift | Z | X | C | V | B | K | M | , | . | / | Sft/Ent |
112 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
113 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
114 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
115 */
116[_COLEMAK] = KEYMAP_TV44(
117/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
118 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
119/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
120 CTL_ESC , KC_A, KC_R,LT_MC(KC_S), KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT ,
121/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
122 KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT ,
123/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
124 KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLU , KC_MPLY ),
125/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
126
127/* Dvorak
128 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
129 * |Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp |
130 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
131 * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / |
132 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
133 * | Shift | ; | Q | J | K | X | B | M | W | V | Z | Sft/Ent |
134 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
135 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
136 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
137 */
138[_DVORAK] = KEYMAP_TV44(
139/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
140 HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC ,
141/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
142 CTL_ESC , KC_A, KC_O,LT_MC(KC_E), KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH ,
143/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
144 KC_LSFT , KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT ,
145/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
146 KC_LALT , KC_LGUI , LOWER , LT_TC , LT_TC , RAISE , KC_VOLU , KC_MPLY ),
147/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
148
149/* Lower
150 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
151 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
152 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
153 * | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | "|" |
154 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
155 * | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
156 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
157 * | Brite | | | | | | Vol- | Mute |
158 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
159 */
160[_LOWER] = KEYMAP_TV44(
161/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
162 KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC ,
163/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
164 KC_LBRC , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE ,
165/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
166 KC_RBRC , KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS ,
167/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
168 BACKLIT , _______ , _______ , _______ , _______ , _______ , KC_VOLD , KC_MUTE ),
169/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
170
171/* Raise
172 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
173 * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
174 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
175 * | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | "|" |
176 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
177 * | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
178 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
179 * | Brite | | | | | | Vol- | Mute |
180 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
181 */
182[_RAISE] = KEYMAP_TV44(
183/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
184 KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
185/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
186 KC_DLR , KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE ,
187/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
188 KC_EQL , KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS ,
189/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
190 BACKLIT , _______ , _______ , _______ , _______ , _______ , KC_VOLD , KC_MUTE ),
191/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
192
193/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
194 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
195 * | AltTab |CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
196 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
197 * | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L| Desk_R |
198 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
199 * | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
200 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
201 * | | | | | | | | |
202 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
203 *
204 * The KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND, and KC_AGAIN keycodes don't
205 * seem to work on Mac. Presumably they'll work under Windows.
206 */
69 207
208[_TOUCHCURSOR] = KEYMAP_TV44(
209/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
210 ALT_TAB,CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______ ,
211/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
212 _______ ,KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R ,
213/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
214 _______ ,AG_UNDO, AG_CUT, AG_COPY,AG_PASTE, KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R,CMD_SLSH, _______ ,
215/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
216 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ),
217/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
218
219/* Mouse Layer
220 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
221 * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
222 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
223 * | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
224 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
225 * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
226 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
227 * | | | | | | | | |
228 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
229 */
230
231[_MOUSECURSOR] = KEYMAP_TV44(
232/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
233 _______,_______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______ ,
234/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
235 _______ ,KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5 ,
236/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
237 _______ ,_______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______ ,
238/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
239 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ),
240/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
241
242/* Plover layer (http://opensteno.org)
243 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
244 * | # | # | # | # | # | # | # | # | # | # | # | # |
245 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
246 * | | S | T | P | H | * | * | F | P | L | T | D |
247 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
248 * | TogOut | S | K | W | R | * | * | R | B | G | S | Z |
249 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
250 * | Exit | A | O | | | E | U | |
251 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
252 */
253
254[_PLOVER] = KEYMAP_TV44(
255/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
256 KC_1 , KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
257/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
258 XXXXXXX , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC ,
259/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
260 XXXXXXX , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT ,
261/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
262 EXT_PLV , KC_C , KC_V , XXXXXXX , XXXXXXX , KC_N , KC_M , XXXXXXX ),
263/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
264
265/* Adjust (Lower + Raise)
266 * ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
267 * | | | | | | | | | | | | Del |
268 * |---------`------`------`------`------`------`------`------`------`------`------`-------------|
269 * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
270 * |----------`------`------`------`------`------`------`------`------`------`------`------------|
271 * | | | | | | | | | | | | |
272 * |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
273 * | | | | | | | | Reset |
274 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
275 */
276[_ADJUST] = KEYMAP_TV44(
277/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
278 _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
279/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
280 _______ ,_______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______ ,
281/*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/
282 _______ ,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
283/*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/
284 _______ , _______ , _______ , _______ , _______ , _______ , _______ , RESET )
285/*`-----------+---------------+---------+-------^^^------+-------^^^-------+---------+-----------------+--------------'*/
70}; 286};
71 287
72void persistant_default_layer_set(uint16_t default_layer) { 288void persistant_default_layer_set(uint16_t default_layer) {
@@ -74,24 +290,136 @@ void persistant_default_layer_set(uint16_t default_layer) {
74 default_layer_set(default_layer); 290 default_layer_set(default_layer);
75} 291}
76 292
293bool process_record_user(uint16_t keycode, keyrecord_t *record) {
294 switch (keycode) {
295 case QWERTY:
296 if (record->event.pressed) {
297 default_layer_set(1UL<<_QWERTY);
298 }
299 return false;
300 break;
301 case COLEMAK:
302 if (record->event.pressed) {
303 default_layer_set(1UL<<_COLEMAK);
304 }
305 return false;
306 break;
307 case DVORAK:
308 if (record->event.pressed) {
309 default_layer_set(1UL<<_DVORAK);
310 }
311 return false;
312 break;
313 case LOWER:
314 if (record->event.pressed) {
315 layer_on(_LOWER);
316 update_tri_layer(_LOWER, _RAISE, _ADJUST);
317 } else {
318 layer_off(_LOWER);
319 update_tri_layer(_LOWER, _RAISE, _ADJUST);
320 }
321 return false;
322 break;
323 case RAISE:
324 if (record->event.pressed) {
325 layer_on(_RAISE);
326 update_tri_layer(_LOWER, _RAISE, _ADJUST);
327 } else {
328 layer_off(_RAISE);
329 update_tri_layer(_LOWER, _RAISE, _ADJUST);
330 }
331 return false;
332 break;
333 case BACKLIT:
334 if (record->event.pressed) {
335 register_code(KC_RSFT);
336 #ifdef BACKLIGHT_ENABLE
337 backlight_step();
338 #endif
339 } else {
340 unregister_code(KC_RSFT);
341 }
342 return false;
343 break;
344 case PLOVER:
345 if (record->event.pressed) {
346 layer_off(_RAISE);
347 layer_off(_LOWER);
348 layer_off(_ADJUST);
349 layer_on(_PLOVER);
350 if (!eeconfig_is_enabled()) {
351 eeconfig_init();
352 }
353 keymap_config.raw = eeconfig_read_keymap();
354 keymap_config.nkro = 1;
355 eeconfig_update_keymap(keymap_config.raw);
356 }
357 return false;
358 break;
359 case EXT_PLV:
360 if (record->event.pressed) {
361 layer_off(_PLOVER);
362 }
363 return false;
364 break;
365 }
366 return true;
367}
368
369/*
370 * Macro definition
371 */
77const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 372const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
78{ 373{
79 switch(id) { 374 if (!eeconfig_is_enabled()) {
80 case _DV: 375 eeconfig_init();
81 if (record->event.pressed) { 376 }
82 persistant_default_layer_set(1UL<<_DV); 377
83 } 378 bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc.
84 break; 379 // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in:
85 case _QW: 380 // quantum/quantum.c
86 if (record->event.pressed) { 381 if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) {
87 persistant_default_layer_set(1UL<<_QW); 382 use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc.
88 } 383 }
89 break; 384
90 case _CM: 385 switch (id) {
91 if (record->event.pressed) { 386 case KC_ALT_TAB:
92 persistant_default_layer_set(1UL<<_CM); 387 if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
93 } 388 else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
94 break; 389 case KC_CMD_TAB:
95 } 390 if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); }
391 else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); }
392
393 case KC_CTL_TAB:
394 return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END ));
395 case KC_CMD_SLSH:
396 return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END ));
397
398 case KC_AG_FIND:
399 return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END );
400 case KC_AG_AGAIN:
401 return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END );
402 case KC_AG_UNDO:
403 return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END );
404 case KC_AG_CUT:
405 return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END );
406 case KC_AG_COPY:
407 return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END );
408 case KC_AG_PASTE:
409 return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END );
410
411 case KC_AG_DESK_L:
412 return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END );
413 case KC_AG_DESK_R:
414 return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END );
415
416 case KC_AG_TAB_C:
417 return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END );
418 case KC_AG_TAB_N:
419 return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END );
420 case KC_AG_TAB_R:
421 return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END );
422 }
423
96 return MACRO_NONE; 424 return MACRO_NONE;
97}; 425}
diff --git a/keyboards/tv44/keymaps/jeebak/readme.md b/keyboards/tv44/keymaps/jeebak/readme.md
index ac84c08cf..43d20958a 100644
--- a/keyboards/tv44/keymaps/jeebak/readme.md
+++ b/keyboards/tv44/keymaps/jeebak/readme.md
@@ -1 +1,129 @@
1# The default keymap for tv44 \ No newline at end of file 1jeebak's TV44 layout
2=======================
3NOTE: This is a port of jeebak's planck layout, for tv44.
4
5This WIP keymap attempts to minimize fingers straying away from the home row.
6To aid in this endeavor, when additional modifyer keys to switch layers are
7needed, they will be mapped to home row keys. The `keymap.c` file will contain
8the exact changes. The diagrams in this README shows the highlights of the
9changes from the default mappings.
10
11I also decided to change all calls to `persistant_default_layer_set()` to
12`default_layer_set()` since this is my personal perference.
13
14## Macros
15```
16#define ALT_TAB M(KC_ALT_TAB)
17```
18
19## Base Layers (Qwerty/Colemak/Dvorak)
20These base layers are mostly the same as the default mappings. The interesting
21changes are shown below.
22
23- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held,
24- `GUI/;` as `;` and `GUI`,
25- `Alt/"` as `"` and `Alt`,
26- `Sft/Ent` as `Enter` and `Shift`, and
27- `Hyper/Tab` as `Tab` and `Hyper`
28
29A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped.
30The arrow keys, which have been moved to the
31[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been
32replaced with the Media keys as shown. The `MC/kc` key activates the
33`MouseCursor` layer when held, and emits the corresponding `kc` for its layer,
34when tapped.
35```
36 ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
37 |Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
38 |---------`------`------`------`------`------`------`------`------`------`------`-------------|
39 | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" |
40 |----------`------`------`------`------`------`------`------`------`------`------`------------|
41 | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/Ent |
42 |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
43 | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
44 `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
45```
46
47## Lower Layer (Symbols and Function Keys)
48The symbols and functions keys are essentially the same as the default mapping.
49The most notable changes are that the symbol keys from the `RAISE` layer have
50been moved here. The remaining Media keys replace those that are now on the
51base layers. The `BACKLIT` key has also been moved here.
52```
53 ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
54 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
55 |---------`------`------`------`------`------`------`------`------`------`------`-------------|
56 | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | "|" |
57 |----------`------`------`------`------`------`------`------`------`------`------`------------|
58 | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ |
59 |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
60 | Brite | | | | | | Vol- | Mute |
61 `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
62```
63
64## Raise Layer (Numbers and Arithmetic Operators)
65All of the numbers and arithmetic operators are available on this layer. Some
66keys are duplicated for the convenience of their positions. The `0` and `$`
67keys at the far left are for quick access to beginning and end of line in vim.
68```
69 ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
70 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
71 |---------`------`------`------`------`------`------`------`------`------`------`-------------|
72 | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | "|" |
73 |----------`------`------`------`------`------`------`------`------`------`------`------------|
74 | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ |
75 |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
76 | Brite | | | | | | Vol- | Mute |
77 `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
78```
79
80## TouchCursor layer plus personal customizations
81[TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key
82as the modifier, with the `IJKL` home row keys representing the inverted-T of
83the arrow keys. All of the default TouchCursor keymappings for the right hand
84are represented below. My personalizations include all of the keys shown for
85the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
86from the base layers) readily accessible from the home row allows quick word
87jumps and highlighting when used in conjunction with the arrow keys. The
88`Alt-Tab` macro is not only useful under Windows, but also under Mac when used
89with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch).
90The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in
91this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN`
92keycodes do not seem to work. There are macros in place that'll "automatically"
93choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`,
94etc.) depending on which layout you've currently selected (`AG_NORM` or
95`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I
96use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and
97`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as
98Google Chrome.
99```
100 ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
101 | AltTab |CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | |
102 |---------`------`------`------`------`------`------`------`------`------`------`-------------|
103 | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L| Desk_R |
104 |----------`------`------`------`------`------`------`------`------`------`------`------------|
105 | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| |
106 |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
107 | | | | | | | | |
108 `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
109```
110
111## Mouse Layer
112The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer.
113The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the
114mouse from the `doc/keycode.txt` file are represented, and logically located,
115IMHO. The left and right click buttons are duplicated; on the right hand side,
116for a quick click here and there, and again on the left hand side for when the
117buttons need to be held for dragging things or highlighting text, thus allowing
118the right hand to be free to use the up/down/left/right actions.
119```
120 ,---------+------+------+------+------+------+------+------+------+------+------+-------------.
121 | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | |
122 |---------`------`------`------`------`------`------`------`------`------`------`-------------|
123 | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 |
124 |----------`------`------`------`------`------`------`------`------`------`------`------------|
125 | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | |
126 |-----------`------`------`------`------`-----'-------`------`------`------`------`-----------|
127 | | | | | | | | |
128 `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
129```