Skip to content

Commit 49f1257

Browse files
committed
modified: docs/guide.md
1 parent e799cb3 commit 49f1257

File tree

2 files changed

+55
-10
lines changed

2 files changed

+55
-10
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
/.build
33
# IDK, AppCode randomly creates this EMPTY file. I have no idea what this is
44
/default.profraw
5+
/.DS_Store
56

67
# XCode User settings
78
xcuserdata/

docs/guide.md

+54-10
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,14 @@ enable-normalization-opposite-orientation-for-nested-containers = false
123123
```
124124

125125
### Floating windows
126-
TODO DOCUMENTATION
127126

128-
Normally, floating windows are not part of the tiling tree. But it's not the case with `focus` command. From `focus` command
129-
perspective, floating windows are part of the tree.
127+
Normally, floating windows are not considered to be part of the [tiling tree](#tree). But it's not the case with
128+
[`focus`](./commands.md#focus) command.
129+
130+
From [`focus`](./commands.md#focus) command perspective, floating windows are part of [the tree](#tree). The floating window
131+
parent is determined as the smallest tiling container that contains the center of the floating window.
132+
133+
This technique eliminates the need for an additional binding for focusing floating windows.
130134

131135
## Default keybindings
132136

@@ -142,22 +146,63 @@ AeroSpace uses TOML format for the config. TOML is easy to read, and it supports
142146
info](https://toml.io/en/)
143147

144148
### Binding modes
145-
TODO DOCUMENTATION. For now you can refer to https://i3wm.org/docs/userguide.html#binding_modes
149+
150+
You can create multiple sets of bindings by creating different binding modes. When you switch to a different binding mode, all
151+
the bindings from the current mode are deactivated, and only the bindings specified in the new mode become active. The initial
152+
binding mode that AeroSpace starts out with is "main".
153+
154+
This feature is absolutely identical to the one [in i3](https://i3wm.org/docs/userguide.html#binding_modes)
155+
156+
Working with binding modes consists of two parts: 1. defining a binding to switch to the binding mode and 2. declaring the binding
157+
mode itself.
158+
159+
```toml
160+
[mode.main.binding] # Declare 'main' binding mode
161+
alt-r = "mode resize" # 1. Define a binding to switch to 'resize' mode
162+
163+
[mode.resize.binding] # 2. Declare 'resize' binding mode
164+
minus = 'resize smart -50'
165+
equal = 'resize smart +50'
166+
```
146167

147168
### Commands
148169

149170
AeroSpace is controlled by commands. For more info see [the list of all available commands](./commands.md).
150171

151172
## Emulation of virtual workspaces
152173

153-
The supposed workflow is to only have one macOS Space (or as many as monitors you have) and don't interact with macOS spaces in
154-
any way
174+
Native macOS Spaces have a lot of problems.
175+
176+
- The animation for Spaces switching is slow
177+
- You can't disable animation for Spaces switching (you can only make it slightly faster by turning on `Reduce motion` setting,
178+
but it's suboptimal)
179+
- You have a limit of Spaces (up to 16 Spaces with one monitor)
180+
- You can't create, delete, reorder Spaces with hotkeys
181+
- Apple doesn't provide public API to create, delete, reorder and switch Spaces
182+
183+
Since Spaces are so hard to deal with, AeroSpace reimplements Spaces and calls them "Workspaces". The idea is that if the
184+
workspace isn't active then all of its windows are placed outside of the visible area of the screen. Once you switch back to the
185+
workspace, (by the means of binding, or by choosing the workspace in the tray icon list) windows are placed back to the visible
186+
area of the screen.
187+
188+
When you exit the AeroSpace or when the AeroSpace is about to crash, AeroSpace will place all windows back to the visible area of
189+
the screen.
155190

156-
When user quits AeroSpace or before crashing, AeroSpace puts windows back to the center of the screen
191+
> [!NOTE]
192+
> For better or worse, macOS doesn't allow to place windows outside of the visible area entirely. You will still be able to see a
193+
> few pixels of "hidden" windows in the bottom right corner of your screen. That means, that if AeroSpace crashes badly you will
194+
> still be able to manually "unhide" the windows by dragging these few pixels to the center of the screen.
195+
196+
The supposed workflow of using AeroSpace workspaces is to only have one macOS Space (or as many as monitors you have, if `Displays
197+
have separate Spaces` is enabled) and don't interact with macOS Spaces anymore.
157198

158199
### A note on mission control
159-
TODO DOCUMENTATION
160-
Enable 'Group windows by application'
200+
201+
For some reason, mission control doesn't like that AeroSpace puts a lot of windows in the bottom right corner of the screen.
202+
Mission control shows windows too small even if it has enough space to show them bigger.
203+
204+
To workaround it, you can enable `System Settings -> Desktop & Dock -> Group windows by application` setting. For some weird
205+
reason, it helps.
161206

162207
### A note on 'Displays have separate Spaces'
163208

@@ -174,6 +219,5 @@ Overview of 'Displays have separate Spaces'
174219

175220

176221
## Multiple displays
177-
TODO DOCUMENTATION
178222
TODO DOCUMENTATION. Add difference with i3
179223

0 commit comments

Comments
 (0)