Discussed in https://github.com/ghostty-org/ghostty/discussions/12232
Originally posted by MrConnorKenway April 11, 2026
Issue Description
Pressing a modifier key combination that changes the cursor shape (for example, Option on macOS), followed by a key sequence that Ghostty interprets as typing (such as Option+i, a dead key on macOS), causes the cursor-shape state transitions to be skipped. As a result, the following key-release event fails to restore the cursor to its default shape (e.g., .text).
Expected Behavior
After pressing and releasing any modifier combination that changes the cursor shape, releasing the modifier should restore it to the default cursor shape (text/I-beam in normal mode, or arrow in mouse tracking mode).
Actual Behavior
The mouse cursor remains stuck as a crosshair after the keys are released and the mouse is moved. The crosshair persists until another modifier key event triggers a shape transition.
Reproduction Steps
- Open Ghostty with
macos-option-as-alt = falsein the configuration or an empty one. - Ensure the terminal is in normal mode (no mouse tracking application running).
- Press and hold the Option key — observe the cursor changes to a crosshair.
- While holding Option, press i (Option+i is a dead key on macOS that produces text).
- Release all keys.
- Observe the cursor remains a crosshair instead of the expected I-beam/text cursor.
Ghostty Logs
No response
Ghostty Version
Version
- version: 1.3.2-main-+01825411a
- channel: tip
Build Config
- Zig version : 0.15.2
- build mode : .ReleaseFast
- app runtime : .none
- font engine : .coretext
- renderer : renderer.generic.Renderer(renderer.Metal)
- libxev : kqueueOS Version Information
macOS 26
(Linux only) Display Server
None
(Linux only) Desktop Environment/Window Manager
No response
Minimal Ghostty Configuration
macos-option-as-alt = falseAdditional Relevant Configuration
No response
I acknowledge that:
- I have reviewed the FAQ and confirm that my issue is NOT among them.
- I have searched the Ghostty repository (both open and closed Discussions and Issues) and confirm this is not a duplicate of an existing issue or discussion.
- I have checked the "Preview" tab on all text fields to ensure that everything looks right, and have wrapped all configuration and code in code blocks with a group of three backticks (
```) on separate lines.
Activity
30same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with macos-option-as-alt = true.
I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.
I am on version 1.3.1
same here, only for it happens even with
macos-option-as-alt = true. I can convert the cursor back to normal by pressing the Shift key, but if I tab to another app and back to ghostty, it becomes a crosshairs again.I am on version 1.3.1