Simultaneously holding down the Nav and Sym keys enables keys to adjust various keyboard settings:
- The base layer can be set to QWERTY, Colemak-DH or Dvorak,
but the keyboard reverts to QWERTY each time it is plugged in.
- Alt/option and GUI/command can be swapped for mac users or restored to the windows norm.
This setting persists over power loss.
- The backlight LEDs can be enabled, disabled, and controlled.
These settings also persist over power loss.
## Make it Yours
If you are coming from a traditional keyboard,
with a row-staggered layout and a large set of physical keys,
learning to use a column staggered (ergo) and layer-based keyboard,
which uses layers instead of finger reaches to access numbers, symbols and functions,
will be an adjustment for your muscle memory and your mental keyboard map.
This default layout tries to simplify that adjustment by keeping things in the expected spots when possible.
Yet this layout is only a decent compromise and is not optimal for each user.
The online configurator makes it easy to tweak this layout to your needs.
You can add additional layers or completely switch around what these do.
Some changes you might consider making:
- Put some of your most-used key combinations on the unused keys on the navigation layer.
- If you are on a mac, switch the editing and word navigation keys from ctrl-x to cmd-x.
- Change the shift keys to one-shot shift keys,
where pressing and releasing them shifts the next key pressed.
That is much easier on your hands than holding them down.
Yet, they can still be held as usual if desired.
- Instead of holding down the thumb key to keep the symbol layer active,
you could use a one-shot layer key.
One-shot modifiers are likely less stress on your hands and may even be faster.
You would still be able to hold it down instead.
- Instead of holding down the key for the number pad layer,
you could make it a layer toggle, like caps lock is a capitalization toggle key.
Here are some other keymaps for inspiration and ideas:
- The [Ferris default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default) uses more advanced features as it has far fewer keys to work with.
- The [Miryoku](https://github.com/manna-harbour/miryoku/tree/master/docs/reference) keymap ensures that all modifiers are comfortably available with each character key.
- The [Kyria default](https://github.com/qmk/qmk_firmware/tree/master/keyboards/splitkb/kyria/keymaps/default) has different keymap choices and a couple more keys.
A good metaphor is to think of your keymap as a bonsai tree that you tweak slightly over time
in response to ideas of how it might serve you better.
## Why no keymap.c
Via and the online configurator provide straightforward visual ways to work with a simple layout,
and both use a .json keymap format.
So this default ```keymap.json``` was created with the online configurator
and formatted for easier reading and editing.
If you wish, you can edit the ```keymap.json``` directly in a text editor, optionally use the below ```json2hill.py``` to restore the spacing, and then compile and flash it.
Or, you can use the graphical configurator to edit the keymap. To do that:
- Open the [QMK configurator](https://config.qmk.fm/#/handwired/hillside/LAYOUT)
- Using the green up arrow button, load the keymap from ```qmk_firmware/keyboards/handwired/hillside/keymaps/default/keymap.json```
- Make the changes you wish to the layout
- Save the keymap using the green down arrow button.
- Copy those changes back into your QMK repository and reformat for easy reading using the format script:
You may need to make that script executable with ```chmod +x```. After your keymap is safely copied and formated, you may want to remove the keymap from your download directory so later downloads will automatically receive the same file name.
After either method of editing, compile and flash the keymap as usual.
You can combine a .json based keymap with more advanced features specified in .c files