Trying the Amethyst window manager for Mac

I’ve been intrigued by the Amethyst window manager ever since I heard about it, quite some time ago. It takes an unusual approach to window management, called “tiling,” which I gather is commonplace in Linux but not very Mac-like at all.

Tiling seems like exactly the way I would like to use windows on the Mac. I usually work in one maximized window, for whatever app I’m in — email, Safari, whatever.

Often I have two windows, side-by-side vertically. I’m a nonfiction writer by trade, and one window will contain my writing in progress while the other window has notes.

Sometimes while I’m writing somebody messages me and I’ll open a third window, containing the message thread.

In all those cases, I rarely have even a single pixel of desktop showing. It’s all just windows. I go for weeks without even seeing my desktop. I gather this is very un-Mac-user like; most Mac users have windows taking up only a portion of the screen. That makes no sense to me — what do you want to see your desktop for? It never changes!

Amethyst automates that whole process of resizing windows and moving them. When you open a new app window, all the other windows automatically resize and get out of the way to fit in a neat mosaic of rectangles.

I have looked at Amethyst many times but never even installed it because it is so darn confusing. A friend once said that Unix documentation was written for people with nearly perfect memories who already understood what they needed to do; Amethyst is like that.

Here it is on Github:

It seemed to me at first that it requires brew to install. I only have a vague idea of what brew is and it seems like the kind of thing a person does not want to mess around with casually. So that stopped me there.

Friday I was moved to look into Amethyst yet again and found this page:

https://ianyh.com/amethyst/

From which I learn that Amethyst is now available as a conventionally installable app. Just download the file, unzip it and move the resulting .app file to the Applications folder, as you would with many apps. Maybe it was always available that way?

So I did that and then came the big problem of figuring out how to actually use Amethyst. For documentation, there’s this screencast:

Which the developer himself concedes is “rough.”

This essay on Medium is enough to get me started:

Returning to https://ianyh.com/amethyst/ for a moment — that page has a list of keyboard shortcuts for controlling Amethyst, That list is enormous, with seemingly dozens and dozens of possible combinations. And keyboard shortcuts seem to be the only way to control Amethyst. That’s a problem for me because I can’t remember keyboard shortcuts as easily as many Mac power users seem to be able to.

Also, the language used to describe the keyboard shortcuts is opaque. “Throw focused windows”? What the heck does that mean? “Toggle global tiling”? “Move focus to counter clockwise screen”? This might as well be Klingon.

Amethyst seems to assume you’re working in multiple Spaces, with individual groups of windows in each Space. It’s not how I’m used to working, but I’m OK with giving that a try.

I suspect I’m going to want to open about a dozen windows on my Mac one day when I have time and start playing around with the keyboard shortcuts. And then find some way to write down the keyboard shortcuts I need until I have them memorized. I know I have Post-It notes somewhere in my office…

I suspect I may end up just sticking with Moom. I have Moom configured to move windows to half-screen or quarter-screen and that may be all I need to do. Still, Amethyst is fun to play with.

3 Likes

I have been playing around with Amethyst as well. There is an incredible amount of keyboard shortcuts that are not necessarily intuitive. But, I have stuck to some basics.

  • I reduced the layouts to just 4 basic - Tall, Wide, Fullscreen, Column
  • the magic keys for most shortcuts start with control, shift, option - I press all three keys on the right side of my keyboard.
  • while pressing all three off the above keys
  • press Space to cycle layouts
  • press a number to send the window to a space - ie: 1 - to space one etc…
  • press j, k to switch panes around (ie: left to right)
  • I have no clue what the other options mean, but I think these shortcuts get a great deal of the app’s functionality
  • I think there is some scheme or reasoning behind the shortcuts - j,k,h,l - Vim keys, but it truly does look unsorted and overwhelming. I know I am missing out on the underlying reasoning behind the shortcuts - perhaps someone for the Linux world can shed some light.
1 Like

The ability to move a window to another space with a keystroke would be handy.

I’m wondering if there’s a layout that would let me divide the screen into quarters with one app in each quarter.

The magic you are looking for is - increase/decrease main pane count. I have no idea what this actually means… but it allows you to create a custom layout.

This article…How to manage windows on MacOs using Amethyst has a good overview of some of the commands and their outcomes. (check your amethyst default keyboard shortcuts, some mine were different than the article)… oops looks like I did not read well enough and linked to the same article.

2 Likes

Interesting. You mention Moom. Will Moom not accomplish the same thing? I see the option for creating your own keyboard shortcuts. Perhaps I read too quickly.

Moom says Apple does not offer a public API to permit that.

1 Like

Ah. Bummer. Interesting. :man_facepalming: :no_good_man:

Moom doesn’t do the automatic-window-moving-and-tiling that Amethyst does. You’re positioning each window manually. Even if you preprogram keyboard shortcuts to move a window into a precise size and position, you have to use keyboard shortcuts to get there.

For some time I’ve had keyboard shortcuts set for Moom to approximate tiling. I’d type Ctrl-Cmd-M to activate Moom, then Cmd-Left-Arrow or Cmd-Right-Arrow to move a window to the left or right half of the screen. More recently, I set up more shortcuts — Ctrl-Cmd-M followed by numerals 1, 2, 3 or 4 would move a window to one of the four corners of the screen.

TBH, that’s pretty much all I need. My first full day with Amethyst will be tomorrow; I give myself a 50-50 chance of lasting the whole day with it. :slight_smile:

The one thing I really like about Amethyst that I may not be able to get elsewhere is the ability to use a keyboard shortcut to automatically send a window to another Space. For years, I never used Spaces, but for the past year or so I find myself using them often for one particular case: As I said, I am a nonfiction writer by trade, and I’ll create a Space which contains my text editor on the right half of the screen, and my notes or a browser window on the left half. Then I can flip from that Space to a different one where I do email or have a Zoom meeting or take a social media break or whatever.

1 Like

Sounds like an interesting experiment and a fascinating work flow. I have used spaces from the beginning. The only other way I have appreciated a workspace is in Fedora Linux - they have a pretty decent workspace above Ubuntu/Xubuntu/xfce.

1 Like

@MitchWagner Oh, and I should say that I have used Brew on linux. It wasn’t nearly as confusing as the rest of using terminal commands. Github is still a hodge-podge to me. :roll_eyes: :man_shrugging:

1 Like

@MitchWagner
So… I downloaded it and tried it. There’s a learning curve, for sure. Very interesting though… Particularly having multiple windows open and toggling between the different views. The terminal install was not very hard.

Copy and paste this in your terminal to install Brew:

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”

Copy and paste this in your terminal to install Amethyst:

brew cask install amethyst

1 Like

Thanks, but I already installed it via the conventional installer.

1 Like

I think I may have encountered a glitch here -– Amethyst doesn’t seem to support the Messages app, at least not on Catalina. I’ve got a query in to the developer.

1 Like

Yeah. I encountered odd behaviors where it would take some apps into account and not others. Interesting concept. I liked toggling the different views and can definitely see where there’s a learning curve on getting used to it. But I like what I see, particularly if you active “focus follows mouse”.

Amethyst survived its first full day of contact with the enemy work. And I continue to like it, the morning of day 2.

It does make huge changes in how I work with windows and Spaces. I have two Spaces now. In the main space, I have Amethyst set to open windows maximized (but not full-screen – the open windows take up the whole desktop but continue to show the menu bar and Dock). I use that Space for using one app at a time.

The second Space is set to the Tall layout. That means a vertical window on the left half of the screen, and another on the right half. Or sometimes two square ones on the right half. If I want that layout, I use the Amethyst shortcuts to “throw” my working windows onto that Space. Or I just open the windows while in that space.

And those are most of the keyboard shortcuts I use. Like “Eric,” who wrote the Medium post I linked to above, I only use a few of Amethyst’s dozens of available keyboard shortcuts. I suspect most users work the same way; they have their favorite commands and layouts, use those, and ignore the rest.

I’m using KeyCute to keep track of the keyboard shortcuts. Recently, without my registering it, KeyCue updated allows a user to add custom hints for keyboard shortcuts that Keycue does not cover. I can see using the heck out of that. And I may get to be good at keyboard shortcuts after all!

Nice! I’ll take a look at the Medium post.
I’ll have to give KeyCue a try.

My problem with the Messages app has mysteriously gone away. I suspect rebooting may have helped.

1 Like

@MitchWagner, did you have to disable SIP for this to work? I thought that was originally a requirement, but I don’t see it on Ian’s website anymore.

I have been using Yabai for quite some time and I came across it on the r/unixporn subreddit, but it does require disabling SIP for most features.

Lastly, are you able to set specific apps to floating? Or better yet-point me to where this info is documented! :slight_smile:

Hi, Colin. I am pretty sure I did not disabled SIP.

I haven’t used Amethyst recently, so I am afraid I can’t help with your questions.

Amethyst will not require for you to disable SIP, but it will not allow for some low level commands yabai does, such as creating and “destroying” spaces.

This can only be achieved by injecting code into Dock.app which is why yabai will require you to disable SIP and Amethyst won’t. I don’t like this.

That said, Amethyst is a very good window manager and I use it daily for about two years. There’s a learning curve, but that should be no problem if you’re already into yabai.

Recently, “throwing” windows into spaces seems to be very spotty for me on macOS 12.3, so I’m resorting to the mouse for this operation meanwhile.

Here’s a comparison: