|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
-
- lain/layout
- .
- |-- termfair
- |-- termfair.center
- |-- cascade
- |-- cascade.tile
- |-- centerwork
- |-- centerwork.horizontal
-
- Usage
- =====
-
- As usual, specify your favourites in `awful.layout.layouts`, or set them on specific tags with [`awful.layout.set`](https://awesomewm.org/doc/api/libraries/awful.layout.html#set).
-
- ```lua
- awful.layout.set(lain.layout.termfair, tag)
- ```
-
- How do layouts work?
- ====================
-
- `termfair`
- --------
-
- 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:
-
- ```lua
- lain.layout.termfair.nmaster = 3
- lain.layout.termfair.ncol = 1
- ```
-
- `termfair.center`
- ----------
-
- 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, this sets `termfair.center` to 3 columns and at least 1 row:
-
- ```lua
- lain.layout.termfair.center.nmaster = 3
- lain.layout.termfair.center.ncol = 1
- ```
-
- `cascade`
- -------
-
- Cascade all windows of a tag.
-
- You can control the offsets by setting these two variables:
-
- ```lua
- lain.layout.cascade.offset_x = 64
- lain.layout.cascade.offset_y = 16
- ```
-
- The following reserves space for 5 windows:
-
- ```lua
- 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.
-
- `cascade.tile`
- -----------
-
- 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:
-
- ```lua
- lain.layout.cascade.tile.offset_x = 2
- lain.layout.cascade.tile.offset_y = 32
- lain.layout.cascade.tile.extra_padding = 5
- lain.layout.cascade.tile.nmaster = 5
- lain.layout.cascade.tile.ncol = 2
- ```
-
- `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 `offset_x` to a very small value or even 0 is recommended 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 on left and right, alternately.
-
- +--------------------------+
- | +---+ +----------+ +---+ |
- | | | | | | | |
- | | | | | | | |
- | | | | | | | |
- | +---+ | MAIN | +---+ |
- | +---+ | | +---+ |
- | | | | | | | |
- | | | | | | | |
- | | | | | | | |
- | +---+ +----------+ +---+ |
- +--------------------------+
-
- *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:
-
- ```lua
- 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),
- -- [...]
- )
- ```
-
- `centerwork.horizontal`
- -----------
-
- Same as `centerwork`, except that the main
- window expands horizontally, and the additional windows
- are put ontop/below it. Useful if you have a screen turned 90°.
-
- Pre 4.0 `uselesstile` patches
- =============================
-
- In branch 3.5, this module provided useless gaps layouts. Since useless gaps have been implemented in Awesome 4.0, those layouts have been removed.
-
- Following are a couple of `uselesstile` variants that were not part of lain. They are kept only for reference and are not supported.
-
- Xmonad-like
- -----------
-
- If you want to have `awful.layout.suit.tile` behave like xmonad, with internal gaps two times wider than external ones, download [this](https://gist.github.com/lcpz/9e56dcfbe66bfe14967c) as `lain/layout/uselesstile`.
-
- Inverted master
- ---------------
-
- Want to invert master window position? Use [this](https://gist.github.com/lcpz/c59dc59c9f99d98218eb) version. You can set `single_gap` with `width` and `height` in your `theme.lua`, in order to define the window geometry when there's only one client, otherwise it goes maximized. An example:
-
- theme.single_gap = { width = 600, height = 100 }
-
- What about layout icons?
- ========================
-
- They are located in ``lain/icons/layout``.
-
- To use them, define new `layout_*` variables in your ``theme.lua``. For instance:
-
- ```lua
- theme.lain_icons = os.getenv("HOME") ..
- "/.config/awesome/lain/icons/layout/default/"
- theme.layout_termfair = theme.lain_icons .. "termfair.png"
- theme.layout_centerfair = theme.lain_icons .. "centerfair.png" -- termfair.center
- theme.layout_cascade = theme.lain_icons .. "cascade.png"
- theme.layout_cascadetile = theme.lain_icons .. "cascadetile.png" -- cascade.tile
- theme.layout_centerwork = theme.lain_icons .. "centerwork.png"
- theme.layout_centerworkh = theme.lain_icons .. "centerworkh.png" -- centerwork.horizontal
- ```
-
- Credit 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.
|