# Tiling

Jay uses an i3-like tiling layout. Windows are arranged automatically in
containers that can be split horizontally or vertically. Containers can be nested
to create complex layouts.

## Grouping Containers

When you group a window, Jay wraps it in a new container with the specified
direction. Subsequent windows opened in that group are placed side by side
(horizontal group) or stacked top to bottom (vertical group).

`alt-d` -- `make-group-h`
: Group the focused window horizontally

`alt-v` -- `make-group-v`
: Group the focused window vertically

`alt-t` -- `change-group-opposite`
: Toggle the current group's direction

## Moving Focus

Move keyboard focus between windows with the directional focus actions:

`alt-h` -- `focus-left`
: Move focus left

`alt-j` -- `focus-down`
: Move focus down

`alt-k` -- `focus-up`
: Move focus up

`alt-l` -- `focus-right`
: Move focus right

Focus crosses container boundaries, so you can navigate across your entire
layout with these four keys.

## Moving Windows

Move the focused window within or between containers:

`alt-shift-h` -- `move-left`
: Move window left

`alt-shift-j` -- `move-down`
: Move window down

`alt-shift-k` -- `move-up`
: Move window up

`alt-shift-l` -- `move-right`
: Move window right

When a window reaches the edge of its container, the move action pushes it into
the adjacent container.

## Focus Parent

Press `alt-f` (`focus-parent`) to move focus from a window to its parent
container. This is useful when you want to operate on an entire group of
windows at once. For example, focusing a parent container and then using
`move-left` moves the whole group rather than a single window.

## Mono Mode

By default, a container shows all its children side by side. Mono mode changes
this so only one child is visible at a time, similar to a tabbed view.

`alt-m` -- `toggle-tab`
: Toggle between tabbed and side-by-side

You can also right-click any title in a container to toggle mono mode.

In mono mode, scroll over the title bar to cycle between windows in the
container.

## Fullscreen

Press `alt-u` (`toggle-fullscreen`) to make the focused window fill the entire
output, hiding the bar and other windows. Press it again to return to the tiled
layout.

For explicit control:

```toml
[shortcuts]
alt-shift-u = "enter-fullscreen"
alt-ctrl-u  = "exit-fullscreen"
```

## Resizing Tiles

Drag the separators between tiles with the mouse to resize them. The separator
changes the cursor to a resize indicator when hovered.

In [window management mode](mouse.md#window-management-mode), you can also
right-drag anywhere on a tile to resize it without needing to target the
separator.

## Closing Windows

Press `alt-shift-c` (`close`) to request the focused window to close. This
sends a polite close request to the application -- it is not a forceful kill.

```toml
[shortcuts]
alt-shift-c = "close"
```

## Toggling Floating

Double-click a tile's title bar to toggle it between tiled and floating. See
[Floating Windows](floating.md) for more details.

## Summary of Tiling Actions

`make-group-h`
: Wrap focused window in a horizontal group

`make-group-v`
: Wrap focused window in a vertical group

`make-group-tab`
: Wrap focused window in a tabbed group

`change-group-opposite`
: Toggle group direction

`focus-left/right/up/down`
: Move keyboard focus

`move-left/right/up/down`
: Move focused window

`focus-parent`
: Focus the parent container

`toggle-tab`
: Toggle tabbed mode

`toggle-fullscreen`
: Toggle fullscreen

`enter-fullscreen`
: Enter fullscreen

`exit-fullscreen`
: Exit fullscreen

`close`
: Request focused window to close

`toggle-floating`
: Toggle between tiled and floating
