Overview
========
This is as much a keymap framework as it is a keymap. It can take many
shapes with just a few configuration choices. Base layers, Mods, thumb clusters,
edge_keys, all can be changed with just a configuration option.
There are over 50 base layouts to choose from, as well as multiple
choices of navigation, mouse, media,
symbols, and keypads. Home row mods come in a few flavors or none,
in a mod layer which is easily understandable and can be turned on
or off, or switched. There are Miryoku options for everything if
that is your thing.
If there is a oled of 64x128 the maps of each layer will be displayed, which
helps a lot in remembering and learning.
This is an easily configurable keymap for keymap exploration. It is for
primarily for minimalist, ortho split keyboards but does support some rectangles.
It´s first keyboard was an Ergodox-ez many years ago. My daily driver
is now a Kyria or a Corne, but I still use an original dactyl, rebound
and ergodox-ez regularly although most of the love goes to the Kyria and Corne.
The framework is Language
agnostic, it supports having layers for different locales which can be
cycled through.
There are multiple mods layers to choose or
not, home row mods or not, a variety of thumb layouts, mouse/no mouse,
smart lock layers and mods, N-Shot mods like callum's, swapper. Combos,
tap_hold, accented keys, alternate shifted keys, automatic custom
keys, key overrides. Minimal or no C-code required for most things.
Language, mods, layouts and extensions are encapsulated, so that they
do not interact in the configuration which makes it much easier to modify
and grow. Mods and combos are by key location rather than specific key codes.
Quick start
-------------
Everything is encapsulated here. Base layers, functional layers, mods,
or no mods, even the language. This means that anything can change
independently and easily.
If you don't mind dvorak, beakl or hands down, you can probably
just use what is configured. Or just change it to a base layer
of your choice. The fastest way to get started is to just change
the base layers to the ones you want, compile and flash.
Edit _config.h_,
* Set the lang_is, probably to EN.
* US international and BEPO are also supported out of the box.
* Uncomment the base layers you wish to have.
* comment the ones you don't.
* keep the number below 5 if you enable a second locale.
* Set the thumb clusters
* Choose a mod layer
* Choose an edge key set if you need one.
* Choose the layer flavors that you want.
* For Miryoku, copy the `miryoku_hd_gold_config.h` over `config.h`
It is a complete config with miryoku choices. Choose the base
layers you wish if Hands Down Gold and Qwerty is not your thing.
** do not turn off extensions until you know them **
It will likely cause a stream of errors for the keycodes that
go missing when something is turned off. There are known
interactions between combos, smart locks, not_dead, and alt local keys.
Turning encoders or oled on and off certainly won´t break
anything.
There are other interactions between your choices.
Edge keys, thumbs, combos, other extensions,
may use the extensions that are enabled.
### Look here to see the parts
* Everything can be turned on and off in *config.h*
* Base layers are in *base_layers/*
* Edge keys are in *layers/edge_keys.h*
* Thumbs can be reviewed in *layers/thumbs.h*
* Mods are in *mod_layers/*
* All other layers are also in *layers/*
The long version
-----------------
All can be turned on or off in the config.
supports en-us and fr-bepo Support for other languages is easily added.
Layouts are human readable, all extensions are defined with def files.
If an 128x64 oled is available, a map of the current layer is shown if enabled.
I'm an Xmonad, emacs in vi emulation programmer, that
just means that _Gui, Esc, :/?!% and ._ are all easy access and I like my
arrow and mouse keys in a 4 column row.
I have also become minimalist in my keyboard choices. I don't use
number rows, not even on my kinesis, dactyl, or ergodox_ez, which have them.
Although my maps do reasonably support these bigger keyboards as that is where
it all started for me and I do still use them. My preference for keyboards
is more in line with the Kyria and Corne. I still use 6 columns, but have been
looking to use only 5.
Note: Combos at QMK master do not currently support multiple reference layers which this
configuration uses. Combos still work as always, but do not support all the features
found here. To get fully functioning multi-reference combos, see my *ericgebhart_dev*
branch and pull request below.
Actually, at the moment, the fix is in my ericgebhart branch, since I accidently
pushed it. I'll remedy that soon.
A more current version of my QMK user can be found here in
A sparse tree [of my QMK User Space ](https://github.com/EricGebhart/MyQMK/users/ericgebhart)
For full multi-lingual combo functionality you will need my [pull request for fully functioning multi-reference combos which can found here.](https://github.com/qmk/qmk_firmware/pull/16699)
Things which effect the thinking.
* No mouse.
* Preference for 3x10 layouts. Corne, Kyria, etc.
* Still works with bigger keyboards like xd75, kinesis, dactyl, ergodox, viterbi.
* Change mods without changing any maps.
* No number row preference. - all layouts have them if needed.
* Xmonad window manager, GUI key is the entrance to the Xmonad world.
* Typing in other languages.
* Curious about keyboard layouts and experimenting.
* Must be easy to maintain, extend and modify.
* Minimize digging in code to add new things, or change old ones.
* Minimize process record user.
* Easy to add enums for keys and layers, as well as oled display.
* Easy to support multiple languages regardless of maps.
* Minimize the need to write C code.
* Encapsulate C code, so that it is extensible through data.
Features:
* Everything is configurable from config.h and .def files.
* Def files for most things.
* Custom key codes are mostly defined automatically.
* Everything is chosen or turned on and off in config.h
* Lots of macros to make it easy to redefine things without a refactor.
* Multiple edge/outer pinky column sets.
* Multiple thumb clusters to choose from.
* Thumb clusters and mods can be changed on a map by map basis.
* Easily define thumb clusters with an alpha letter.
* Easily define thumb clusters for non-base layer.
* Multiple base layers to choose from.
* Several variations of function layers to choose from
* Miryoku layers, thumbs and mods if desired
* Miryoku hands down gold config can be swapped with config.h
* Navigation and mouse layers
* A selection of symbol, keypads, and other layers.
* Regular and Beakl keypad and number rows
* Multi language support, (locales in the code).
* Multiple mod layers to choose from. Easy to add more.
* home row mods - a selection
|