The Keyboard Layout Language or KLL is the brain child of Jacob Alexander (HaaTa).

After collecting hundreds of different keyboards with dozens of different protocols (USB, PS/2, AT, XT, etc.), Jacob was tired of defining Colemak uniquely for every single keyboard. So he decided to create the Keyboard Layout Language.

The goal of KLL was to create a dynamic and functional language to work with all types of keyboards. New, old and even input devices that are generally not considered keyboards such as mice and gamepads.


You can find the specs hosted on our GitHub repo:


The Keyboard Layout Language (KLL) is one of the core features of all the keyboards that Input Club designs and is a key differentiator amongst all other programmable keyboards.

Programmable keyboards are very powerful yet are often difficult to fully take advantage of. Depending on the style of programmability you may need to input fancy key sequences, use fancy drivers or perhaps even write C code in order to program the exact functionality you are looking for. Then what happens when you get another keyboard? Do you need to manually setup the layout again? Does that specific media key layer work on both your TKL and 60% keyboards?

KLL uses a few layers of abstractions to deal with these shortcomings and allow any KLL supporting keyboard to be configured with the same KLL. Just think, no more re-defining that customized Programmer’s Dvorak layout for yet another keyboard.

Key Features

  • Dynamic and static layer stacking
  • Trigger:Result syntax
  • Portable USB Code trigger definition
  • Easily extendable using C style capabilities
  • Sequence of combination macros with support for billions of actions