qmk_firmware/keyboards/mitosis/keymaps/datagrok
Michael F. Lamb e899cb8940 several improvements for mitosis:datagrok (#1960)
* mitosis/datagrok: reduce features from rules.mk

* mitosis/datagrok: make both layer keys neighbor shift

* mitosis/datagrok: (no-op) tweak some comments

* mitosis/datagrok: set baudrate to 250k

This requires a corresponding change to the mitosis wireless firmware:
https://github.com/reversebias/mitosis/pull/10

* mitosis/datagrok: move design description from code comment to a readme

* mitosis/datagrok: new layout, new shifted keys, efficient LED code

This is experimental, but compiles and seems to work correctly.

* mitosis/datagrok: whoops, move readme.md

* mitosis/datagrok: a minor layout improvement simplifies custom-shifted code

instead of [, .] [? !], using [, ?] [. !] greatly simplifies the code
needed to perform the shifted-key switching. (And keeps , and . on the
same keys that they are under qwerty.)

also: layout improvements for symbols

* mitosis/datagrok: make my code conform to QMK style guidelines

* mitosis/datagrok: TODO note for layout table in README

* mitosis/datagrok: remove led_set_user until i figure out other changes

need to see if the corresponding changes needed in the keyboard-level code
is okay.

* mitosis/datagrok: simpler layer indicator

* mitosis/datagrok: undo change to keyboard baud; make it in my layout dir.

* mitosis/datagrok: apply same punctuation hack to qwerty layer

* mitosis/datagrok: enable qwerty layer toggle

* mitosis/datagrok: update readme
2017-11-03 11:56:06 -04:00
..
config.h several improvements for mitosis:datagrok (#1960) 2017-11-03 11:56:06 -04:00
keymap.c several improvements for mitosis:datagrok (#1960) 2017-11-03 11:56:06 -04:00
readme.md several improvements for mitosis:datagrok (#1960) 2017-11-03 11:56:06 -04:00
rules.mk several improvements for mitosis:datagrok (#1960) 2017-11-03 11:56:06 -04:00

mitosis:datagrok layout image

Keyboard layout editor source

a layout for the Mitosis

  • Emphasis on momentary modifiers, all usable from either hand, arranged symmetrically, but distinguishable left/right by the OS. Shift, Fn1 ("Lower"), Fn2 ("Raise"), Super ("Windows"), Meta ("Alt"), Hyper.

  • Fn1 and Fn2 are used to momentary-enable (like a shift key) one of three layers:

    • Fn1 (Red): Symbols layer
    • Fn2 (Blue): Numbers layer
    • Both: Functions layer
  • The base layer is a slight variant of Workman. QWERTY may be toggled-on.

  • Paired programming symbols (braces, brackets, parentheses) are arranged symmetrically in the symbols layer. ? and ! are moved to take the place of < and >.

  • 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 mentioning F_CPU and F_USB.
    • Remove the lines in config.h mentioning SERIAL_UART_BAUD.
  • I'm learning a new key placement, so 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.

  • Arrows in the home position (on a layer). Mod+Arrows = PgUp/PgDn/Home/End, which is intuitive for me

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.

  • I used to have Blue layer on ring finger, but that was too hard to use in conjunction with shift.

To do

  • 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? Store default base layer in eeprom?
  • See if the henkans placement is at all useful for Japanese speakers, or abuse different keysyms
  • Mod a speaker onto my receiver and enable tones
  • Implement "layer lock" key
  • Improve tri-layer behavior