Skip to content

Choose Windows-safe default hotkeys #25

Description

@martinbha

Goal

Ship Windows default hotkeys that do not collide with AltGr or platform conventions.

Context

The shared defaults in crates/panes-platform/src/lib.rs use Control+Alt+<key> for every binding. On Windows, Ctrl+Alt is equivalent to AltGr, which international keyboard layouts use to type characters (AltGr+4 etc.), so registering Control+Alt+Digit1..6 and letter combinations shadows normal typing for those users. Windows also has its own conventions (Win+arrows for snapping) and reserved combinations (Ctrl+Alt+Delete). The config system from #5 lets users rebind, but defaults are what most people keep.

Scope

  • Decide per-platform default bindings: keep the current set on macOS, choose a Windows-safe set (avoid Ctrl+Alt with digits/letters; consider Win- or Ctrl+Win-based chords, noting which Win combinations the OS reserves).
  • Restructure default_hotkey_bindings() to return platform-appropriate defaults (compile-time cfg or a platform parameter).
  • Keep config override behavior unchanged; document the per-platform defaults in docs/config.example.toml and the README.
  • Update the binding-consistency tests to cover both default sets.

Implementation Notes

  • Sequence with Add Windows tray menu and hotkey runtime #7 (Windows tray/hotkey runtime); the decision is needed before Windows defaults ship, not before.
  • global-hotkey supports the Super/Meta modifier for Win-key chords; verify which Win+key combinations Windows Explorer already claims (Win+arrows are taken by Snap; Ctrl+Win+arrows by virtual desktops).

Acceptance Criteria

  • Windows defaults contain no Ctrl+Alt+digit/letter combinations.
  • macOS defaults are unchanged.
  • Tests assert each platform's default set parses and has no duplicates.
  • Docs state the defaults per platform.

Validation

  • cargo fmt --all -- --check
  • cargo check --workspace
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • Manual Windows check with an AltGr layout (e.g. German or Polish) once the Windows runtime exists.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestwindowsWindows platform adapter and integration

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions