--- /dev/null
+Currently, there are **7** layouts.
+
+ lain/layout
+ .
+ |-- cascade
+ |-- cascadetile
+ |-- centerwork
+ |-- termfair
+ |-- uselessfair
+ |-- uselesspiral
+ `-- uselesstile
+
+Just add your favourites to ``layouts`` table:
+
+ layouts =
+ {
+ ...
+ lain.layout.termfair,
+ lain.layout.uselesstile,
+ ...
+ }
+
+Or set them on specific tags like this:
+
+ awful.layout.set(lain.layout.uselessfair, tags[1][7])
+
+How do layouts work?
+=========================
+
+cascade
+-------
+
+Cascade all windows of a tag.
+
+You can control the offsets by setting those two variables:
+
+ lain.layout.cascade.cascade_offset_x = 64
+ lain.layout.cascade.cascade_offset_y = 16
+
+The following reserves space for 5 windows:
+
+ lain.layout.cascade.nmaster = 5
+
+That is, no window will get resized upon the creation of a new window,
+unless there's more than 5 windows.
+
+cascadetile
+-----------
+
+Similar to `awful.layout.suit.tile` layout, however, clients in the slave
+column are cascaded instead of tiled.
+
+Left column size can be set, otherwise is controlled by `mwfact` of the
+tag. Additional windows will be opened in another column on the right.
+New windows are placed above old windows.
+
+Whether the slave column is placed on top of the master window or not is
+controlled by the value of `ncol`. A value of 1 means "overlapping slave column"
+and anything else means "don't overlap windows".
+
+Usage example:
+
+ lain.layout.cascadetile.cascade_offset_x = 2
+ lain.layout.cascadetile.cascade_offset_y = 32
+ lain.layout.cascadetile.extra_padding = 5
+ lain.layout.cascadetile.nmaster = 5
+ lain.layout.ncol = 1
+
+`extra_padding` reduces the size of the master window if "overlapping
+slave column" is activated. This allows you to see if there are any
+windows in your slave column.
+
+Setting `cascade_offset_x` to a very small value or even 0 is reccommended to avoid wasting space.
+
+centerwork
+----------
+
+You start with one window, centered horizontally:
+
+ +--------------------------+
+ | +----------+ |
+ | | | |
+ | | | |
+ | | | |
+ | | MAIN | |
+ | | | |
+ | | | |
+ | | | |
+ | | | |
+ | +----------+ |
+ +--------------------------+
+
+This is your main working window. You do most of the work right here.
+Sometimes, you may want to open up additional windows. They're put in
+the following four slots:
+
+ +--------------------------+
+ | +---+ +----------+ +---+ |
+ | | | | | | | |
+ | | 0 | | | | 1 | |
+ | | | | | | | |
+ | +---+ | MAIN | +---+ |
+ | +---+ | | +---+ |
+ | | | | | | | |
+ | | 2 | | | | 3 | |
+ | | | | | | | |
+ | +---+ +----------+ +---+ |
+ +--------------------------+
+
+Yes, the number "four" is fixed. In total, you can only have five open
+windows with this layout. Additional windows are not managed and set to
+floating mode. **This is intentional**.
+
+You can set the order of the four auxiliary windows. This is the default
+configuration:
+
+ lain.layout.centerwork.top_left = 0
+ lain.layout.centerwork.top_right = 1
+ lain.layout.centerwork.bottom_left = 2
+ lain.layout.centerwork.bottom_right = 3
+
+This means: The bottom left slot will be occupied by the third window
+(not counting the main window). Suppose you want your windows to appear
+in this order:
+
+ +--------------------------+
+ | +---+ +----------+ +---+ |
+ | | | | | | | |
+ | | 3 | | | | 0 | |
+ | | | | | | | |
+ | +---+ | MAIN | +---+ |
+ | +---+ | | +---+ |
+ | | | | | | | |
+ | | 2 | | | | 1 | |
+ | | | | | | | |
+ | +---+ +----------+ +---+ |
+ +--------------------------+
+
+This would require you to use these settings:
+
+ lain.layout.centerwork.top_left = 3
+ lain.layout.centerwork.top_right = 0
+ lain.layout.centerwork.bottom_left = 2
+ lain.layout.centerwork.bottom_right = 1
+
+*Please note:* If you use Awesome's default configuration, navigation in
+this layout may be very confusing. How do you get from the main window
+to satellite ones depends on the order in which the windows are opened.
+Thus, use of `awful.client.focus.bydirection()` is suggested.
+Here's an example:
+
+ globalkeys = awful.util.table.join(
+ ...
+ awful.key({ modkey }, "j",
+ function()
+ awful.client.focus.bydirection("down")
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey }, "k",
+ function()
+ awful.client.focus.bydirection("up")
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey }, "h",
+ function()
+ awful.client.focus.bydirection("left")
+ if client.focus then client.focus:raise() end
+ end),
+ awful.key({ modkey }, "l",
+ function()
+ awful.client.focus.bydirection("right")
+ if client.focus then client.focus:raise() end
+ end),
+ ...
+ )
+
+termfair
+--------
+
+I do a lot of work on terminals. The common tiling algorithms usually
+maximize windows, so you'll end up with a terminal that has about 200
+columns or more. That's way too much. Have you ever read a manpage in a
+terminal of this size?
+
+This layout restricts the size of each window. Each window will have the
+same width but is variable in height. Furthermore, windows are
+left-aligned. The basic workflow is as follows (the number above the
+screen is the number of open windows, the number in a cell is the fixed
+number of a client):
+
+ (1) (2) (3)
+ +---+---+---+ +---+---+---+ +---+---+---+
+ | | | | | | | | | | | |
+ | 1 | | | -> | 2 | 1 | | -> | 3 | 2 | 1 | ->
+ | | | | | | | | | | | |
+ +---+---+---+ +---+---+---+ +---+---+---+
+
+ (4) (5) (6)
+ +---+---+---+ +---+---+---+ +---+---+---+
+ | 4 | | | | 5 | 4 | | | 6 | 5 | 4 |
+ +---+---+---+ -> +---+---+---+ -> +---+---+---+
+ | 3 | 2 | 1 | | 3 | 2 | 1 | | 3 | 2 | 1 |
+ +---+---+---+ +---+---+---+ +---+---+---+
+
+The first client will be located in the left column. When opening
+another window, this new window will be placed in the left column while
+moving the first window into the middle column. Once a row is full,
+another row above it will be created.
+
+Default number of columns and rows are respectively taken from `nmaster`
+and `ncol` values in `awful.tag`, but you can set your own.
+
+For example, this sets `termfair` to 3 columns and at least 1 row:
+
+ lain.layout.termfair.nmaster = 3
+ lain.layout.termfair.ncol = 1
+
+uselessfair, uselesspiral & uselesstile
+---------------------------------------
+These are duplicates of the stock `fair`, `spiral` and `tile` layouts.
+However, "useless gaps" (see below) have been added.
+
+Useless gaps
+============
+
+Useless gaps are gaps between windows. They are "useless" because they
+serve no special purpose despite increasing overview. I find it easier
+to recognize window boundaries if windows are set apart a little bit.
+
+The `uselessfair` layout, for example, looks like this:
+
+ +================+
+ # #
+ # +---+ +---+ #
+ # | 1 | | | #
+ # +---+ | | #
+ # | 3 | #
+ # +---+ | | #
+ # | 2 | | | #
+ # +---+ +---+ #
+ # #
+ +================+
+
+All of lain layouts provide useless gaps. To set the width of the gaps,
+you have to add an item called `useless_gap_width` in your `theme.lua`.
+If it doesn't exist, the width will default to 0.
+Example:
+
+ ...
+ theme.useless_gap_width = "5"
+ ...
+
+What about layout icons?
+========================
+
+They are located in ``lain/icons/layout``.
+
+To use them, add lines to your ``theme.lua`` like this:
+
+ ...
+ theme.lain_icons = os.getenv("HOME") .. "/.config/awesome/lain/icons/layout/default/"
+ theme.layout_termfair = theme.lain_icons .. "termfairw.png"
+ theme.layout_cascade = theme.lain_icons .. "cascadew.png"
+ theme.layout_cascadetile = theme.lain_icons .. "cascadetilew.png"
+ theme.layout_centerwork = theme.lain_icons .. "centerworkw.png"
+ ...
+
+Credits goes to [Nicolas Estibals](https://github.com/nestibal) for creating
+layout icons for default theme.
+
+You can use them as a template for your custom versions.
\ No newline at end of file