# Maximize

`Maximize` flags bool | forget horizontal p vertical p

Without its optional arguments (or if the bool bit has the value "") Maximize causes the window to alternately switch from a full-screen size to its normal size. To force a window into maximized (normal) state you can use a "" or "" value for the bool argument.

With just the parameter "forget" a maximized window reverts back into normal state but keeps its current maximized size. This can be useful in conjunction with the commands and . If the window is not maximized, nothing happens.

With the optional arguments horizontal and vertical, which are expressed as percentage of a full screen, the user can control the new size of the window. An optional suffix '' can be used to indicate pixels instead of percents of the screen size. If horizontal is greater than 0 then the horizontal dimension of the window is set to horizontal*screen_width/100. If the value is smaller than 0 the size is subtracted from the screen width, i.e. -25 is the same as 75. If horizontal is "", it is maximized to curren available space until finding any obstacle. The vertical resizing is similar. If both horizontal and vertical values are "grow", it expands vertically first, then horizontally to find space. Instead of the horizontal "grow" argument, "" or "" can be used respectively "" and "". The optional flags argument is a space separated list containing the following key words: fullscreen, ewmhiwa, growonwindowlayer, growonlayers and screen. causes the window to become fullscreened if the appropriate EWMH hint is set. causes fvwm to ignore the EWMH working area. causes the various grow methods to ignore windows with a layer other than the current layer of the window which is maximized. The option must have two integer arguments. The first one is the minimum layer and the second one the maximum layer to use. Windows that are outside of this range of layers are ignored by the grow methods. A negative value as the first or second argument means to assume no minimum or maximum layer. must have an argument which specifies the Xinerama screen on which to operate. It can be 'p' for the primary screen, 'c' for the current screen (containing the mouse pointer), 'g' for the global screen or the screen number itself (counting from zero). This option is only useful with multiple Xinerama screens.

Here are some examples. The following adds a title-bar button to switch a window to the full vertical size of the screen:

     0 4 A Maximize 0 100

The following causes windows to be stretched to the full width:

     0 4 A Maximize 100 0

This makes a window that is half the screen size in each direction:

     0 4 A Maximize 50 50

To expand a window horizontally until any other window is found:

     0 4 A Maximize 0 grow

To expand a window until any other window on the same or a higher layer is hit.

     0 4 A Maximize growonlayers $[w.layer] -1 grow grow

To expand a window but leave the lower 60 pixels of the screen unoccupied:

     0 4 A Maximize 100 -60p

Values larger than 100 can be used with caution.