gitmyhub

Amethyst

Swift ★ 16k updated 2mo ago

Automatic tiling window manager for macOS à la xmonad.

A macOS tiling window manager that automatically arranges all your open app windows into clean grid layouts and lets you control everything, focus, swap, resize, move between screens, from the keyboard.

SwiftmacOSsetup: easycomplexity 2/5

Amethyst is a tiling window manager for macOS. Instead of leaving you to drag and resize app windows by hand, it automatically arranges the windows on each screen into a clean grid, and lets you move, resize, and reshuffle them entirely from the keyboard. The README describes it as being "along the lines of xmonad", a well-known tiling window manager from the Linux world.

The way it works is straightforward in spirit. Whenever you open, close, or focus a window, Amethyst picks one of its built-in layouts and slots all visible windows into it. The default layout, called Tall, gives you one "main pane" on the left holding the primary window and a second pane on the right where every other window stacks. There are many alternative layouts to cycle through: Tall-Right, Wide, three different three-column layouts, Widescreen-Tall, Fullscreen, Column, Row, a free-floating mode, and a Binary Space Partitioning layout that recursively splits the screen as you add windows. A long list of keyboard shortcuts using two modifier combinations (option+shift and ctrl+option+shift) lets you change focus, swap windows, throw a window to another screen or virtual space, shrink or grow the main pane, toggle a window into floating mode, and pick a specific layout.

You would reach for Amethyst if you work with many windows at once on a Mac and find macOS's manual window management slow or fiddly. Because it relies on the macOS accessibility APIs, you must grant Amethyst Accessibility permission under Security & Privacy on first run.

Amethyst is written in Swift and supports macOS 10.12 and newer. You can install it from the GitHub releases page or through Homebrew Cask.

Where it fits