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.