HACKER Q&A
📣 rufugee

What are your favorite tools for windows and mouse management on macOS?


I'm a long time Linux user who recently switched home and work to macOS for the use of various communication tools our company uses which aren't supported on Linux.

On Linux, I used i3 and was absolutely in love with it. I could control my entire environment without touching my mouse, and keep my windows very organized. However, I've really struggled to find anything close to it on macOS. I'm very open to approaches which aren't apples to apples with i3...I just want something which significantly improves upon the default macOS experience. In other words, I'm not exactly sure what I'm looking for, but the default experience isn't it. One thing I know I'd prefer is to touch the mouse as little as possible, and I'd like to keep SIP (system integrity protection) enabled (which seems to exclude some promising options):

Among the things I've tried:

  Divvy - looked promising initially, but requires a user to touch the mouse to draw the window in the pop-up.
  Spectacle - too basic...while it allows me to quickly resize one window, that's about it. 
  Hammerspoon - very cool idea, but I'd have to basically write my own window manager in lua. None of the shared configurations from other users seem fully baked
  TotalSpaces2 - I thought TS2 was going to be *the one* solution I found which, while a different approach, fulfilled my needs. However, it requires SIP to be disabled.
  Amethyst - reading about it filled me with promise, but actually using it proved confusing and it didn't always manage the windows in intuitive ways. I couldn't tell if it was the software, the user, or a combination of both. I really need to revisit this one.
  yabai - requires disabling SIP
I know many of you are long-time macOS users. Would you mind sharing your can't-live-without windows management and mouse management solutions?

Thanks in advance!


  👤 catacombs Accepted Answer ✓
I use Linux as well, and BetterTouchTool is the closest thing to a mouseless window manager I've encountered. It's not free software, but I expensed a license with my company because I need it for my job.

👤 least
Yabai does function without disabling SIP [1], just that certain features do not work without doing so. Whether or not those functions are critical to your workflow you'd have to figure that out for yourself. They are functions that you couldn't get functioning without SIP being disabled, as far as I know.

Amethyst doesn't require disabling sip because it doesn't support the same features that yabai does. It does support different rules for layouts than yabai, which only supports floating and bsp rules.

If you didn't like Amethyst's handling of windows, you can try adding different layout rules; there are several that you can cycle through in the settings.

Tangentially related, Karbiner Elements [2] will let you modify your keyboard so you can say, invoke hyper by pressing down the caps lock keys so it would be easier to map keys to global functions like launching applications or moving windows around. I use it extensively for throwing windows to different spaces in yabai, or switching spaces. Yabai can swap spaces without any animation. You can reduce animation of changing spaces in macos from a swiping animation to a fade animation in accessibility settings, if that is sufficient for your needs. Karabiner can also bind keys to control the mouse cursor.

An app (that may be pretty much dead) that I found somewhat interesting is Switchem [3]. Dead as in the website for its independent release no longer exists, but the functionality for it might be enough for you anyway. It allows you to create workspaces that you can invoke with keyboard shortcuts that lay out the applications on the screen the same way each time. So rather than using spaces for managing windows, you switch from a "coding" workspace which has a terminal window and a web browser and an IDE to a "research" workspace which might open up a notes application and a web browser.

Moom [4] also allows you to define custom layouts and save them. It can be controlled by the keyboard entirely.

[1] https://github.com/koekeishiya/yabai/wiki/Disabling-System-I... [2] https://pqrs.org/osx/karabiner/ [3] https://setapp.com/apps/switchem [4] https://manytricks.com/moom/


👤 aosaigh
Just to give you another popular app to try out: Magnet

https://magnet.crowdcafe.com/


👤 elamje
Magnet is excellent for window management. Works well on my 13” mbp, and my vertical monitor.

If you have a touchbar, pock.dev is excellent.


👤 tendencydriven
yabai (and chunkwm before it) with skhd key shortcuts without a doubt. I thought sip only needed to be disabled for certain features, such as window transparency and changing window chrome?