ergodox-firmware/src/keyboard/ergodox/layout.md

44 lines
2 KiB
Markdown
Raw Normal View History

# Documentation : layout
Different layouts are included by modifying a variable in the makefile.
To write a new one:
2012-04-26 11:51:14 +02:00
* You must implement everything defined in [layout.h] (layout.h). Take a look
2012-04-26 22:03:51 +02:00
at existing layouts in the 'layout' subdir.
* Currently, see [qwerty.c] (layout/qwerty.c) and [qwerty.h]
(layout/qwerty.h). The latter is only important if you want more than
2012-04-26 22:06:22 +02:00
one layer. And I still need to write the functions to make that possible
(though that shouldn't be hard, I just haven't gotten to it yet). But
(at least for the QWERTY and Dvorak layouts I'd really like to include)
if you indicate it clealy in the layout, and provide complete
2012-04-26 22:03:51 +02:00
initializations for `kb_layout[][][]`, `kb_layout_press[][][]`, and
`kb_layout_release[][][]`, I'll make sure it gets working.
* The number of layers must be defined in the layout *.h file.
2012-04-26 11:51:14 +02:00
* Use `0` for no-operation (unused) keys, and `NULL` for no-operation (unused)
functions.
* See [matrix.md] (matrix.md) for how the key matrix maps to hardware.
* See [keyboard-usage-page--short-names.h]
(../../lib/_usb/keyboard-usage-page--short-names.h) for available keycodes.
2012-04-28 00:39:26 +02:00
* See [key-functions.c] (../../lib/_key-functions.c) for what functions keys
can call.
## notes
* Assuming 560 bytes for everything else in RAM space, there's 2000 bytes left
for the layout. This should be enough for about 7 layers. Watch your RAM
usage if you're getting close.
* The layout matricies could be moved to flash memory (program space,
instead of data space) in order to save RAM, but that doesn't seem
necessary at the moment. It would also be slightly slower, though that
2012-04-29 07:39:23 +02:00
probably shouldn't be a concern.
-------------------------------------------------------------------------------
Copyright &copy; 2012 Ben Blazak <benblazak.dev@gmail.com>
Released under The MIT License (MIT) (see "license.md")
Project located at <https://github.com/benblazak/ergodox-firmware>