* mitosis:datagrok: fix typo'd inconsistent brace arrangement
(thank you @cari66ean)
* mitosis:datagrok: add makefile argument MITOSIS_DATAGROK_SLOWUART
* mitosis:datagrok: return backspace to opposite space, use TT(), more
- move backspace back to its position opposite space
- move del to red+backspace
- move tab back to tap-leftshift
- move printscreen/scrolllock/pause to blue+left pinky column
- use TT() instead of MO() to stick a layer on if wanted
- indentation that my text editor wants
- default to no audio; i can enable it at compile time.
* mitosis:datagrok: modularize features, add default layer rotator key
* mitosis: add MITOSIS_DATAGROK_BOTTOMSPACE makefile argument
* mitosis:datagrok: README improvements; document new features
* mitosis:datagrok: dot. not "number pad dot." in numbers layer
* mitosis:datagrok remove unnecessary _user audio code
* mitosis:datagrok: return to MO() for red/blue, keep TT() for purple
in this way, the LED still updates quickly when red or blue is pressed,
but we can still lock the purple layer on for 10-key numpad operation
with red+tapping blue.
* mitosis:datagrok: add colemak and dvorak default layers
* mitosis:datagrok update readme re: available default layouts
* mitosis: remove unneeded code that was overriding led_set_user
also, add some comments
* mitosis:datagrok: updated led setting code for new layers
also, place into led_set_user where it belongs, not matrix_scan_user.
* mitosis:datagrok: update LEDs when setting the default layer
maybe this should go into default_layer_set?
* mitosis:datagrok update readme with new imgur links + other improvements
* mitosis:datagrok fix typo in image urls
* mitosis:datagrok remove useless #include (ty @drashna)
* mitosis:datagrok undo unnecessary change to quantum/quantum.h
i can put the extern float definition in my own keymap code. (ty @drashna)
* mitosis:datagrok move customized layout to my keymap
no need to modify keyboard-level mitosis.h. (ty @drashna)
* mitosis:datagrok update comment describing my led indicator logic
* datagrok:mitosis update readme to document LED indicator.
pull/3851/head
Michael F. Lamb7 years agocommitted byDrashna Jaelre
- Emphasis on momentary modifiers, all usable from either hand, arranged symmetrically, but left/right distinguishable by the OS.
Shift, Red ("Lower"), Blue ("Raise"), Super ("Windows"), Meta ("Alt"), Hyper (actually Henkan/Muhenkan).
I place left- and right-versions of Shift, GUI ("Super"), and Alt ("Meta"), and Henkan/Muhenkan (which I plan to overload for "Hyper").
I'm going for a [Space Cadet](https://en.wikipedia.org/wiki/Space-cadet_keyboard) aesthetic;
I want a keyboard that can (even just in theory) make use of all the bucky bits my operating system can support.
- Red and Blue are used to momentary-enable (like a shift key) one of three layers:
- Red key and Blue key momentary-enable (like a shift key) one of three layers:
- Red: Symbols layer
- Blue: Numbers layer
- "Purple" (both Red and Blue): Functions layer
This tri-state layer mechanism is a bit similar to Planck and Preonic's "Raise," "Lower," and "Adjust."
- The base layer is QWERTY.
A slight variant of [Workman][] may be toggled using `Red`+`Blue`+`Z`.
[Colemak][], [Dvorak][], and [Workman][] may be toggled using `Red`+`Blue`+`Z`.
When you find the one you like, save it with `Shift`+`Red`+`Blue`+`Z`.
- Minimize hand travel, so as not to lose orientation with home row.
- `?` 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.
- `?` 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.
- Key positions chosen for mnemonics.
For example, you can distinguish between alphanumeric numerals and keypad numerals, but they occupy the same key positions.
## Layout Images


Base layer. Notes:
- customized comma and period, which have exclamation point and question mark on their shift layer.
- tap right-shift for underscore
- tap right-shift for underscore, tap left-shift for tab.


Red layer. Intended for common navigation and programming symbols. Notes:
- symmetric layout of paired braces/brackets/slashes for easier memorization
- arrows placed directly on home position


Blue layer. Intended for "number pad." Notes:
- 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.
- 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 press Blue as well to access keypad numbers in the same positions in the Purple layer.
- When Red layer is active, the RGB indicator turns red.
- When Blue layer is active, the RGB indicator turns blue.
- When Purple layer is active, the RGB indicator turns purple.
- When the Workman layer is active, the RGB indicator turns green.
Currently, this means that activating the Red layer while using the Workman layout will make the indicator show yellow. (red + green.)
- The Num Lock status is shown on the Pro Micro tx LED.
- If you attach a speaker to PC6 (pin 5) and compile with AUDIO_ENABLE=yes, music will be played at startup, when switching default layers, and when saving the default layer.
## Variants
Some additional compile-time options for this layout are available by editing rules.mk or compiling like so:
Normal compilation:
```make mitosis:datagrok```
Swap Space onto bottom thumb row: swaps Red/Backspace/Space/Red with Blue/Shift/Shift/Blue:
- I'm learning a new physical key placement, so I might as well go all-out and
use an optimal non-QWERTY layout.
- I'm learning a new physical key placement, so I might as well go all-out and use an optimal non-QWERTY layout.
Bonus: it's easy to switch back to QWERTY on a traditional row-staggered keyboard.
The designer of the Mitosis had [a similar experience](https://www.reddit.com/r/MechanicalKeyboards/comments/66588f/wireless_split_qmk_mitosis/dgfr22q/).
- 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
- "High Profile mode:" Swap Red/Backspace/Space/Red with Blue/Shift/Shift/Blue (placing space on lower thumb keys) using `MITOSIS_DATAGROK_BOTTOMSPACE=yes` when compiling.
- Move Print Screen / Scroll Lock / Pause to pinky column on Blue layer.
- Let's try using TT instead of MO so we can e.g. lock-on the keypad.
- We still use MO for first modifier, so e.g. Red + tapping Blue will lock purple.
So far it feels a bit janky, we'll see.
- One key `KC_LAYO` to cycle through available base layers instead of a dedicated key for each;
Shift + `KC_LAYO` stores current base layer selection in eeprom so it comes back after disconnecting or a reset.
- Added Colemak and Dvorak as default layers that may be selected.
- Set UART to 250kbaud with make argument `MITOSIS_DATAGROK_SLOWUART=yes`, for use with 8Mhz Pro Micros.
- Display Num Lock status on tx LED
### 0.6.60
- Experiment: no-modifier underscore on right shift key.
Should I have the firmware ensure it is set how I want it?
Maybe cause it to be momentary active with Blue?
See [@drashna's comment](https://github.com/qmk/qmk_firmware/pull/2366#issuecomment-404951953)
- Store default base layer in eeprom?
See [@drashna's comment](https://github.com/qmk/qmk_firmware/pull/2366#issuecomment-404951953) for code to force it always-on, which I don't know if I want.
- ~~Store default layer in eeprom?~~
- Allow "!? on ,." to be easily toggled-off.
- Modularize "!? on ,." so it can be easily used on any QMK keyboard. (about half done)
- 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.)
- Implement "layer lock" key
- Feature parity with popular boards e.g. Planck?
- Layers for ~~Dvorak, Coleman,~~ Plover
- More music and midi stuff
- Macros?
- Improve tri-layer behavior
- Find a better location for PrintScr/SysRq, Scroll Lock, Pause/Break, Caps Lock.
- ~~Figure out where to place non-numpad numbers so we don't need num lock turned
on to type them?~~
- Find out what `update_tri_layer_state` offers that my simple layers arrangement lacks.
- ~~Find a better location for Caps Lock, PrintScr/SysRq, Scroll Lock, Pause/Break,~~.
Placed on Blue layer. Caps will be Shift+"Layer Lock," once I get that working.
- ~~Figure out where to place non-numpad numbers so we don't need num lock turned on to type them?~~
- ~~Add Insert, PrintScr, Pause/Break~~
- ~~Make QWERTY base layer for people who customize layout in software?~~