X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/877e48a7a9f1db1d8ef773bcb0b6a7c728ef2858..a339e3b6cf323d809647c1bacec0a388e955854c:/Layouts.md?ds=inline diff --git a/Layouts.md b/Layouts.md index b5aacc5..045c2c9 100644 --- a/Layouts.md +++ b/Layouts.md @@ -1,11 +1,12 @@ -Currently, there are **7** layouts. +Currently, there are **8** layouts. lain/layout . + |-- termfair + |-- centerfair |-- cascade |-- cascadetile |-- centerwork - |-- termfair |-- uselessfair |-- uselesspiral `-- uselesstile @@ -27,12 +28,80 @@ Or set them on specific tags like this: How do layouts work? ========================= +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 + +centerfair +---------- + +Similar to `termfair`, but with fixed number of vertical columns. Cols are centerded until there are `nmaster` columns, then windows are stacked as slaves, with possibly `ncol` clients per column at most. + + (1) (2) (3) + +---+---+---+ +-+---+---+-+ +---+---+---+ + | | | | | | | | | | | | | + | | 1 | | -> | | 1 | 2 | | -> | 1 | 2 | 3 | -> + | | | | | | | | | | | | | + +---+---+---+ +-+---+---+-+ +---+---+---+ + + (4) (5) + +---+---+---+ +---+---+---+ + | | | 3 | | | 2 | 4 | + + 1 + 2 +---+ -> + 1 +---+---+ + | | | 4 | | | 3 | 5 | + +---+---+---+ +---+---+---+ + +Like `termfair`, 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: + + lain.layout.centerfair.nmaster = 3 + lain.layout.centerfair.ncol = 1 + cascade ------- Cascade all windows of a tag. -You can control the offsets by setting those two variables: +You can control the offsets by setting these two variables: lain.layout.cascade.cascade_offset_x = 64 lain.layout.cascade.cascade_offset_y = 16 @@ -63,8 +132,8 @@ 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 + 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 @@ -150,7 +219,7 @@ 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") @@ -174,50 +243,10 @@ Here's an example: ... ) -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 @@ -246,9 +275,7 @@ 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" - ... + theme.useless_gap_width = 10 What about layout icons? ======================== @@ -257,15 +284,15 @@ 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 +You can use them as a template for your custom versions. + +[<- home](https://github.com/copycat-killer/lain/wiki) \ No newline at end of file