Skip to content

Quake Mode hotkey intermittently fails to register on startup (macOS) #11403

@vicshulha

Description

@vicshulha

Summary

Quake Mode global hotkey (bound to Cmd+§) intermittently fails to register on Warp startup. When the failure happens, the hotkey produces no effect anywhere — including in apps with a single window where macOS would not intercept Cmd+` — so the event is simply not reaching Warp. After quitting and relaunching Warp manually (sometimes 2–3 times) the hotkey starts working reliably across all apps until the next restart.

Problem

This looks like a race during keyboard-event-tap registration at launch (e.g. CGEventTapCreate succeeds but the tap is created in a disabled state, or registration happens before the input source / keymap is ready). Once the hotkey "wakes up" it works everywhere — so this is not the well-known Cmd+§ ↔ macOS "Move focus to next window in active application" collision, even though the chosen hotkey would normally invite that suspicion.

Side note: similar startup-only flakiness has occasionally been observed with in-app tab shortcuts (Cmd+something for tab manipulation). No firm repro, but worth checking whether the underlying init path is shared between global hotkeys and in-app keybindings.

Expected behavior

The Quake Mode hotkey should bind reliably on every launch, without requiring multiple manual restarts.

Actual behavior

On some launches the hotkey does nothing at all — pressing it produces no response regardless of focused app or window count. Quitting and relaunching Warp manually, repeated 2–3 times, eventually makes the hotkey start working, after which it remains reliable until the next restart.

Reproduction steps or desired workflow

  1. Bind Quake Mode hotkey to Cmd+§ on a macOS ISO keyboard.
  2. Launch Warp (especially as a login item or shortly after an auto-update).
  3. Press the hotkey from any focused app, including apps with a single window.
  4. Observe that on some launches the hotkey does nothing — the event is not reaching Warp.
  5. Quit and relaunch Warp manually, repeating 1–3 times until the hotkey starts working.
  6. Once it works, it works reliably across all focused apps until the next restart.

Related UX suggestion

The hotkey picker silently accepts combinations that collide with macOS-reserved shortcuts. Example: Cmd+§ (same physical key as Cmd+` on ISO keyboards) collides with the macOS default "Move focus to next window in active application". The UI gives no hint. It would help to:

  • Warn inline when the chosen combination conflicts with a macOS system shortcut.
  • Offer a one-click alternative that keeps the user's primary key and only swaps the modifier (e.g. propose Ctrl+§ instead of Cmd+§), so muscle memory is preserved.

Possible mitigation

If technically feasible: after registration, verify with CGEventTapIsEnabled() on a short delay and recreate the tap if it is disabled; retry with backoff if the keymap is not ready yet. If a clean fix is not possible, at minimum exposing a "Re-register hotkey" button in settings would save users the quit-and-relaunch ritual.

Environment

  • ISO keyboard layout
  • Quake Mode bound to Cmd+§
  • Accessibility permission for Warp: granted
  • No third-party global-hotkey managers running (no Raycast / Alfred / Karabiner / Rectangle / etc.)

Artifacts

None attached

Warp version

v0.2026.05.18.05.32.stable_02

Operating system

macOS 13.0 (build 22A8380)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:settings-keybindingsSettings UI, preferences, keybindings, and keyboard-shortcut management.area:window-tabs-panesWindow, tab, pane, and workspace layout management.bugSomething isn't working.os:macmacOS-specific behavior, regressions, or requests.repro:mediumThe report suggests a plausible repro path, but some uncertainty remains.triagedIssue has received an initial automated triage pass.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions