godotengine / godot-vscode-plugin

Godot development tools for VSCode
MIT License
1.51k stars 149 forks source link

Add Run -> Window Placement -> Screen setting #453

Open tseven opened 1 year ago

tseven commented 1 year ago

Godot version

3.5.2

VS Code version

1.75.1

Godot Tools VS Code extension version

1.3.1

System information

MacOS

Problem statement

I have the game player window set to "Next Monitor" so I can view the compiled game while not obstructing Godot/Code Editor.

Godot vscode plugin doesn't allow choosing which monitor the game window launches on.

The setting in question is: Godot -> Editor Settings -> Run -> Window Placement -> Screen

Proposed solution

It would be great to have this option added to the godot vscode plugin.

Calinou commented 1 year ago

Logic for window placement screen and position/size is here: https://github.com/godotengine/godot/blob/44b41ded82229ca7614403f74234a4282002458b/editor/editor_run.cpp#L95-L188

It needs to be recreated in the plugin's TypeScript code.

DaelonSuzuka commented 5 months ago

Logic for window placement screen and position/size is here: godotengine/godot@44b41de/editor/editor_run.cpp#L95-L188

It needs to be recreated in the plugin's TypeScript code.

Oh wow, I bet I can get that done this week.

Thanks for the reference @Calinou.

LeifintheWind commented 4 months ago

Is there a workaround for this at the moment? It seems to always just place on the left-most monitor regardless of which is the main window or which is 1 or 2.

Calinou commented 4 months ago

Is there a workaround for this at the moment? It seems to always just place on the left-most monitor regardless of which is the main window or which is 1 or 2.

Godot accepts CLI arguments to set the screen identifier that will be used when running the project:

Display options:
  -f, --fullscreen                  R  Request fullscreen mode.
  -m, --maximized                   R  Request a maximized window.
  -w, --windowed                    R  Request windowed mode.
  -t, --always-on-top               R  Request an always-on-top window.
  --resolution <W>x<H>              R  Request window resolution.
  --position <X>,<Y>                R  Request window position.
  --screen <N>                      R  Request window screen.
  --single-window                   R  Use a single window (no separate subwindows).
  --xr-mode <mode>                  R  Select XR (Extended Reality) mode ["default", "off", "on"].

You should be able to specify custom CLI arguments to use when running Godot from the extension (I think there's a setting for this). Try --screen 0, then --screen 1 and so on.