QMK
QMK is open-source firmware for microcontrollers that control computer keyboards. The QMK Configurator is freely available software which facilitates designing keyboard layouts and then turning them into firmware files. The QMK Toolkit is freely available software which facilitates the flashing or application of firmware onto programmable keyboards.