ludic/docs/language/input
Orkuncakilkaya 4979cc0c94 feat: every key on the keyboard is bindable - the F-row, the six-pack, Caps Lock and the numpad
The platform gave these keys no code at all, so a game's rebinding screen could not take
one and nothing said why. Windows asked the active layout what they type and got nothing
(w_vk_char answers 0 for a key with no character); macOS let them fall through to
charactersIgnoringModifiers, which reports NSF1FunctionKey and its neighbours at 0xF704
and up - outside the 256-bit held set either way.

w_keyval and ev_keyval now name them, with the same codes on both: 132-143 F1-F12,
144-149 Home / End / PageUp / PageDown / Insert / Delete, 150 Caps Lock, 152-161 the
numpad digits, 162-166 its * + - . and /. The numpad's Enter is Enter.

Key.F1, Key.Home, Key.Numpad0 and the rest fold at compile time, and Input.key_label
names them without asking the layout - a key that types nothing is called the same thing
on every layout.

examples/library/input_typeless_keys.ludic covers the codes, the names, the held set and
the press edge; 150 passed in ludic-dev test, 33 in selfhost-test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 00:57:02 +03:00
..
_section.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-action.md feat(input): #83 Input Manager + auto-commit the device layer in the frame loop 2026-09-02 07:04:10 +03:00
input-active.md feat(input): #83 Input Manager + auto-commit the device layer in the frame loop 2026-09-02 07:04:10 +03:00
input-axis.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-axis_i.md feat(input,ecs): #79 Input.axis_i directional int + #84 world bounds 2026-09-02 07:44:41 +03:00
input-bind.md feat(input): action maps + deterministic record/replay (#7) 2026-08-31 16:03:56 +03:00
input-bind_pad.md feat(input): #83 Input Manager + auto-commit the device layer in the frame loop 2026-09-02 07:04:10 +03:00
input-cursor_mode.md feat(input): #89 cursor capture — Input.cursor_mode (hide/lock/confine) 2026-09-02 08:06:34 +03:00
input-down.md feat(input): action maps + deterministic record/replay (#7) 2026-08-31 16:03:56 +03:00
input-just_pressed.md feat(input): #83 Input Manager + auto-commit the device layer in the frame loop 2026-09-02 07:04:10 +03:00
input-just_released.md feat(input): #83 Input Manager + auto-commit the device layer in the frame loop 2026-09-02 07:04:10 +03:00
input-key.md docs(api): per-symbol pages, fuzzy search, deep token linking, hover cards 2026-08-29 17:53:22 +03:00
input-key_down.md feat: every key on the keyboard is bindable - the F-row, the six-pack, Caps Lock and the numpad 2026-09-18 00:57:02 +03:00
input-key_label.md feat: every key on the keyboard is bindable - the F-row, the six-pack, Caps Lock and the numpad 2026-09-18 00:57:02 +03:00
input-key_pressed.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-key_released.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-mouse_down.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-mouse_dx.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-mouse_dy.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-mouse_x.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-mouse_y.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-move_i.md feat(engine): #90 atlas-aware Sprite component, #91 become from listeners, 0.3.x ergonomics batch 2026-09-04 01:36:08 +03:00
input-pad_axis.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-pad_button.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-pad_connected.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-poll.md feat(input): action maps + deterministic record/replay (#7) 2026-08-31 16:03:56 +03:00
input-press.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-pressed.md feat(input): action maps + deterministic record/replay (#7) 2026-08-31 16:03:56 +03:00
input-rebind.md feat(input): action maps + deterministic record/replay (#7) 2026-08-31 16:03:56 +03:00
input-record.md feat(input): action maps + deterministic record/replay (#7) 2026-08-31 16:03:56 +03:00
input-release.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-replay.md feat(input): action maps + deterministic record/replay (#7) 2026-08-31 16:03:56 +03:00
input-set_mouse.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-set_pad.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-set_touch.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-strength.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-touch_count.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-touch_x.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-touch_y.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-vector.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00
input-wheel.md feat(input): raw device layer — multi-key held state, analog, mouse, gamepad, touch, full-state replay (#50) 2026-08-31 17:14:24 +03:00