Floating
Disables automatic tiling entirely. Windows stay where they are and can be moved and resized manually. Just like macOS without a window manager.
Layout
No arrangement is applied. Windows keep their positions:
┌───────────────────────────────────────────────────────────┐│ ││ ││ ┌────────────────┐ ││ │ │ ││ │ 1 │ ┌──────────────────────┐ ││ │ │ │ │ ││ │ │ │ │ ││ └────────────────┘ │ 2 │ ││ │ │ ││ │ │ ││ ┌────────────┴───┐ │ ││ │ │──────────────────┘ ││ │ 3 │ ││ │ │ ││ └────────────────┘ ││ ││ │└───────────────────────────────────────────────────────────┘Capabilities
- Adjustable ratio: No
- Adjustable nmaster: No
- Stateful: No
When to use
Floating layout is useful for:
- Creative apps that need custom window sizes (Photoshop, video editors)
- macOS Spaces where manual control is preferred
- Temporary escape from tiling without stopping Shoji
Switching to floating
Bind it directly for quick access:
spoon.Shoji:bindHotkeys({ set_layout_floating = { { "ctrl", "alt" }, "f" },})Or cycle through layouts until floating is reached.
Per-window floating vs floating layout
These are distinct concepts:
Floating layout: Disables tiling for all windows in the current macOS Space.
Per-window floating: Excludes one window from tiling while other windows continue to tile normally.
spoon.Shoji:bindHotkeys({ toggle_float = { { "ctrl", "alt", "shift" }, "t" },})Per-window floating is useful for:
- Video calls that overlay the tiled layout
- Reference windows that need to stay visible
- Apps that need a specific size
| Aspect | Floating layout | Per-window floating |
|---|---|---|
| Scope | All windows | One window |
| Other windows | Untouched | Still tiled |
| Persistence | Until layout change | Until window closed |
Returning to tiling
When switching from floating to a tiling layout, windows arrange according to their window order. This order preserves from before floating was activated, making the transition predictable.