QMK

QMK (Quantum Mechanical Keyboard ) 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.

Description
VIA is a software program that can be used to configure keyboards that run QMK. It can swap keys and implement macros into the keyboard.