Repository navigation
Add a full stop key to the Simple QWERTY letters page - #1049
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1048
What changed
src-tauri/src/scan_keyboard.rs): the bottom row is nowShift z x c v b n m . Space. The new key isKey::Character('.', '.'), so Shift, Caps and the automatic sentence Shift all still type.and never>.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.ScannerPreferences.tsx,ScanningSection.tsx) now mentions the full stop on Letters.Tests
simple_qwerty_has_three_letter_rows_and_keeps_removed_keys_reachablefor the new bottom row.simple_qwerty_letters_full_stop_stays_a_full_stop_and_starts_a_sentence. It checks that the key givesOutput::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 bysmart_punctuation_edits_only_an_owned_space_and_cleans_up_failures.layouts_and_predictions_keep_bounds_independent_of_textacross 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: passnpm test: 13 files, 295 tests passednpm run build: passcargo fmt --check: passcargo clippy --all-targets -- -D warnings: passcargo test: 772 passed, 5 ignored; config 7 passednpm run prediction-modelwas not run because of a local EPERM rename lock. Instead I copied the gitignoredsrc-tauri/resources/prediction-model,src-tauri/resources/prediction-neuralandsrc-tauri/binariesfrom the main checkout.Independent review of
c9e2383reported 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