b61974b301
* mitosis/datagrok: make qwerty the default layout * mitosis/datagrok: update readme to match qwerty default * mitosis:datagrok: remove redundant name for transparent meh, decided i don't need an extra key to represent "key that is transparent because it's a modifier on a layer below." it's a maintenance burden when moving other keys around * mitosis:datagrok: add num lock on Blue + QWERTY T * mitosis:datagrok: tap lshift = tab we use tab completion a lot so let's get it onto an unmodified key somehow * mitosis:datagrok: update readme * mitosis:datagrok: improve notes in README * mitosis:datagrok: note numlock in README |
7 years ago | |
---|---|---|
.. | ||
config.h | 7 years ago | |
keymap.c | 7 years ago | |
readme.md | 7 years ago | |
rules.mk | 7 years ago |
readme.md
a layout for the Mitosis
-
Emphasis on momentary modifiers, all usable from either hand, arranged symmetrically, but distinguishable left/right by the OS. Shift, Red ("Lower"), Blue ("Raise"), Super ("Windows"), Meta ("Alt"), Hyper.
-
Red and Blue are used to momentary-enable (like a shift key) one of three layers:
- Red: Symbols layer
- Blue: Numbers layer
- "Purple" (both Red and Blue): Functions layer
-
The base layer is QWERTY. A slight variant of Workman may be toggled-on.
-
Emphasis on minimizing hand travel, so as not to lose orientation with homerow.
-
Paired programming symbols (braces, brackets, parentheses) are arranged symmetrically in the symbols layer.
-
?
and!
are moved to take the place of<
and>
. Rationale: unmodded and shifted keys should be for prose, while symbols useful for programming should be colocated on their own layer. -
No OS keymap modification required.
Design notes
-
I use an 8Mhz Pro Micro. If you want to use this keymap with the standard 16Mhz Pro Micro specified in the Mitosis design:
- Remove the lines in
rules.mk
mentioningF_CPU
andF_USB
. - Remove the lines in
config.h
mentioningSERIAL_UART_BAUD
.
- Remove the lines in
-
Workman layout
-
I'm learning a new physical key placement, so I might as well go all out and use an optimal non-QWERTY layout.
-
I like the way Workman feels and some of its advantages over Colemak. Unfortunately, it was designed using a weighting system based on a standard column-staggered keyboard so is probably not as optimal as one could achieve on an ergonomic board like the Mitosis. Maybe run an optimizer routine after I determine good values for key difficulty on the Mitosis.
-
-
Arrows in the home position (on a layer). Mod+Arrows = PgUp/PgDn/Home/End, which is intuitive for me
-
I use tab all the time for autocompletion. To allow it to live on the base layer it is now Mod-Tapped with left shift.
Abandoned ideas
-
"Since QWERTY and Workman keep angle brackets together, place other enclosing symbols on the same keys. This informs the numbers placement, which informs the function-key placement."- I tried this and it was bad. I don't like having to pick the right modifier to get the right flavor of bracket. Instead, now, one modifier activates a symbols layer where all brackets are easily accessible.
-
Space/Enter to the left of layer select for Enter doesn't work well; I always trigger space first when mashing the keys simultaneously. This might not continue to be true if I change the angle at which I strike the keys e.g. with a neoprene base or a wrist support.
-
I used to have Blue on ring finger, but that was too hard to use in conjunction with shift.
To do
- Figure out where to place non-numpad numbers so we don't need num lock turned on to type them?
- Improve LED indications (may require modding bluetooth firmware):
- Is any board nonresponsive (which one?)
- Does either board have a low battery?
- Add Insert, PrintScr, Pause/Break
Make QWERTY base layer for people who customize layout in software?I default to QWERTY now.- Store default base layer in eeprom?
- See if the henkan/muhenkan placement is at all useful for Japanese speakers, or abuse different keysyms for Left/Right Hyper. (Original space cadet used scancodes 145/175. 145 is LANG2, 175 is "reserved" in USB HID spec.)
- Mod a buzzer onto my receiver and enable tones
- Implement "layer lock" key
- Improve tri-layer behavior