HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ianyh
Amethyst
Swift2013–2025
ianyh / Amethyst

Amethyst

Automatic tiling window manager for macOS à la xmonad.

82Distinct people
107Mentions
6Explicit recommenders
16.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Automatic tiling window manager for macOS à la xmonad.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I use Amethyst https://github.com/ianyh/Amethyst in my day to day. Slightly different management philosophy but one that works well for me.

mystickphoenix used a recommendation phrase. 6 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:03:49 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year107 dated mentions

Observed mentions: 2013-10-19 11:47:23 UTC to 2025-08-23 07:52:03 UTC.

0510152013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 15 mentions; 1 submissions, 14 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 12 mentions; 0 submissions, 12 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 13 mentions; 0 submissions, 13 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 14 mentions; 2 submissions, 12 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC615
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC15114
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC12111
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC303
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC12012
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC404
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC13013
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC707
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC10010
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC14212
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC808
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Amethyst Tiling window manager for macOS along the lines of xmonad. If you want to learn more about tiling window managers and the features of Amethyst there are some great community resources on YouTube. Boost your MacOS PRODUCTIVITY with Amethyst | Tiling Window Manager Getting Amethyst Amethyst is available for direct download on the releases page or using homebrew cask. brew install --cask amethyst Note: that Amethyst now is only supported on macOS 10.15+. Using Amethyst Amethyst must be given permissions to use the accessibility APIs in the Privacy & Security tab, Privacy -> Accessibilty. Important note: You will probably want to disable Automatically rearrange Spaces based on most recent use (found under Mission Control in System Preferences). This setting is enabled by default, and will cause your Spaces to swap places based on use. This makes keyboard navigation between Spaces unpredictable. or run in a terminal: defaults write com.apple.dock workspaces-auto-swoosh -bool NO killall Dock Troubleshooting See Troubleshooting for some common issues. Configuration Keyboard Shortcuts Amethyst uses two modifier combinations (mod1 and mod2) and can optionally use another two (mod3 and mod4). Default Shortcut Description mod1 option + shift mod2 ctrl + option + shift mod3 not defined by default mod4 not defined by default And defines the following commands, mostly a mapping to xmonad key combinations. Default Shortcut Description mod1 + space Cycle layout forward mod2 + space Cycle layout backwards mod1 + h Shrink the main pane mod1 + l Expand the main pane mod1 + , Increase main pane count mod1 + . Decrease main pane count mod1 + j Move focus counter clockwise mod1 + k Move focus clockwise mod1 + p Move focus to counter clockwise screen mod1 + n Move focus to clockwise screen mod2 + h Swap focused window to counter clockwise screen mod2 + l Swap focused window to clockwise screen mod2 + j Swap focused window counter clockwise mod2 + k Swap focused window clockwise mod1 + enter Swap focused window with main window mod1 + z Force windows to be reevaluated mod2 + z Relaunch Amethyst mod2 + left Throw focused window to space left mod2 + right Throw focused window to space right mod2 + 1 Throw focused window to space 1 mod2 + 2 Throw focused window to space 2 mod2 + 3 Throw focused window to space 3 mod2 + 4 Throw focused window to space 4 mod2 + 5 Throw focused window to space 5 mod2 + 6 Throw focused window to space 6 mod2 + 7 Throw focused window to space 7 mod2 + 8 Throw focused window to space 8 mod2 + 9 Throw focused window to space 9 mod2 + 0 Throw focused window to space 10 none Throw focused window to space 11 none Throw focused window to space 12 none Throw focused window to space 13 none Throw focused window to space 14 none Throw focused window to space 15 none Throw focused window to space 16 mod1 + w Focus Screen 1 mod2 + w Throw focused window to screen 1 mod1 + e Focus Screen 2 mod2 + e Throw focused window to screen 2 mod1 + r Focus Screen 3 mod2 + r Throw focused window to screen 3 mod1 + q Focus Screen 4 mod2 + q Throw focused window to screen 4 mod1 + g Focus Screen 5 mod2 + g Throw focused window to screen 5 mod1 + t Toggle float for focused window mod1 + i Display current layout mod2 + t Toggle global tiling mod1 + a Select tall layout none Select tall-right layout mod1 + s Select wide layout none Select middle-wide layout mod1 + d Select fullscreen layout mod1 + f Select column layout none Select row layout none Select floating layout none Select widescreen-tall layout none Select bsp layout Available Layouts Amethyst allows you to cycle among several different window layouts. Layouts can also be enabled/disabled to control whether they appear in the cycle sequence at all. Tall The default layout. This gives you one "main pane" on the left, and one other pane on the right. By default, one window is placed in the main pane (extending the full height of the screen), and all remaining windows are placed in the other pane. If either pane has more than one window, that pane will be evenly split into rows, to show them all. You can use the keyboard shortcuts above to control which window(s), and how many, are in the main pane, as well as the horizontal size of the main pane vs. the other pane. Tall-Right Exactly the same as Tall, but the main pane is on the right, with the other pane on the left. Wide The rotated version of Tall, where the main pane is on the top (extending the full width of the screen), and the other pane is on the bottom. If either pane has more than one window, that pane will split into columns instead of rows. Two Pane This layout has two visible panes - the main and the secondary pane. The window in the main pane is pinned, just like in other layouts, and all the remaining windows are placed in the other pane with only one window being visible at a time, which can be swapped (using the keyboard shortcuts). This layout automatically adapts to horizontal/vertical tiling depending on your screen orientation. The main pane is on the left in the horizontal orientation and it's on the top in the vertical orientation. Two Pane Right Exactly the same as Two Pane, but the main pane is on the right, with the other pane on the left. 3Column-Left A three-column version of Tall, with one main pane on the left (extending the full height of the screen) and two other panes, one in the middle and one on the right. Like Tall, if any pane has more than one window, that pane will be split into rows. You can control how many windows are in the main pane as usual; other windows will be assigned as evenly as possible between the other two panes. 3Column-Middle Exactly like 3Column-Left, but the main pane is in the middle, with the other panes on either side. (In previous versions of Amethyst, this layout was known as Middle-
Read the full README on GitHub

What Hacker News says

15 sources
A feature matrix isn't a bad idea (and I opened an issue to track https://github.com/ianyh/Amethyst/issues/267), but it's kind of hard to compare as they are such different pieces of software. Spectacle is manual window management and Amethyst is tiling window management. Manual window management generally gives you better control and generally less overhead in terms of complexity. So it works well in the case of "I want to be able to move this window to the upper half of the screen", "I want to be able to make this window take up the entire screen", etc. You have to trade simplicity to get flexibility, though. What if I want to be able to move window to the upper right hand quarter of the screen? Or what if I want my screen divided into a grid of 3x4 and I want a window in the [0][1] position? You can accomplish all of those things, but
Read the rest
you have to specify how to go about it, thus adding complexity. Slate, for example, puts that complexity upfront in writing a config file. Divvy, for example, puts that complexity at runtime. Tiling window management gives you a more hands off approach. So things like "I want all of my windows to be laid out in this orientation, but I don't want to move them myself", "I want all of my windows to be visible at any given time", etc. You don't take actions to lay windows out, you just define algorithms for how they should be laid out and let the software sort them out. You have to trade simplicity to get control, though. Defining those algorithms can be complicated if you're not doing something really straightforward, and if you're not doing something straightforward it can sometimes be non-trivial to grok what's actually going on. Or you end up doing a lot of runtime massaging to get things working the way you want. To each their own, though. I prefer tiling window management, I have coworkers who prefer manual window management. They're just different tools.
In Amethyst – A tiling window manager for OS X
It is super buggy for fullscreen apps. Unfortunately, I have this superpower (or curse) of not being able to reproduce bugs. Every time I get near a coworker's computer, whatever they were talking to me about starts working. There's a long thread on github about this (https://github.com/ianyh/Amethyst/issues/254). I'd love to know more about your set up. I've been trying for weeks to make it work for people, but Apple's APIs for this are kind of crap. And by crap I mean non-existent. I've started using private APIs to do things like figuring out whether or not the current desktop is a fullscreen app.
In Amethyst – A tiling window manager for OS X
Optimal Layout[1] works pretty well as a tiling window manager (or close enough) for OS X. I've been using it as an essential part of my workflow for 2+ years. I also make heavy use of emacsclient and tmux[2] sessions and windows in conjunction with iTerm2[3]. When I have some time to experiment, I'd like to look at replacing Optimal Layout with mjolnir[4] or one of the similar tools listed in mjolnir's README, under Mjolnir vs. other apps.[5] Amethyst[6] looks like another option worthy of consideration. [1] http://most-advantageous.com/optimal-layout/ [2] http://robots.thoughtbot.com/a-tmux-crash-course [3] http://iterm2.com/ [4] https://github.com/sdegutis/mjolnir [5] https://github.com/sdegutis/mjolnir#mjolnir-vs-other-apps [6] https://github.com/ianyh/Amethyst
In A tiling window manager written in Rust
I miss my days on Ubuntu with i3 tiling window manager. I currently use an app called Amethyst[1] but find it to be a bit buggy at times and just doesn't live up to i3 or awesome. I wonder if hydra can be used as a launch point to create a better tiling window manager for OSX. I'm not familiar with the APIs that OSX exposes, if any, to do things like window management but it would be awesome to see some more control over workspaces and not just the windows within a workspace. [1] https://github.com/ianyh/Amethyst
In Hydra: A lightweight OS X window manager with a powerful API

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.