Fusion is a web-based, open source keyboard-layout maker. It's supports multiple keyboard types: Ergodox EZ, and ortholinear 's Planck and Preonic are currently supported. As long as your keyboard firmware supports/uses keycode.h it should be relatively easy to get it supported. This project will output JSON file for the full layout (including layers), right now another tool is needed to convert