arrangeWindows: Rearrange Windows on MS Windows

arrangeWindowsR Documentation

Rearrange Windows on MS Windows


This function allows you to tile or cascade windows, or to minimize or restore them (on Windows, i.e. when (.Platform$OS.type == "windows")). This may include windows not “belonging” to R.


arrangeWindows(action, windows, preserve = TRUE, outer = FALSE)



a character string, the action to perform on the windows. The choices are c("vertical", "horizontal", "cascade", "minimize", "restore") with default "vertical"; see the ‘Details’ for the interpretation. Abbreviations may be used.


a list of window handles, by default produced by getWindowsHandles().


If TRUE, when tiling preserve the outer boundary of the collection of windows; otherwise make them as large as will fit.


This argument is only used in MDI mode. If TRUE, tile the windows on the system desktop. Otherwise, tile them within the MDI frame.


The actions are as follows:


Tile vertically.


Tile horizontally.


Cascade the windows.


Minimize all of the windows.


Restore all of the windows to normal size (not minimized, not maximized).

The tiling and cascading are done by the standard Windows API functions, but unlike those functions, they will apply to all of the windows in the windows list.

By default, windows is set to the result of getWindowsHandles() (with one exception described below). This will select windows belonging to the current R process. However, if the global environment contains a variable named .arrangeWindowsDefaults, it will be used as the argument list instead. See the getWindowsHandles man page for a discussion of the optional arguments to that function.

When action = "restore" is used with windows unspecified, minimized = TRUE is added to the argument list of getWindowsHandles so that minimized windows will be restored.

In MDI mode, by default tiling and cascading will happen within the R GUI frame. However, if outer = TRUE, tiling is done on the system desktop. This will generally not give desirable results if any R child windows are included within windows.


This function is called for the side effect of arranging the windows. The list of window handles is returned invisibly.


This is only available on Windows.


Duncan Murdoch

See Also



## Not run: ## Only available on Windows :
# This default is useful only in SDI mode:  it will tile any Firefox window
# along with the R windows
.arrangeWindowsDefaults <- list(c("R", "all"), pattern = c("", "Firefox"))

## End(Not run)