Skip to content

feat(cursor): support five localized cursor blinking styles - #697

Open
ventupx wants to merge 1 commit into
Kuddev:mainfrom
ventupx:contrib/cursor-blink-styles
Open

ventupx wants to merge 1 commit into
Kuddev:mainfrom
ventupx:contrib/cursor-blink-styles

Conversation

@ventupx

@ventupx ventupx commented Oct 21, 2026 •

Copy link
Copy Markdown

Result / 用户结果

Appearance settings offer Blink, Smooth, Phase, Expand and Solid. Labels follow the selected application language without bilingual combinations or an extra explanatory paragraph. Solid keeps the cursor visible. Blink remains the default and old boolean settings remain readable.

Design / 设计边界

nebula_settings::CursorBlinkStyle owns parsing, legacy-boolean fallback, reset and persisted values. The terminal owns phase/visibility and painting, including shader effect input. Timers run only for visible, focused, eligible cursors; stale epochs are ignored. Reduced motion keeps the conservative blinking behavior. No new dependency or persisted file format is introduced.

This focused branch starts from upstream 8d6295595e084a12f9c2fe159f65c2dcd332d866. It excludes fork release/version/package metadata. Under the repository's pr-size exclusions, it changes 721 counted lines, within the 1500-line default.

Evidence / 验证依据

Executed on Windows against this branch:

  • python scripts/check_architecture.py --base upstream/main — passed; existing budgets unchanged.
  • python -m unittest scripts.tests.test_architecture_budgets scripts.tests.test_architecture_dependencies scripts.tests.test_architecture_governance — successful (55 tests, 3 platform-specific skips).
  • cargo test --manifest-path tools/i18n-contract/Cargo.toml --locked — 25 passed, 1 existing ignored test.
  • cargo test -p nebula-settings --locked — 101 passed.
  • cargo test -p nebula --test file_line_budget --locked — 2 passed.
  • cargo fmt --all -- --check and git diff --cached --check — passed.
  • cargo check -p nebula --bin pebrel --features gpui-test-support --tests --locked — passed.
  • cargo test -p nebula --bin pebrel --features gpui-test-support --locked --no-run — passed. Targeted GPUI tests use the same interaction-test feature as upstream CI and the filters below with -- --test-threads=1: 31 passed.

Filters: terminal::cursor_blink::, terminal::cursor_painter::, terminal::view::cursor::tests::, terminal::view::tests::, cursor_style_settings_tests::, i18n::tests::.

Regression coverage: Style/legacy-value round trips and reset; blink phase/geometry; focus/visibility and hidden-output notification behavior; painting; keyboard persistence, reopen and Escape cancellation; changing all 11 UI languages preserves the selected style.

Localization: All five style labels and the selector title have typed messages in all 11 supported locales. Translation-table and placeholder contracts are checked.

Visual/platform scope: the integrated changes were manually reviewed in a Windows preview before this split. These branch checks exercise rendered hitboxes/state and keyboard input where applicable; new screenshot captures and a DPI matrix were not run for this head. Linux/macOS current-head validation is left to upstream CI. The earlier full integrated-source validation passed 24 jobs at 6e86ea5c3ff29671043dfc62a788f1d4fde80732; that is supplemental evidence, not a check result for this PR head.

Runtime cost: Animation state and cadence stay per terminal and are gated by visibility/focus. Existing hidden-output tests guard against extra notifications; no platform-wide power or frame-time benchmark is claimed.

Required Review / 必须确认

  • Followed CONTRIBUTING.md, docs/architecture.md, and docs/project-constraints.md.
  • Split by responsibility; no duplicate behavior authority.
  • Architecture check against the upstream target passes; budgets were not inflated.
  • Relevant success/failure/cancellation regressions are covered; platform and visual limitations are stated above.
  • New messages use typed i18n IDs and matching placeholders, with explicit fallback where untranslated.
  • Governance-rule changes: not applicable; none included. Maintainer review and required upstream checks remain necessary before merge.

@ventupx
ventupx requested a review from Kuddev as a code owner October 21, 2026 07:25
@ventupx
ventupx force-pushed the contrib/cursor-blink-styles branch from 3bebeea to 7efa947 Compare October 21, 2026 07:54
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.

1 participant