Skip to content

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
AspectFloating layoutPer-window floating
ScopeAll windowsOne window
Other windowsUntouchedStill tiled
PersistenceUntil layout changeUntil 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.