• Make a key's behavior depends on whether it's held. For example, Space act as both space and Ctrl. When pressed and released by itself, it's space, but when held and pressing another key, it acts as Ctrl.

Note: not all programable keyboard has all these capabilities.

Advantage of Firmware over OS Level Keymapping

• Plug the keyboard in any computer or operating system and it'll work 100%
as you configured it. No need to install extra “driver” software.

With key remapping software in OS, the keyboard still sends Caps Lock signal, the OS receives it, and changes it to Ctrl.

OS Level Keymap Problems

OS Level key remapping has complication and doesn't always work.

Here's a list of problems.

• When you use the keyboard on another machine, you need to configure that machine first.

• In some app, it may not recognize the key remap by OS. For example, in some PC games, it ignores OS's key-remaps to prevent cheating, or in apps that require privilege such as Microsoft's regedit app.
〔►see Microsoft Windows Registry Tutorial〕

• When system boots, it doesn't recognize the remap. For example, in Linux bootstrap console or single-user mode. In Microsoft Windows laptop bootscreen, you may need to press a key to go into bios.

On-Board Memory vs Cloud

Some keyboard makers force you to have internet connection or install their driver software, in order to use the keyboard as you configured it.

For example,

Razer Orbweaver Keypad forces you to install their “Razer Synapse”. You need to install it, and also register online, and also have internet connection, to use its key-programing features fully.
〔►see Razer Orbweaver Keypad〕

Many models of Corsair's Keyboard require you to have their driver software in order to use the keyboard.
In particular, Corsair Gaming STRAFE RGB Keyboard.
〔►see Corsair Keyboards〕

Usually that means the keyboard is not usable in Linux.
In some cases, the keyboard does not work at all in linux, or send weird handshake characters when plugged in.

Avoid any Razer or Corsair keyboards.

Logitech gaming keyboards are good. You still need to install the Windows
software to program the keys. (Mac version is available too) But after
that, you can use the keyboard on any machine without their “driver”
software.

For great programable gaming keyboard with full linux compatibility, buy Roccat.
Roccat keyboard

Programable Key User Interface

Great programable firmware need a way to program it.

Here are different methods.

Graphical Software. Most gaming keyboards come with a easy-to-use graphical software to program the keys.

List of Keyboard with Great Firmware

Many expensive keyboards have powerful firmware.

Gaming keyboards usually focus on key macros, and profiles (which is a set of configurations, that you can switch to on-the-fly.).
And has fancy colors per key.
Gaming keyboard usually does not allow arbitrary key remap, nor creating dead keys, nor modifier key layers.