aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/mitosis/keymaps/datagrok/config.h26
-rw-r--r--keyboards/mitosis/keymaps/datagrok/keymap.c116
-rw-r--r--keyboards/mitosis/keymaps/datagrok/readme.md216
-rw-r--r--keyboards/mitosis/keymaps/datagrok/rules.mk7
4 files changed, 267 insertions, 98 deletions
diff --git a/keyboards/mitosis/keymaps/datagrok/config.h b/keyboards/mitosis/keymaps/datagrok/config.h
index 3f303e04a..9edb950cf 100644
--- a/keyboards/mitosis/keymaps/datagrok/config.h
+++ b/keyboards/mitosis/keymaps/datagrok/config.h
@@ -3,14 +3,12 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6// I use a pro micro clocked at 8Mhz. It can't reach 1M baud, so this is the 6// I want to place an underscore as tap behavior on the right shift key. But
7// next fastest possible baud without errors. I don't notice any difference in 7// RSFT_T(KC_UNDS) doesn't work; mod-tap doesn't work with pre-shifted keys. So
8// behavior at this slower speed. (So I think it should maybe be the default, 8// instead we take advantage of Space Cadet Shift that does something similar
9// to allow a single codebase to support both available flavors of pro micro.) 9// and just tweak it to use the -_ key instead of 0) See
10// This requires a corresponding change to the wireless module firmware; see 10// https://github.com/qmk/qmk_firmware/pull/2055
11// https://github.com/reversebias/mitosis/pull/10 11#define RSPC_KEY KC_MINS
12#undef SERIAL_UART_BAUD // avoids redefinition warning
13#define SERIAL_UART_BAUD 250000
14 12
15// TODO: figure out which of these I can safely enable to reduce firmware size. 13// TODO: figure out which of these I can safely enable to reduce firmware size.
16//#define NO_ACTION_LAYER 14//#define NO_ACTION_LAYER
@@ -19,4 +17,16 @@
19//#define NO_ACTION_MACRO 17//#define NO_ACTION_MACRO
20//#define NO_ACTION_FUNCTION 18//#define NO_ACTION_FUNCTION
21 19
20#ifdef AUDIO_ENABLE
21#define STARTUP_SONG SONG(PLANCK_SOUND)
22// #define STARTUP_SONG SONG(NO_SOUND)
23#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
24 SONG(COLEMAK_SOUND), \
25 SONG(DVORAK_SOUND) \
26 }
27#define AUDIO_VOICES
28#define AUDIO_CLICKY
29#define C6_AUDIO
30#endif
31
22#endif 32#endif
diff --git a/keyboards/mitosis/keymaps/datagrok/keymap.c b/keyboards/mitosis/keymaps/datagrok/keymap.c
index fc08d36ce..4fda3f839 100644
--- a/keyboards/mitosis/keymaps/datagrok/keymap.c
+++ b/keyboards/mitosis/keymaps/datagrok/keymap.c
@@ -1,4 +1,7 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2#ifdef AUDIO_ENABLE
3#include "audio.h"
4#endif
2 5
3enum mitosis_layers 6enum mitosis_layers
4{ 7{
@@ -10,57 +13,53 @@ enum mitosis_layers
10}; 13};
11 14
12// Fillers to make layering more clear 15// Fillers to make layering more clear
13#define XXXXXXX KC_NO // No-op (no key in this location on Mitosis' fake matrix) 16#define _______ KC_TRNS // Transparent
14#define _______ KC_TRNS // Transparent, because I haven't decided a mapping yet 17
15#define KC_LMTA KC_LALT // For fun, name the mods like the space cadet keyboard does 18// I don't use Japanese myself, but I've placed henkan 変換 and muhenkan 無変換
16#define KC_RMTA KC_RALT // META 19// in my layout to act as left and right HYPER
17#define KC_LSUP KC_LGUI // SUPER
18#define KC_RSUP KC_RGUI //
19#define KC_RHYP KC_INT4 // HYPER (actually muhenkan 無変換 and henkan 変換)
20#define KC_LHYP KC_INT5 // or NFER/XFER.
21 20
22// Momentary tri-state layers. Mitosis default keymap does this too but employs 21// Momentary tri-state layers. Mitosis default keymap does this too but employs
23// new keymappings and a bunch of conditional code. This simpler keymap 22// new keymappings and a bunch of conditional code. This simpler keymap
24// accomplishes it, but with a small quirk: triggering both layers then 23// accomplishes it but with a small quirk: triggering both layers then releasing
25// releasing one out-of-order will leave the tri-state triggered until the 24// one out-of-order will leave the tri-state triggered until the other is
26// other is released. Which doesn't bother me. 25// released. Which doesn't bother me.
26
27// The weird /*,*/ comments are a hack to get slightly better automatic
28// tabulation in my editor.
29
30// We use Space Cadet KC_RSPC to get _ on right shift. See config.h for details.
27 31
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_xQ] = LAYOUT( 33 [_xQ] = LAYOUT(
30 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 34 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
31 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 35 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
32 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, 36 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT,
33 KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP, 37 /*, */ KC_LGUI, KC_LCTL, MO(_xS), KC_TAB, KC_SPC, MO(_xS), KC_RCTL, KC_RGUI,
34 KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP 38 /*, */ KC_HENK, KC_LALT, MO(_xN), KC_LSFT, KC_RSPC, MO(_xN), KC_RALT, KC_MHEN),
35 ),
36 [_xW] = LAYOUT( 39 [_xW] = LAYOUT(
37 KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, 40 KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,
38 KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, 41 KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
39 KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT, 42 KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT,
40 _______, _______, _______, _______, _______, _______, _______, _______, 43 /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______ 44 /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
42 ),
43 [_xS] = LAYOUT( 45 [_xS] = LAYOUT(
44 KC_ESC, _______, KC_UP, _______, _______, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TILD, 46 KC_ESC, KC_GRV , KC_UP, KC_EQL , KC_TILD, KC_PLUS, KC_CIRC, KC_AMPR, KC_PERC, KC_MINS,
45 KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV, KC_UNDS, 47 KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PIPE, KC_AT, KC_DLR, KC_HASH, KC_ENT,
46 KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH, 48 KC_BSLS, KC_LABK, KC_LCBR, KC_LPRN, KC_LBRC, KC_RBRC, KC_RCBR, KC_RPRN, KC_RABK, KC_SLSH,
47 _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______, 49 /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______ 50 /*, */ _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______),
49 ),
50 [_xN] = LAYOUT( 51 [_xN] = LAYOUT(
51 _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0, 52 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_PPLS, KC_7, KC_8, KC_9, KC_PMNS,
52 _______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS, 53 _______, KC_F4, KC_F5, KC_F6, KC_F11, KC_NLCK, KC_4, KC_5, KC_6, KC_PENT,
53 _______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL, 54 _______, KC_F1, KC_F2, KC_F3, KC_F12, KC_PAST, KC_1, KC_2, KC_3, KC_PSLS,
54 _______, _______, _______, _______, _______, _______, _______, _______, 55 /*, */ _______, _______, MO(_xF), _______, _______, MO(_xF), KC_0, KC_PDOT,
55 _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______ 56 /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
56 ),
57 [_xF] = LAYOUT( 57 [_xF] = LAYOUT(
58 _______, _______, KC_PGUP, _______, KC_VOLU, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10, 58 RESET, KC_INS, KC_PGUP, KC_DEL, KC_VOLU, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
59 _______, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_F14, KC_F4, KC_F5, KC_F6, KC_F11, 59 CK_TOGG, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_NLCK, KC_P4, KC_P5, KC_P6, KC_PENT,
60 TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12, 60 TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS,
61 _______, _______, _______, _______, _______, _______, _______, _______, 61 /*, */ CK_UP, MU_TOG, _______, _______, _______, _______, KC_P0, KC_PDOT,
62 _______, _______, _______, _______, _______, _______, _______, _______ 62 /*, */ CK_DOWN, MU_MOD, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS),
63 ),
64}; 63};
65 64
66// This is a hack to place <question mark> on <shift-comma> and <exclaimation 65// This is a hack to place <question mark> on <shift-comma> and <exclaimation
@@ -105,6 +104,41 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
105 } 104 }
106} 105}
107 106
107#ifdef AUDIO_ENABLE
108float tone_qwerty[][2] = SONG(QWERTY_SOUND);
109float tone_dyn_macro_rec[][2] = SONG(DVORAK_SOUND);
110float tone_dyn_macro_play[][2] = SONG(COLEMAK_SOUND);
111float tone_fnpc[][2] = SONG(PLOVER_SOUND);
112float tone_fnmac[][2] = SONG(PLOVER_GOODBYE_SOUND);
113
114void startup_user()
115{
116 float tone_startup[][2] = SONG(STARTUP_SOUND);
117 _delay_ms(20); // gets rid of tick
118 PLAY_SONG(tone_startup);
119}
120
121void shutdown_user()
122{
123 float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
124 PLAY_SONG(tone_goodbye);
125 _delay_ms(150);
126 stop_all_notes();
127}
128
129void music_on_user(void)
130{
131 music_scale_user();
132}
133
134void music_scale_user(void)
135{
136 float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
137 PLAY_SONG(music_scale);
138}
139
140#endif
141
108// Set the bits of A selected by MASK to the corresponding bits of B 142// Set the bits of A selected by MASK to the corresponding bits of B
109#define setbits(A, B, MASK) A = (A & (B | ~MASK)) | (B & MASK) 143#define setbits(A, B, MASK) A = (A & (B | ~MASK)) | (B & MASK)
110void matrix_scan_user(void) { 144void matrix_scan_user(void) {
diff --git a/keyboards/mitosis/keymaps/datagrok/readme.md b/keyboards/mitosis/keymaps/datagrok/readme.md
index a81829f26..176e0f411 100644
--- a/keyboards/mitosis/keymaps/datagrok/readme.md
+++ b/keyboards/mitosis/keymaps/datagrok/readme.md
@@ -1,12 +1,9 @@
1![mitosis:datagrok layout image](https://i.imgur.com/eum3fsc.png)
2
3[Keyboard layout editor source](http://www.keyboard-layout-editor.com/#/gists/9cf33be8a8e773647cfa44a0dbc44b31)
4
5# a layout for the Mitosis 1# a layout for the Mitosis
6 2
7- Emphasis on momentary modifiers, all usable from either hand, arranged 3- Emphasis on momentary modifiers, all usable from either hand, arranged symmetrically, but left/right distinguishable by the OS.
8 symmetrically, but distinguishable left/right by the OS. Shift, Red 4 Shift, Red ("Lower"), Blue ("Raise"), Super ("Windows"), Meta ("Alt"), Hyper (actually Henkan/Muhenkan).
9 ("Lower"), Blue ("Raise"), Super ("Windows"), Meta ("Alt"), Hyper. 5 I'm going for a [Space Cadet](https://en.wikipedia.org/wiki/Space-cadet_keyboard) aesthetic;
6 I want a keyboard that can (even just in theory) make use of all the bucky bits my operating system can support.
10 7
11- Red and Blue are used to momentary-enable (like a shift key) one of three layers: 8- Red and Blue are used to momentary-enable (like a shift key) one of three layers:
12 9
@@ -14,80 +11,211 @@
14 - Blue: Numbers layer 11 - Blue: Numbers layer
15 - "Purple" (both Red and Blue): Functions layer 12 - "Purple" (both Red and Blue): Functions layer
16 13
17- The base layer is QWERTY. A slight variant of [Workman][] may be toggled-on. 14- The base layer is QWERTY.
18 15 A slight variant of [Workman][] may be toggled using `Red`+`Blue`+`Z`.
19- Emphasis on minimizing hand travel, so as not to lose orientation with
20 homerow.
21 16
22- Paired programming symbols (braces, brackets, parentheses) are arranged 17- Minimize hand travel, so as not to lose orientation with home row.
23 symmetrically in the symbols layer.
24 18
25- `?` and `!` are moved to take the place of `<` and `>`. Rationale: unmodded 19- `?` and `!` are moved to take the place of `<` and `>`. Rationale: unmodded
26 and shifted keys should be for prose, while symbols useful for programming 20 and shifted keys should be for prose, while symbols useful for programming
27 should be colocated on their own layer. 21 should be colocated on their own layer.
28 22
29- No OS keymap modification required. 23- Key positions chosen for mnemonics.
24 For example, you can distinguish between alphanumeric numerals and keypad numerals, but they occupy the same key positions.
25
26## Layout Images
27
28![mitosis:datagrok layout base layer](https://imgur.com/9LoLQUk.png)
29
30Base layer. Notes:
31- customized comma and period, which have exclamation point and question mark on their shift layer.
32- tap right-shift for underscore
33
34![mitosis:datagrok layout red layer](https://imgur.com/B5bnPGM.png)
35
36Red layer. Intended for common navigation and programming symbols. Notes:
37- symmetric layout of paired braces/brackets/slashes for easier memorization
38- arrows placed directly on home position
39
40![mitosis:datagrok layout blue layer](https://imgur.com/HGJ4G1U.png)
41
42Blue layer. Intended for "number pad." Notes:
43- Keycodes generated for numbers, enter key, and mathematical symbols are from the alphanumeric keys, not keypad. This way they are not influenced by the state of Num Lock. If you want to send the keypad equivalents, just use Red and Blue modifiers simultaneously.
44
45![mitosis:datagrok layout purple layer](https://imgur.com/lNsKDtA.png)
46
47Purple (Red+Blue) layer. Intended for "true keypad" and various functions. Notes:
48- Numbers on this layer send Keypad codes, so the result will be affected by the state of Num Lock.
49- "Switch Layout" toggles the alphabet keys between QWERTY and Workman
50- Page Up / Page Down / Home / End are placed on similar arrows
51- To press Print Screen it is necessary to use the left-side Red and Blue modifiers.
52
53Keyboard layout editor sources:
54[base](http://www.keyboard-layout-editor.com/#/gists/bc2d06a3203d1bc3a14ed2245cf39643)
55[red](http://www.keyboard-layout-editor.com/#/gists/dbbf65f726a5522824b75117a62a321e)
56[blue](http://www.keyboard-layout-editor.com/#/gists/240e807f3d7e1d3ddabe1b69ee675048)
57[purple](http://www.keyboard-layout-editor.com/#/gists/9559f0f8bb1ee47677c8f2b4d766829d)
58
59[Imgur album](https://imgur.com/a/KSoVgPx)
30 60
31## Design notes 61## Design notes
32 62
33- **I use an 8Mhz Pro Micro.** If you want to use this keymap with the standard 63### Workman layout
34 16Mhz Pro Micro specified in the Mitosis design: 64
65- I'm learning a new physical key placement, so I might as well go all-out and
66 use an optimal non-QWERTY layout.
67
68- I like the way Workman feels and some of its advantages over Colemak.
69 Unfortunately, it was designed using a weighting system based on a standard
70 column-staggered keyboard so is probably not as optimal as one could achieve
71 on an ergonomic board like the Mitosis. Maybe run an optimizer routine after I
72 determine good values for key difficulty on the Mitosis.
73
74### 8Mhz Pro Micro
35 75
36 - Remove the lines in `rules.mk` mentioning `F_CPU` and `F_USB`. 76- I (used to) use a 3.3v Pro Micro clocked at 8Mhz rather than the 5v 16Mhz specified in the Mitosis design.
37 - Remove the lines in `config.h` mentioning `SERIAL_UART_BAUD`. 77 That can't communicate with the connected wireless module at the default speed of 1M baud.
78 The next fastest baudrate that works without errors is 250k baud.
79 So if you want to do the same:
38 80
39- Workman layout 81 - Set the Pro Micro clock rate correctly in `rules.mk`:
82 ```
83 F_CPU = 800000
84 ```
85 - Configure it to communicate at 250k baud in `config.h`:
86 ```
87 #undef SERIAL_UART_BAUD // avoids redefinition warning
88 #define SERIAL_UART_BAUD 250000
89 ```
90 - Configure the receiver's wireless module to communicate at 250k baud in `main.c`. See https://github.com/reversebias/mitosis/pull/10
91 ```
92 - UART_BAUDRATE_BAUDRATE_Baud1M
93 + UART_BAUDRATE_BAUDRATE_Baud250000
94 ```
40 95
41 - I'm learning a new physical key placement, so I might as well go all out 96### Layout mnemonics
42 and use an optimal non-QWERTY layout.
43 97
44 - I like the way Workman feels and some of its advantages over Colemak. 98- Paired programming symbols (braces, brackets, parentheses) are arranged symmetrically in the Red layer.
45 Unfortunately, it was designed using a weighting system based on a
46 standard column-staggered keyboard so is probably not as optimal as one
47 could achieve on an ergonomic board like the Mitosis. Maybe run an
48 optimizer routine after I determine good values for key difficulty on the
49 Mitosis.
50 99
51- Arrows in the home position (on a layer). Mod+Arrows = PgUp/PgDn/Home/End, 100- Arrow keys are in the home position on the Red layer.
52 which is intuitive for me
53 101
54- I use tab all the time for autocompletion. To allow it to live on the base 102 - Blue+Arrows = PgUp/PgDn/Home/End, which is intuitive for me.
55 layer it is now Mod-Tapped with left shift. 103
104- The number pad: I placed the ten-key number pad on the Blue layer.
105 However, this would do the wrong thing when Num Lock was not enabled.
106 Rather than attempt to manage the state of Num Lock, I arranged the normal number keys in a ten-key layout on the Blue layer instead.
107 If you explicitly want the keypad keys, they're in the same position on the Red+Blue layer.
108
109- Number-pad add, subtract, multiply, and divide are located on the same keys as alphanumeric plus, dash, asterisk, and slash, respectively.
110
111- The Function-keys are arranged to mimic the order of the ten-key pad.
112
113- Enter is now in a more qwerty-familiar location, and may be activated with one hand.
114 Numpad Enter is in the same position.
115
116- Rather than place Backspace opposite Space, I intentionally place it on a layer where it takes some effort to activate.
117 Backspace is one of the keys I most dislike on a QWERTY keyboard because it moves me away from homerow and I need to use it so often.
118 Rather than make it easier to strike, I want to discourage myself from using it by learning to type more accurately.
119
120- Why do I dislike [snake\_case](https://en.wikipedia.org/wiki/Snake_case) (`__variable_names_that_use_underscores_`)?
121 Maybe because it's hard to type all those underscores requiring the shift key?
122 Hypothesis: I'll be less annoyed by snake case by placing `_` at an unmodded position, right near the `space` key.
123
124
125## Changelog
126
127### Current
128
129- Experiment: no-modifier underscore on right shift key.
130- New combined numbers + keypad arrangement.
131 No more worrying about Num Lock key.
132- Move F-keys to left board to make room.
133 Calling them "the Numbers layer" and "the Functions layer" is now less accurate but the arrangement feels better.
134- Audio working!
135- Move Tab and Space to upper thumb row.
136 I discarded the high-profile acrylic case from my Mitosis.
137 With a low-profile case, it's easier to hit the upper row of thumb keys.
138- Discard all my `#defines` for "Meta", "Super", and "Hyper".
139 I can call them that without making the code confusing to others.
140- Move Backspace to Red+A. I shouldn't be using it much anyway.
141 This means Tab and Shift might as well be separate keys again.
142- Distribute paired symbols symmetrically across boards like `\<{([ ])}>/`.
143 Opening-symbols on the right hand was a failed experiment.
144- Change default back to target a 16Mhz/5v Pro Micro.
145 I damaged the 8Mhz Pro Micro I was using so now I'm back to using a 16mhz Pro Micro again.
146
147### 0.6.1
148
149- Place Tab on Shift without a modifier. We use it frequently for autocomplete.
150- Make QWERTY the default layout. So more people can try it out. My customized Workman is easily toggled-on.
151- Don't use redundant `#define` for `KC_TRNS`
152- Place Num Lock somewhere. Otherwise (if it gets turned off) we can't type any numbers!
153- Add some media keys
154
155### 0.5.155
156
157- Enable use with my 3.3v Pro Micro
158- Add a toggle-able QWERTY layer
159- Golf down the LED-setting code
160- Place `!` and `?` on `Shift`+`,` and `Shift`+`.`.
161- Distribute paired symbols symmetrically across boards like `\)}]> <[{(/`
162
163### 0.5.129
164
165- A modified Workman variant for Mitosis
166- Arrows in home position, modifier + Arrow = PgUp/PgDn/Home/End
167- Load all paired symbols onto angle-bracket keys.
56 168
57### Abandoned ideas 169### Abandoned ideas
58 170
59- ~~"Since QWERTY and Workman keep angle brackets together, place other 171- "Since QWERTY and Workman keep angle brackets together, place other
60 enclosing symbols on the same keys. This informs the numbers placement, 172 enclosing symbols on the same keys. This informs the numbers placement,
61 which informs the function-key placement."~~ 173 which informs the function-key placement."
62 174
63 - I tried this and it was bad. I don't like having to pick the right 175 - I tried this and it was bad. I don't like having to pick the right
64 modifier to get the right flavor of bracket. Instead, now, one modifier 176 modifier to get the right flavor of bracket. Instead, now, one modifier
65 activates a symbols layer where all brackets are easily accessible. 177 activates a symbols layer where all brackets are easily accessible.
66 178
67- Space/Enter to the left of layer select for Enter doesn't work well; I always 179- Space/Enter to the left of layer select for Enter
68 trigger space first when mashing the keys simultaneously. This might not 180
69 continue to be true if I change the angle at which I strike the keys e.g. 181 - Doesn't work well; I always trigger space first when mashing the keys
70 with a neoprene base or a wrist support. 182 simultaneously. ~~This might not continue to be true if I change the angle
183 at which I strike the keys e.g. with a neoprene base or a wrist support.~~
184 Even with a wrist rest or low-profile, this is hard to do with one hand.
185 Need to adjust the firmware to understand chorded thumb keys.
71 186
72- I used to have Blue on ring finger, but that was too hard to use in 187- I used to have Blue on ring finger, but that was too hard to use in
73 conjunction with shift. 188 conjunction with shift.
74 189
75## To do 190## To do
76 191
77- Figure out where to place non-numpad numbers so we don't need num lock turned 192- **Shared Layouts.**
78 on to type them? 193 Figure out how to make use of QMK's common `layouts/`
79- Improve LED indications (may require modding bluetooth firmware): 194- **Chorded Combos.**
195 Since the thumb keys are arranged such that it's easy to smash pairs of keys with just one thumb, figure out how to enable chording.
196 For example, a single-finger Shift+Space or Red+Space that doesn't do the wrong thing if Space happens to trigger first.
197- Improve **LED indications** (may require modding bluetooth firmware):
198 - Num Lock status
80 - Is any board nonresponsive (which one?) 199 - Is any board nonresponsive (which one?)
81 - Does either board have a low battery? 200 - Does either board have a low battery?
82- Add Insert, PrintScr, Pause/Break 201- **Num Lock management.**
83- ~~Make QWERTY base layer for people who customize layout in software?~~ I 202 Num lock currently occupies prime real estate, but I never use it except to fix it when it's wrong.
84 default to QWERTY now. 203 Do any of my applications use it?
204 Should I have the firmware ensure it is set how I want it?
205 Maybe cause it to be momentary active with Blue?
206 See [@drashna's comment](https://github.com/qmk/qmk_firmware/pull/2366#issuecomment-404951953)
85- Store default base layer in eeprom? 207- Store default base layer in eeprom?
86- See if the henkan/muhenkan placement is at all useful for Japanese speakers, 208- See if the henkan/muhenkan placement is at all useful for Japanese speakers,
87 or abuse different keysyms for Left/Right Hyper. (Original space cadet used 209 or abuse different keysyms for Left/Right Hyper. (Original space cadet used
88 scancodes 145/175. 145 is LANG2, 175 is "reserved" in USB HID spec.) 210 scancodes 145/175. 145 is LANG2, 175 is "reserved" in USB HID spec.)
89- Mod a buzzer onto my receiver and enable tones
90- Implement "layer lock" key 211- Implement "layer lock" key
91- Improve tri-layer behavior 212- Improve tri-layer behavior
213- Find a better location for PrintScr/SysRq, Scroll Lock, Pause/Break, Caps Lock.
214- ~~Figure out where to place non-numpad numbers so we don't need num lock turned
215 on to type them?~~
216- ~~Add Insert, PrintScr, Pause/Break~~
217- ~~Make QWERTY base layer for people who customize layout in software?~~
218 I default to QWERTY now.
219- ~~Mod a buzzer onto my receiver and enable tones~~ Easy and works!
92 220
93[Workman]: https://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/ 221[Workman]: https://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/
diff --git a/keyboards/mitosis/keymaps/datagrok/rules.mk b/keyboards/mitosis/keymaps/datagrok/rules.mk
index 767807299..a321a67b2 100644
--- a/keyboards/mitosis/keymaps/datagrok/rules.mk
+++ b/keyboards/mitosis/keymaps/datagrok/rules.mk
@@ -1,8 +1,5 @@
1# I use an 8Mhz Pro Micro 1AUDIO_ENABLE = yes # audio output
2F_CPU = 8000000 2FAUXCLICKY_ENABLE = no
3# Necessary, with above change?
4F_USB = $(F_CPU)
5
6BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 3BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
7MOUSEKEY_ENABLE = no # Mouse keys(+4700) 4MOUSEKEY_ENABLE = no # Mouse keys(+4700)
8EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 5EXTRAKEY_ENABLE = yes # Audio control and System control(+450)