Introduction
Amethyst is an automatic tiling window manager for macOS inspired by xmonad. Instead of manually dragging and resizing windows, Amethyst automatically arranges all open windows into a chosen layout pattern, keeping the screen organized without overlapping.
What Amethyst Does
- Automatically tiles all windows into non-overlapping layouts
- Offers multiple layout algorithms: tall, wide, fullscreen, column, and more
- Switches layouts on the fly with keyboard shortcuts
- Moves and resizes windows across multiple monitors
- Assigns specific layouts to individual Spaces
Architecture Overview
Amethyst is a native Swift application that hooks into the macOS Accessibility API to observe window creation, destruction, and focus changes. When a window event fires, the active layout algorithm recalculates positions for all managed windows and applies the new frames. Layout state is maintained per-Space, and user preferences are stored in a plist or YAML configuration file.
Self-Hosting & Configuration
- Install via Homebrew:
brew install --cask amethystor download from the website - Requires macOS 12 or later with Accessibility permissions enabled
- Configure keyboard shortcuts and layouts in the Preferences panel
- Use a
.amethyst.ymlfile in your home directory for version-controlled config - Exclude specific applications from tiling via the floating list
Key Features
- Multiple built-in layouts including tall, wide, 3-column, widescreen-tall, and binary space partition
- Per-Space layout memory that persists across layout switches
- Mouse-follows-focus option for multi-monitor setups
- Window margin and padding controls for visual spacing
- Fully customizable keyboard shortcuts via config file
Comparison with Similar Tools
- Rectangle — Manual snap-based window management; Amethyst is automatic tiling
- Yabai — Scriptable tiling WM with more features but requires partial SIP disabling
- Magnet — Paid manual snapping tool from the Mac App Store
- i3/Sway — Linux tiling WMs; Amethyst brings a similar philosophy to macOS
- AeroSpace — Newer macOS tiling WM with i3-inspired tree-based layout model
FAQ
Q: Does Amethyst work with Stage Manager? A: Stage Manager changes how macOS manages window groups, which can conflict with Amethyst's tiling. Most users disable Stage Manager when using Amethyst.
Q: Can I float specific windows? A: Yes. Press the float shortcut on any window to remove it from the tiling layout, or add the application to the permanent floating list in preferences.
Q: Does it work with multiple monitors? A: Yes. Each monitor manages its own set of tiled windows independently, and shortcuts let you throw windows between screens.
Q: How does Amethyst differ from Yabai? A: Amethyst is a pure Accessibility API app with no system modifications needed. Yabai offers more control (window opacity, borders, stacking) but requires disabling parts of System Integrity Protection for full functionality.