Skip to content

Add a full stop key to the Simple QWERTY letters page - #1049

Merged
enaboapps merged 1 commit into
mainfrom
claude/1048-simple-qwerty-period
Oct 13, 2026
Merged

enaboapps merged 1 commit into
mainfrom
claude/1048-simple-qwerty-period

Conversation

@enaboapps

@enaboapps enaboapps commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Closes #1048

What changed

  • Simple QWERTY Letters page (src-tauri/src/scan_keyboard.rs): the bottom row is now Shift z x c v b n m . Space. The new key is Key::Character('.', '.'), so Shift, Caps and the automatic sentence Shift all still type . and never >.
  • No change was needed in smart_mark. Every supported mark on the Letters page already goes through smart punctuation, so this key is handled like the Numbers-page ./> prose key in Simple QWERTY. It replaces an owned space, types . , sets sentence-start capitalisation for the next letter and gives prediction the sentence-start context. The separate numeric-pad . on Numbers is still a literal decimal point.
  • The QWERTY and Common letters layouts are unchanged. The existing test that the other layouts' Letters rows are unchanged still passes.
  • Settings copy (ScannerPreferences.tsx, ScanningSection.tsx) now mentions the full stop on Letters.

Tests

  • Updated simple_qwerty_has_three_letter_rows_and_keeps_removed_keys_reachable for the new bottom row.
  • Added simple_qwerty_letters_full_stop_stays_a_full_stop_and_starts_a_sentence. It checks that the key gives Output::Punctuation('.') when typed plainly, at a sentence start with the automatic Shift, with a manual Shift and with Caps. It also checks that the next letter is capitalised. The executor side (. typed through the fake injector, with the owned-space Backspace) is already covered by smart_punctuation_edits_only_an_owned_space_and_cleans_up_failures.
  • The panel-fit and bounds tests (layouts_and_predictions_keep_bounds_independent_of_text across all three panel sizes) pass. Because Space is wider than other keys, the bottom row is now the widest row: the panel's preferred width grows from about 921 to 997 px, and the panel scales down to fit narrow screens as before.

Validation (Windows, Node 24.13.0)

  • npm run lint: pass

  • npm test: 13 files, 295 tests passed

  • npm run build: pass

  • cargo fmt --check: pass

  • cargo clippy --all-targets -- -D warnings: pass

  • cargo test: 772 passed, 5 ignored; config 7 passed

  • npm run prediction-model was not run because of a local EPERM rename lock. Instead I copied the gitignored src-tauri/resources/prediction-model, src-tauri/resources/prediction-neural and src-tauri/binaries from the main checkout.

  • Independent review of c9e2383 reported no actionable findings. It confirmed the key always types ., the Numbers-page decimal point is unaffected, and the other layouts are unchanged.

🤖 Generated with Claude Code

The bottom letter row now has a full stop after M and before Space. It
always types a full stop, even with Shift, Caps or the automatic sentence
Shift on, and goes through the same smart punctuation path as other
Letters-page marks: an owned space is replaced, a space follows, and the
next letter is capitalised. Settings copy mentions the new key.

Closes #1048

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@enaboapps enaboapps added this to the v1.0.0-rc.26 milestone Oct 13, 2026
@enaboapps
enaboapps marked this pull request as ready for review October 13, 2026 16:51
@enaboapps
enaboapps merged commit 23b084e into main Oct 13, 2026
6 checks passed
@enaboapps
enaboapps deleted the claude/1048-simple-qwerty-period branch October 13, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a full stop key to the Simple QWERTY letters page

2 participants