2 releases

0.1.1 Feb 15, 2021
0.1.0 Jan 26, 2021

#21 in #prototyping

MIT license

28KB
668 lines

Keyboard plate prototyping (lib)

How to make your own layout

Layouts are in json format

basic structure is as follow

{
    "layout": [
        // rows
        [
            //keys
             {
                "size": float //size in units
                "char": string //optional for UI module
                "k_type": bit // 0: hidden (spacer) 1: visible (key)
            },
        ],
        [
        ],
        [
        ],
        [
        ]
    ],
    "options": {
        "plate_height": f32 //how thick the plate needs to be, defaults to 20mm
        "screw_holes": bool // adds m2 sized holes at the edge of the plate
                            // not that useful at the moment, needs to be
                            // moved more in to allow heat inserts to be 
                            // used
        "row": [ // options for the rows (not supported yet)
             
        ],
        "column": [ //options for the colums
            {
                "index": integer // column index (zero based)
                "offset": float // vertical offset (used to achieve vertical stagger)
                                // column needs to be the same key size
                                // rows need to have the same amount keys/spacers
            },
        ]
    }
}

Supported exports

  • Dxf
  • Ply

Dependencies

~18MB
~372K SLoC