Cursor opens in windowed mode instead of full screen

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

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

Operating System

Windows 10/11

Version Information

Version: 3.20.10 (user setup)
VS Code Extension API: 1.128.0
Commit: d6f462cdd0a6a6d1cff570daf980e671d0a63de0
Date: 2026-09-10T21:04:54.045Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 42.10.0
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Windows_NT x64 10.0.26200

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @vusal5555, thanks for the report.

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:

  1. Click somewhere in the Cursor window so it is focused, then click into another app (for example the browser) and back into Cursor.
  2. Close Cursor with the X button in the top right corner of the window.
  3. Start Cursor again. Is the window maximized?

Test B:

  1. 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.
  2. Close Cursor with File > Exit (not the X button).
  3. 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)
  • whether Cursor is minimized when you close it
  • whether you use one monitor or several
  • your “Window Restoration” setting (Settings > search “restoreWindows”)

That will tell us exactly which path is saving the wrong size.

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)

Thanks, that narrows it down a lot.

Two quick tests, both from the WSL terminal:

Test C

  1. Close every Cursor window, then check in Task Manager that no Cursor process is still running.
  2. In the WSL terminal, run cursor . in your usual project folder.
  3. Is the window maximized? Please repeat this three times.

Test D

  1. Open Cursor on your usual project and make sure the window is maximized.
  2. Leave it open. In the WSL terminal, cd into a different folder and run cursor . there.
  3. Is the new window maximized?
  4. 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.

Thank you for your reply Colin.

i did the test C on a fresh system (just turned on my PC) tried to open from the terminal three times and it was in windowed mode

did the test D and it opened in maximized mode.

Checked task manager no cursor process was running,

I do use one monitor.

window.newWindowDimensions is already in the settings.json.

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

  1. Open Cursor from the desktop icon and make sure the window is maximized.
  2. Close it with the X button in the top right corner.
  3. Straight away, run cursor . in your WSL terminal. Is the window maximized or windowed?

Test F

  1. Open Cursor from the desktop icon and make sure the window is maximized. Leave it open.
  2. Restart Windows with Cursor still open (do not close Cursor first).
  3. After the restart, start Cursor from the desktop icon, not from the terminal. Is it maximized or windowed?
  4. 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.

Cursor is windowed here

When I shutfown my windows I close Cursor in maximized mode. in the Run box maximized is selected.

here it is 0 but when I open from Ubuntu terminal it is still opened in windowed mode

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)

  1. Right-click the Cursor icon you normally use, choose Properties, and in the Shortcut tab set “Run” to “Normal window”. Click OK.
  2. Make sure Cursor is fully closed (check Task Manager).
  3. Double-click the icon. Does Cursor open maximized or windowed?
    You can set “Run” back to Maximized afterwards.

Check 2 (Windows terminal, not WSL)

  1. Close Cursor fully.
  2. Open PowerShell, run cd $env:USERPROFILE and then cursor .
  3. Does Cursor open maximized or windowed?

Check 3 (WSL, with logging)

  1. Close Cursor fully.
  2. In your Ubuntu terminal, run: cursor --verbose . > ~/cursor-verbose.txt 2>&1
  3. 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).
  4. 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.

yes it opens in windowed mode

Check 2 (Windows terminal, not WSL)

  1. Close Cursor fully.
  2. Open PowerShell, run cd $env:USERPROFILE and then cursor .
  3. Does Cursor open maximized or windowed?
    it opens in maximized mode
    Check 3 (WSL, with logging)
    1. Close Cursor fully.

    2. In your Ubuntu terminal, run: cursor --verbose . > ~/cursor-verbose.txt 2>&1

    3. 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).

    4. 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 {

      windowed state down below
      “windowsState”: {

          "lastActiveWindow": {
      
              "folder": "vscode-remote://wsl%2Bubuntu/home/vusal5555/projects/hotel-email-reservation-assistant",
      
              "backupPath": "C:\\\\Users\\\\vusal\\\\AppData\\\\Roaming\\\\Cursor\\\\Backups\\\\01d8c50ff3fbea40f9e5875639d7b16c",
      
              "remoteAuthority": "wsl+Ubuntu",
      
              "uiState": {
      
                  "mode": 0,
      
                  "x": 640,
      
                  "y": 320,
      
                  "width": 1280,
      
                  "height": 800
      
              }
      
          },
      
          "openedWindows": \[\],
      
          "lastNonExtensionWindowWasOpenOnShutdown": true