Windows: system-wide mouse cursor flicker after turn completes; fixed only by restarting dwm.exe
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- rust
- Domain
- desktop, operating-systems
Research direction
Start by reproducing the Windows Desktop turn-complete-to-idle sequence and compare cursor behavior during and after a turn. Inspect the pointer, layered-window, composition, and mouse-passthrough cleanup path mentioned in the report; done means the cursor does not flicker after idle or after the app exits, without restarting DWM.
Written by the indexing model from the issue text.
Description
Summary
On Windows, after a Codex Desktop turn finishes (idle), the mouse cursor starts flickering continuously across the entire screen. The flicker is not present while the turn is in progress. It survives full app exit (no ChatGPT/codex processes remaining). Restarting dwm.exe fixes it immediately; rebooting Windows also fixes it. Reloading system cursors via SPI_SETCURSORS does not fix it.
Environment
- OS: Windows (build: run
winverand fill in if needed) - Codex Desktop: 26.715.52143 (Microsoft Store / MSIX)
- Platform: Windows x64
Already ruled out (please do not close as environment noise)
- Custom mouse cursor theme / pointer style
- Background software
- GPU / GPU driver reinstall
- External injectors (e.g. Codex++ / skin injectors)
- Built-in pet / avatar UI feature
- Codex Computer Use
Steps to reproduce
- Open Codex Desktop on Windows.
- Send any message and wait until the turn fully completes (agent becomes idle).
- Move the mouse anywhere on the screen (including empty desktop).
Expected
Cursor remains normal after turn completion.
Actual
| Condition | Result |
|---|---|
| During turn | No flicker |
| After turn completes (idle) | Continuous system-wide cursor flicker |
| Start a new turn | Flicker temporarily stops during the turn |
| That turn ends | Flicker returns |
| Fully quit Codex (no ChatGPT/codex processes in Task Manager) | Flicker continues |
SystemParametersInfo(SPI_SETCURSORS) / restore system cursors |
No effect |
Stop-Process -Name dwm -Force (DWM restarts) |
Flicker stops immediately |
| Reboot Windows | Flicker stops |
Inference
The post-turn idle path corrupts DWM cursor composition / hardware cursor state.
The bad state:
- outlives the Codex process
- is not fixed by reloading the cursor scheme from the registry
- is cleared only by recycling DWM (or rebooting Windows)
Workaround
Stop-Process -Name dwm -Force
Why this report is actionable
- Clear phase lock: only after turn idle, not during streaming
- Clear layer lock: DWM session state (process exit does not help; DWM restart does)
- Controlled exclusions listed above so it is not mistaken for cursor pack / driver / injector issues
- Optional: 10s screen recording starting at turn completion helps a lot
Request
Please investigate the turn-complete → idle path on Windows Desktop (pointer / layered window / composition / mouse passthrough cleanup) for anything that can leave DWM’s cursor composition in a bad state after the app exits.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·