ergodox-firmware/src/keyboard/ergodox/layout.md
Ben Blazak b7e5e7b735 refactoring layout stuff
- made short keycode macros for the USB keycodes (under "lib/...")
- refactored "keyboard/.../layout.c", to make way for multiple layouts,
  and to make it easier to read (by using short keycode macros)
  - layout.h has a computed include line now, and the code (and layout
    specific header stuff) is in a subdirectory.  the makefile should
    take care of which layout gets included and compiled
- changed kbfun_press() and kbfun_release() to be able to handle the
  modifier keys (instead of requiring a separate function for the
  modifiers)
- added a makefile variable for which keyboard gets compiled.  even
  though there's only one right now
2012-04-24 23:22:20 -07:00

1.2 KiB

Documentation : layout

Different layouts are included by modifying a variable in the makefile.

To write a new one:

  • You must implement everything defined in <layout.h>. Take a look at existing layouts.
  • The number of layers must be defined in the layout *.h file.
  • Use 0 for no-operation (unused) keys.
  • See <matrix.md> for how the key matrix maps to hardware.
  • See </src/lib/_usb/keyboard-usage-page--short-names.h> for available keycodes.
  • See </src/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 probably shouldn't be a concern.

Copyright © 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