
Ask HN: What are your favorite tools for windows and mouse management on macOS? - rufugee
I&#x27;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&#x27;t supported on Linux.<p>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&#x27;ve really struggled to find anything close to it on macOS. I&#x27;m very open to approaches which aren&#x27;t apples to apples with i3...I just want something which significantly improves upon the default macOS experience. In other words, I&#x27;m not exactly sure <i>what</i> I&#x27;m looking for, but the default experience isn&#x27;t it. One thing I know I&#x27;d prefer is to touch the mouse as little as possible, and I&#x27;d like to keep SIP (system integrity protection) enabled (which seems to exclude some promising options):<p>Among the things I&#x27;ve tried:<p><pre><code>  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&#x27;s about it. 
  Hammerspoon - very cool idea, but I&#x27;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&#x27;t always manage the windows in intuitive ways. I couldn&#x27;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
</code></pre>
I know many of you are long-time macOS users. Would you mind sharing your can&#x27;t-live-without windows management and mouse management solutions?<p>Thanks in advance!
======
catacombs
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...](https://github.com/koekeishiya/yabai/wiki/Disabling-System-
Integrity-Protection) [2]
[https://pqrs.org/osx/karabiner/](https://pqrs.org/osx/karabiner/) [3]
[https://setapp.com/apps/switchem](https://setapp.com/apps/switchem) [4]
[https://manytricks.com/moom/](https://manytricks.com/moom/)

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

[https://magnet.crowdcafe.com/](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?

~~~
rufugee
From the readme
([https://github.com/koekeishiya/yabai/blob/master/README.md](https://github.com/koekeishiya/yabai/blob/master/README.md)):

* The WindowServer is a single point of contact for all applications. It is central to the implementation of the GUI frameworks and many other services. Because of this, System Integrity Protection must be disabled for yabai to function properly.*

I haven’t tried it because that language made me think it was a dead end out
of the gate... are you running it with SIP enabled?

