Cursor suddenly started opening in windowed mode randomly after last update “window.newWindowDimensions”: “maximized”, even though I have this settings
Steps to Reproduce
It happens randomly after I close and reopen Cursor
One thing worth knowing first: “window.newWindowDimensions”: “maximized” only applies to windows that have no remembered size yet (for example File > New Window). When you reopen a project you already had open, Cursor restores the size that was remembered when that window was last closed, so this setting will not fix a window that was saved as non maximized.
That means the question is why the remembered state is sometimes “windowed”. Could you try these two quick tests, each starting from a maximized Cursor window with your usual project open?
Test A:
Click somewhere in the Cursor window so it is focused, then click into another app (for example the browser) and back into Cursor.
Close Cursor with the X button in the top right corner of the window.
Start Cursor again. Is the window maximized?
Test B:
Un-maximize the Cursor window (double click the title bar, or Win + Down), then double click the title bar again so it is maximized. Do not click into any other app in between.
Close Cursor with File > Exit (not the X button).
Start Cursor again. Is the window maximized?
Please reply with the result of A and B, and also:
how you normally close Cursor (X button, File > Exit, shutting down Windows, or the “Restart to update” prompt)
In both cases it is maximized. the problem is when I click on the icon to open Cursor it has no problem but when I open it from the terminal with the cursor . command, it sometimes opens in windowed mode. (By the way I am using WSL ubuntu terminal)
Close every Cursor window, then check in Task Manager that no Cursor process is still running.
In the WSL terminal, run cursor . in your usual project folder.
Is the window maximized? Please repeat this three times.
Test D
Open Cursor on your usual project and make sure the window is maximized.
Leave it open. In the WSL terminal, cd into a different folder and run cursor . there.
Is the new window maximized?
Now close both windows with File > Exit, then run cursor . in that second folder again. Is it maximized this time?
And two questions:
The times it opened windowed, was another Cursor window already open somewhere (another project, another monitor or virtual desktop, or minimized in the taskbar)? Or had you closed Cursor only a second or two before running cursor .?
Do you use one monitor or several (for example a laptop that is sometimes docked)?
One last thing to double check: window.newWindowDimensions needs to be in your Windows side User settings, not in the Remote [WSL] or workspace settings, otherwise it has no effect on how windows open.
Thanks, that is really useful. Test C tells us the size Cursor had saved at that moment was already “not maximized”. What we need to find out now is whether the terminal launch is ignoring the saved size, or whether the saved size gets lost when the PC shuts down.
Two more tests, please:
Test E
Open Cursor from the desktop icon and make sure the window is maximized.
Close it with the X button in the top right corner.
Straight away, run cursor . in your WSL terminal. Is the window maximized or windowed?
Test F
Open Cursor from the desktop icon and make sure the window is maximized. Leave it open.
Restart Windows with Cursor still open (do not close Cursor first).
After the restart, start Cursor from the desktop icon, not from the terminal. Is it maximized or windowed?
If it was maximized: repeat steps 1 to 3, but this time minimize Cursor (click its taskbar button) before you restart.
And two quick questions:
When you shut down or restart your PC, is Cursor usually still open, and is it minimized at that point?
Right-click the Cursor icon you normally click, choose Properties, and look at the Shortcut tab. What does the “Run” box say: Normal window, Minimized, or Maximized?
Optional, if you are comfortable with it: after a restart and before starting Cursor, open %APPDATA%\Cursor\User\globalStorage\storage.json in Notepad and search for “windowsState”. Inside “lastActiveWindow” there is a “uiState” with a “mode” value. 0 means Cursor will open maximized, 1 means windowed. Telling us that number lets us see exactly what Cursor saved.
Thanks, that is very helpful. The “0” you found means Cursor had remembered “maximized”, so the terminal launch is not using that value the way we expect. Three short checks will show us exactly where it goes wrong.
Check 1 (icon, 30 seconds)
Right-click the Cursor icon you normally use, choose Properties, and in the Shortcut tab set “Run” to “Normal window”. Click OK.
Make sure Cursor is fully closed (check Task Manager).
Double-click the icon. Does Cursor open maximized or windowed?
You can set “Run” back to Maximized afterwards.
Check 2 (Windows terminal, not WSL)
Close Cursor fully.
Open PowerShell, run cd $env:USERPROFILE and then cursor .
Does Cursor open maximized or windowed?
Check 3 (WSL, with logging)
Close Cursor fully.
In your Ubuntu terminal, run: cursor --verbose . > ~/cursor-verbose.txt 2>&1
Wait for the window, note whether it is maximized or windowed, then close Cursor. The command should finish when Cursor closes (press Ctrl+C if it does not).
Run: grep -i "window state\|WindowsStateHandler\|validateWindowState" ~/cursor-verbose.txt and paste the output here. It only contains window sizes and folder paths (feel free to edit out the paths).
And two more things from storage.json, if you can: paste the whole “windowsState”: { … } block, not only the mode value (it also has x, y, width, height and an “openedWindows” list, which is what we need to compare), and tell us whether the window title shows “WSL: Ubuntu” when you open Cursor from the terminal.
Open PowerShell, run cd $env:USERPROFILE and then cursor .
Does Cursor open maximized or windowed?
it opens in maximized mode
Check 3 (WSL, with logging)
Close Cursor fully.
In your Ubuntu terminal, run: cursor --verbose . > ~/cursor-verbose.txt 2>&1
Wait for the window, note whether it is maximized or windowed, then close Cursor. The command should finish when Cursor closes (press Ctrl+C if it does not).
Run: grep -i "window state\|WindowsStateHandler\|validateWindowState" ~/cursor-verbose.txt and paste the output here. It only contains window sizes and folder paths (feel free to edit out the paths).
here is the output
grep -i “window state|WindowsStateHandler|validateWindowState” ~/cursor-verbose.txt
[main 2026-09-18T09:42:57.411Z] window#validateWindowState: validating window state on 1 display(s) { mode: 1, x: 640, y: 320, width: 1280, height: 800 }
[main 2026-09-18T09:42:57.411Z] window#validateWindowState: single monitor working area { x: 0, y: 0, width: 2560, height: 1392 }
[main 2026-09-18T09:42:57.411Z] window#ctor: using window state { mode: 1, x: 640, y: 320, width: 1280, height: 800 }
[main 2026-09-18T09:43:54.370Z] [WindowsStateHandler] onBeforeShutdown {