diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ae257c0..33ed5947 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,27 @@ change type. Preview the next one with `ludic dev release --dry-run`. A released section may carry a hand-written summary paragraph above its groups (v0.2.0 has one); the generated bullets below it are not edited by hand. +## v0.22.0 — 2026-09-18 + +### Features + +- **Every key on the keyboard is bindable** — the F-row, Home/End/PageUp/PageDown, + Insert/Delete, Caps Lock and the numpad reach a game as codes 132-166. + + Until now the platform gave them 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 back (`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. + + - **The codes are the same on both platforms**: 132-143 are F1-F12, 144-149 are Home, + End, PageUp, PageDown, Insert and Delete, 150 is Caps Lock, 152-161 are the numpad + digits and 162-166 its `*`, `+`, `-`, `.` and `/`. The numpad's Enter is Enter. + - **`Key.F1`, `Key.Home`, `Key.Numpad0`** and the rest fold at compile time like the + other named keys. + - **`Input.key_label`** names them - "F1", "Home", "CapsLock", "Num 0", "Num /" - and + does *not* ask the layout, because a key that types nothing is called the same thing + on every layout. ## v0.21.1 — 2026-09-17 ### Fixes diff --git a/VERSION b/VERSION index a67cebaf..21574090 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.21.1 +0.22.0 diff --git a/changes/typeless-keys.md b/changes/typeless-keys.md deleted file mode 100644 index d5433b01..00000000 --- a/changes/typeless-keys.md +++ /dev/null @@ -1,19 +0,0 @@ -bump: minor -type: feat -**Every key on the keyboard is bindable** — the F-row, Home/End/PageUp/PageDown, -Insert/Delete, Caps Lock and the numpad reach a game as codes 132-166. - -Until now the platform gave them 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 back (`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. - -- **The codes are the same on both platforms**: 132-143 are F1-F12, 144-149 are Home, - End, PageUp, PageDown, Insert and Delete, 150 is Caps Lock, 152-161 are the numpad - digits and 162-166 its `*`, `+`, `-`, `.` and `/`. The numpad's Enter is Enter. -- **`Key.F1`, `Key.Home`, `Key.Numpad0`** and the rest fold at compile time like the - other named keys. -- **`Input.key_label`** names them - "F1", "Home", "CapsLock", "Num 0", "Num /" - and - does *not* ask the layout, because a key that types nothing is called the same thing - on every layout.