Repository navigation
fix(keymap): release macOS Control character defaults - #658
Merged
Merged
Conversation
Cache script bytes and pending writes instead of permanently memoizing a temporary path or a failed first write. Recreate missing files under the per-layout lock, retaining retry state after partial I/O failures. Refs #622.
Use the Command defaults for the GPUI workspace while preserving plain Control characters for terminal input and explicit user overrides. Keep legacy keymap semantics through caller-selected immutable policies, and match GPUI digit aliases consistently when displaying, clearing or restoring shortcuts. Refs #656.
Exercise Command digits on macOS and Control digits on other hosts while retaining the settings navigation and invalid-index assertions. Refs #656.
YinBuLiao
marked this pull request as ready for review
October 15, 2026 12:23
5 of 6 tasks
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.
Result / 用户结果
Refs #656. In the macOS GPUI workspace, Control+K reaches the terminal as kill-line while Command+K opens the Shell picker. The same default-source policy releases plain Control character shortcuts for paste, font size and numbered tabs. Explicit user Control bindings still take precedence.
Design / 设计边界
The workspace and settings editor select an immutable GPUI keymap policy. It derives defaults from the existing tables, removes only macOS GUI defaults with exactly Control plus a character, and applies the existing Command aliases consistently to registration, display, clear and reset. Legacy callers retain their original model and a separate immutable cache, including when both renderers are compiled.
GPUI's stored digitN and logical digit spellings share the identity already used by its runtime adapter. Clearing another action therefore preserves an explicit owner of that key. The stored format, ordering, source priorities, component editing bindings and terminal encoder are unchanged. No dependency, protocol, native modifier adapter or mutable frontend selector is added.
Ctrl+Tab, Ctrl+Shift/Ctrl+Alt navigation, Option digits and the separate global quick-terminal hotkey retain their current defaults. This is a focused workspace change, not a migration of every Control shortcut.
Related #653 adds an optional clear-screen action; this PR does not duplicate it. That PR's assertion that Ctrl+K remains the picker needs the macOS platform distinction when combining the changes. #534's source replacement and Input editing contracts remain covered.
Evidence / 验证依据
Pinned Rust 1.97.1 on macOS ARM64; base
a2f9b0f666267d1f71e5360e5846b00d2e56c575:--locked --offlineand the pinned toolchain./bin/zsh -dfiPTY test confirmed that sending 0x0b at the cursor removed the trailing DELETED text; the control case retained it. This does not claim physical AppKit keyboard or user-shell acceptance.The earlier commit
cf77ccd4c69bddad24bf8f82a1adb87081013260failed two existing settings-navigation assertions in its macOS ARM64 manual and automatic CI because those tests still pressed Control digits. The test inputs are corrected in current commit39da88db89c63585fba2e8c6a0cc642ea8dd3dbf; the failed runs and logs are retained.Full native validation passed on current commit
39da88db89c63585fba2e8c6a0cc642ea8dd3dbfin run 38728815797 (first attempt). All five actual native jobs completed the full workspace/harness, separate doctests, default GPUI product checks and release workspace checks. Each of the seven final reports emitted the actual Executed message for this run's exact five-platform matrix. The automatic PR run, architecture-contracts and PR-size checks also passed on their first attempt. All four current-SHA runs succeeded; all 30 current check runs are complete (28 success, two expected diagnostic skips).All six new regressions passed on their applicable native platforms. Both corrected settings-navigation cases and the unchanged density-layout case were ordinary PASS on all five hosts. Skipped tests are not counted as passed. Windows LEAK results were accepted by the unchanged CI configuration; their names and counts are retained, without a baseline or cause claim.
Physical keyboard acceptance, screenshots, DPI/long-translation review and interactive CLI acceptance have not been performed.
Required Review / 必须确认