FvwmRearrange is only configured using command line options. These options can come before or after the
boundingbox, and all start with a '-'. Below the options are split into categories, TILINGOPTIONS,
CASCADINGOPTIONS, GENERALOPTIONS, RESIZINGOPTIONS, FILTERINGOPTIONS, and ORDERINGOPTIONS.
TILINGOPTIONS
Tiling takes the windows inside the bounding box, creates a grid of equal sized cells based on the number
of windows, then resizes and moves the windows to fill the cells, starting at the top left. The cells are
then filled one row at a time (from left to right) working downward.
Windows may have minimum size or size increment EMWH hints, so there could be gaps between windows or
some windows minimum size might be bigger than the cell. The ResizeHintOverride fvwm Style will override
this behavior and make windows fit in their cells better.
-auto_tile
This is the default behavior which tiles all windows into as close to a square grid as possible.
There can be up to one more column than row (or one more row than column with -swap), depending on
number of windows. If the option -max_nN is also provided, then the grid will have N more columns
than rows (or N more rows than columns if -swap is included). This option implies -fill_start so all
space will be used. If -fill_end option is provided, the free space is used at the end instead.
-tile
This will tile the windows into a single row (or column if with -swap). If -max_nN is also provided,
there will be at most N columns per row (or N rows per column with -sawp) in the resulting grid. If
the grid has more cells than the number of windows, then the additional cells at the end will be left
open, unless the -fill_start or -fill_end options are included.
-max_n N
This option alters how the grid is computed. When using -auto_tile this gives the number of more
columns than rows (or more rows than columns with -swap). When using -tile this gives the max number
of columns, before a new row is created (or max number of rows with -swap). Default is 0.
-swap
Swaps the rows and columns, and swaps the direction the cells are filled, by starting at the top left
cell and filling each column downward (from top to bottom) while working to the right. This use to be
called horizontal sort (with the default being vertical sort), and the old option -h is an alias for
-swap, due to this history.
-fill_start
This will use any unused space in the grid by filling the first row (or first column with -swap) left
open in the grid. This is done by growing the windows in the row (or column) to fill the unused
space. The rest of the windows will then fill up the rest of the grid.
-fill_end
This will use any unused space in the grid by filling the last row (or last column with -swap) left
open in the grid.
-gap_x N, -gap_y N, -gap N
This will set the gap between the cells the windows are placed in. -gap_x sets the size of the
horizontal gap, -gap_y sets the size of the vertical gap, and -gap sets both the size of the
horizontal and vertical gap to be the same. The value N is the number of pixels between cells, or the
width of the line between cells. Default: 0.
CASCADINGOPTIONS
Cascading takes all windows in the bounding box, places the first window in the upper left corer of the
bounding box, then stacks the second window just below the first shifted slightly down and to the right,
so the previous window can be seen behind it. This process is repeated placing each window slightly down
and to the right of the previous window.
By default the windows are resized such that their height and width are 75% of the bounding box’s height
and width. Though as the windows are cascaded, windows will shrunk so they will stay inside the bounding
box. The -nostretch and -noresize options will prevent windows from being stretched or resized.
-cascade
Cascade windows inside the bounding box.
-cascadew arg
Specifies the width of the cascade windows. arg is a percentage of the bounding box’s width, or a
pixel value if a p is suffixed. Windows are shrunk if the width pushes them outside the bounding box.
Default is 75.
-cascadeh arg
Specifies the height of the cascade windows. arg is a percentage of the bounding box’s height, or a
pixel value if a p is suffixed. Windows are shrunk if the height pushes them outside the bounding
box. Default is 75.
-inc_equal
Make the x and y increment equal to the maximum of the two values. This is useful to get the offset
to be equal to the size of the border and title bar in both directions. This can be combined with
-incx,_-incy, -flatx, and -flaty.
-incx arg
Specifies an additional horizontal increment which is successively added to cascaded windows. arg is
a percentage of bounding box’s width, or a pixel value if a p is suffixed. Default is zero.
-incy arg
Specifies an additional vertical increment which is successively added to cascaded windows. arg is a
percentage of bounding box’s height, or a pixel value if a p is suffixed. Default is zero.
-flatx
Inhibits incrementing the horizontal position by a windows border width (and title width if titles
are on the right or left). Useful with -incx to better control the horizontal increment.
-flaty
Inhibits incrementing the vertical position by a windows border width (and title width if titles are
on the top or bottom). Useful with -incy to better control the vertical increment.
GENERALOPTIONS
-screen name
By default the current monitor is used to determine what windows to cascade/tile, and is used as the
base bounding box. This will use the monitor specified by the RandR name instead. If name is equal to
"g" the global monitor (bounding box containing all monitors is used). Since this may cause windows
to span across multiple monitors, the working area is ignored (see ewmhiwa).
-noraise
Inhibits window raising, leaving the depth ordering intact.
-maximize
When moving/resizing a window, put them into a maximized state. This makes so Maximize can be used to
restore the previous size and position.
-animate
When only moving windows (-noresize is used), use AnimateMove instead of Move to move windows.
-ewmhiwa
When rearranging windows, make the calculation ignore the working area, such as EwmhBaseStruts; by
default, FvwmRearrange will honour the working area. This option may place windows outside of the
current monitor.
RESIZINGOPTIONS
By default both tiling and cascading will resize windows based on the provided options. These options
will limit this behavior.
-noresize
Inhibits window resizing, leaving window sizes intact.
-nostretch
Inhibits windows from growing to fit the grid cell (when tiling) or bounding box (when cascading).
Windows are still shrunk to fit but not expanded. This implies both -nostretchx and -nostretchy.
-nostretchx
Inhibits windows from growing horizontally to fit, but they will still be shrunk.
-nostretchy
Inhibits windows from growing vertically to fit, but they will still be shrunk.
FILTERINGOPTIONS
These options affect which windows inside the bounding box will be tiled or cascaded.
-all
Cause skipped, sticky, and transient windows to also be cascaded/tiled (ignored by default). This is
a shortcut for -skiplist, -sticky and -transient.
-some
Don’t include maximized windows and windows without title bars (useful when cascading) when
cascading/tiling. This is a shortcut for -no_maximized and -no_titled.
-skiplist
Causes windows on the windows skip list (see WindowListSkip style) to also be affected.
-sticky
Causes sticky windows to also be affected. This is a shortcut for -sticky_page and -sticky_desk.
-sticky_page
Causes windows sticky across pages to also be affected.
-sticky_desk
Causes windows sticky across desks to also be affected.
-transient
Causes transient windows to also be affected.
-no_maximized
Don’t include windows in the maximized state to be cascaded/tiled.
-no_titled
Don’t include windows with title bars to be cascaded/tiled.
-desk
Causes all windows on the desk to be cascaded/tiled instead of only windows that intersect the
bounding box.
ORDERINGOPTIONS
Windows are tiled or cascaded based on their order. By default the order is based off fvwm’s WindowList
order (usually based off the order the windows were last focused). These options control the window
order.
-order_name
Order the windows by their name.
-order_icon
Order the windows by their icon name.
-order_class
Order the windows by their class.
-order_resource
Order the windows by their resource.
-order_xy
Order the windows based on their (x, y) coordinate position. This is a lexicographic ordering, by
comparing x-coordinates first, then if the x-coordinates are equal compare the y-coordinates. This
ordering matches the ordering of the -swap tiling option.
-order_yx
Order the windows based on their (x, y) coordinate position. This is a lexicographic ordering, by
comparing y-coordinates first, then if the y-coordinates are equal compare the x-coordinates. This
ordering matches the default positing of tiling windows.
-order_hw
Order the windows based on their height, and if their heights are the same compare windows based on
their width. This can be useful with -cascade and -noresize to stack windows based on their size.
-order_wh
Order the windows based on their width, and if their widths are the same compare windows based on
their height. This can be useful with -cascade and -noresize to stack windows based on their size.
-reverse
Reverses the window ordering.