This is a convenience module in order to have less import noise. It
re-exports the following:
a) Commonly used modules in full (Data.Foldable, Data.Applicative, and
so on); though only those that play nicely with each other, so that
XMonad.Prelude can be imported unqualified without any problems.
This prevents things like `Prelude.(.)` and `Control.Category.(.)`
fighting with each other.
b) Helper functions that don't necessarily fit in any other module;
e.g., the often used abbreviation `fi = fromIntegral`.
Added new messages the layout understands to allow changing the grid aspect
ratio and setting the fraction of the master to a given value rather than
changing it relative to the current value.
This patch introduces two new message SetMasterRows and SetMasterCols for the
X.GridVariants.SplitGrid layout, which set the number of rows/columns in the
master grid to the given value. This is useful when setting the number of rows
and/or columns non-incrementally using an interface such as GridSelect.
The old version fairly arbitrarily decided to prefer windows that are too
high over those that are too wide. The new version chooses the number of
columns so that all windows on the screen are as close as possible to the
desired aspect ratio. As a side effect, the layout changes much more
predictably under addition and removal of clients.
GridVariants.TallGrid behaved weird when transformed using Mirror
or Reflect. The new layout SplitGrid does away with the need for
such transformations by taking a parameter to specify horizontal
or vertical splits.
Added a module XMonad.Layouts.GridVariants, which defines layouts
Grid and TallGrid. The former is a customizable version of Grid. The latter
is a combination of Grid and Tall (see doc of the module).