- A tapped shift (on or off) survives the field re-reporting its context:
it lasts until a character is typed, the hint changes or a field is focused
- An input-method reset forgets the guessed text and pending dead key, so
double-space can't delete a character the keyboard never saw
- Fields that state typing preferences only get capitals if they ask
- Trackpad moves in fields without surrounding text make the guess unknown;
Backspace removes a whole grapheme cluster from it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Double-space replaced the space via a Backspace keysym, which clients
apply after the commit: use delete_surrounding_text with the commit
- Tests use a shared FakeEngine that applies ops to a simulated field
- Double-tap shift locks at a sentence start; typing between taps doesn't
- Organization name set: config lives in ~/.config/sloposk/
- Settings (auto-capitalization, double-space period) with a ⚙ panel
- Letter rows come from the compositor's XKB keymap; other letters of the
layout become long-press alternates; globe switches the system layout
over org.kde.keyboard
- One JSON template for non-letter layers; stretch keys even out rows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>