Skip to content

Commit

Permalink
fixup! Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
nikitabobko committed Oct 29, 2023
1 parent c30fcf9 commit 3d37001
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 5 deletions.
Binary file added docs/.assets/h_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.assets/tree.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 43 additions & 5 deletions docs/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
**Table of contents**

- [Tree](#tree)
- [Layouts](#layouts)
- [Normalization](#normalization)
- [Floating windows](#floating-windows)
- [Default keybindings](#default-keybindings)
Expand All @@ -15,10 +16,35 @@
- [Multiple displays](#multiple-displays)

## Tree
TODO DOCUMENTATION. This section is yet to be written, for now you can refer to https://i3wm.org/docs/userguide.html#tree

AeroSpace stores all windows and wrapping layout containers in a tree. AeroSpace tree tiling model is [inspired by
i3](https://i3wm.org/docs/userguide.html#tree).

- Each workspace contains its own single root node
- Each non-leaf node can contain arbitrary number of children nodes
- Windows are the only possible leaf nodes. Windows contain zero children nodes
- Every non-leaf node has two properties: layout and orientation. 2 possible layouts and 2 possible orientations combined produce
[4 possible layouts](#layouts) in total.

When we say "layout of the window", we refer to the layout of the window's parent.

It's easier to understand tree tiling model by looking at examples

![](./.assets/h_list.png)
![](./.assets/tree.png)

### Layouts

AeroSpace provides 4 possible layouts:
- horizontal list (in i3, it's called "horizontal split")
- vertical list (in i3, it's called "vertical split")
- horizontal accordion (analog of i3's "tabbed layout")
- vertical accordion (analog of i3's "stacked layout")

### Normalization
TODO DOCUMENTATION

By default, AeroSpace does two types of normalizations to the tree:
- Containers that have only one child are "flattened".

### Floating windows
TODO DOCUMENTATION
Expand All @@ -27,6 +53,7 @@ Normally, floating windows are not part of the tiling tree. But it's not the cas
perspective, floating windows are part of the tree.

## Default keybindings

TODO DOCUMENTATION the idea behind default keybindings

## Configuring AeroSpace
Expand All @@ -35,8 +62,8 @@ AeroSpace will read config file from `~/.aerospace.toml`. Please see the followi
- The default config contains all possible keys with comments: [default-config.toml](../config-examples/default-config.toml)
- i3 like config: [i3-like-config-example.toml](../config-examples/i3-like-config-example.toml)

AeroSpace uses TOML format for the config. TOML is a popular format with open specification. TOML is easy to read, and it supports
comments. See [TOML site for more info](https://toml.io/en/)
AeroSpace uses TOML format for the config. TOML is easy to read, and it supports comments. See [TOML site for more
info](https://toml.io/en/)

### Binding modes
TODO DOCUMENTATION
Expand All @@ -57,7 +84,18 @@ TODO DOCUMENTATION
Enable 'Group windows by application'

### A note on 'Displays have separate Spaces'
TODO DOCUMENTATION

AeroSpace doesn't care about `System Settings -> Desktop & Dock -> Displays have separate Spaces` setting. It works equally good
whether this option is turned off or on.

Overview of 'Displays have separate Spaces'

| | 'Displays have separate Spaces' is enabled | 'Displays have separate Spaces' is disabled | | |
|-------------------------------------------------------------|--------------------------------------------|---------------------------------------------|---|---|
| When the first display is in fullscreen | 😊 Second monitor operates independently | 😔 Second monitor is black screen | | |
| Is it possible to place a window on the border of monitors? | 😔 No | 😊 Yes | | |
| macOS status bar ... | ... is displayed on both monitors | ... is displayed only on main monitor | | |


## Multiple displays
TODO DOCUMENTATION
Expand Down

0 comments on commit 3d37001

Please sign in to comment.