Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
miro-windows-manager
Intuitive and clever mechanism for moving windows using only arrows, even resizing windows by thirds or quarters! For OSX
-
material-shell
A modern desktop interface for Linux. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
I have been using Yabai for two years now and am very happy. For me, it's stable and you can script almost anything by using event reactors.
Yabai also makes working with a 15" display much more productive imho. For example, I can effortlessly and nearly instantaneously switch between browser and coding spaces by pressing hyper + w / hyper + x (I'm using Karabiner Elements to map capslock to hyper).
Since it's a common misconception, you do NOT need to disable SIP if you don't care about some features (noticeably, disabling those nasty space switch animations). For an overview of features that require SIP to be partially disabled:
https://github.com/koekeishiya/yabai/issues/1863
Also in general, the wiki on GitHub is very well-written.
I haven't had the same experience with Yabai. I've been using it happily and without issue since April, and I don't think I've had to restart it once.
Before Yabai I was using Amethyst, but like your experience with Yabai, I felt like it would suddenly stop working and needed to be restarted. Maybe your experience would be flipped.
https://github.com/ianyh/Amethyst
I like rectangle [0]. It fits my needs well enough without requiring disabling SIP. I especially like the “repeated key presses resize a window on the same side” feature, so I can get cycle the size of the window on the right side of the screen from 1/2->1/3->2/3 easily. I miss i3 sometimes and this ain’t an identical replacement but it gets the job done! Turns out I don’t move my windows all that often anyways.
[0]: https://rectangleapp.com/
> I'd be more than willing to try another tiling window manager on Mac if there's one out there that truly works
Hello, AeroSpace author speaking :)
I'd be happy if you could try AeroSpace (it's and i3-like window manager for macOS) and report me back if it loses track of windows.
https://github.com/nikitabobko/AeroSpace
The architecture of AeroSpace is that on every user input that may change window configuration (new window created, window moved, window resized, new app launched, etc), AeroSpace runs the same idempotent operation (I call it "refresh session") that tries to detect new window, checks all invariants, re-layouts windows, etc.
The "refresh session" performs all the mentioned steps regardless of the user input nature (it doesn't matter whether the window is moved, or a new app is launched)
I believe that this architecture may lose windows only if the macOS API returns invalid data.
I have been using AeroSpace for quite a while myself and I'm happy with it
I want to echo this as well. I use a 2nd tool to help me add additional i3-like keyboard shortcuts as well (I have the ability to "stack" windows with Alt-S and rotate through them with Alt-J and Alt-K).
It's called skhd https://github.com/koekeishiya/skhd
I forgot where the script for the stacking is. I can look that up separately, but I'm on mobile atm.
Have you heard of Phoenix [1]? It seems relatively unknown but I actually found it to work better than Yabai in some ways. The gist is that it basically simulates a tiling wm and virtual desktops by internally tracking state. It's also highly hackable/extensible being written in JS. Spin2Win [2] is a config that's worked well for me.
[1] https://github.com/kasper/phoenix
[2] https://github.com/nik3daz/spin2win
That said, it seems there are no perfect solutions. At work where I can't really be futzing around with window management config I basically just use Raycast + hotkeys and try to keep everything inside maximized application windows. This means using Arc browser (tabbed), iTerm (tabbed), VS Code (with native tabs), etc mapped to cmd+1, cmd+2, cmd+3...Not much "tiling" going on but at least everything is pretty keyboard friendly.
Have you heard of Phoenix [1]? It seems relatively unknown but I actually found it to work better than Yabai in some ways. The gist is that it basically simulates a tiling wm and virtual desktops by internally tracking state. It's also highly hackable/extensible being written in JS. Spin2Win [2] is a config that's worked well for me.
[1] https://github.com/kasper/phoenix
[2] https://github.com/nik3daz/spin2win
That said, it seems there are no perfect solutions. At work where I can't really be futzing around with window management config I basically just use Raycast + hotkeys and try to keep everything inside maximized application windows. This means using Arc browser (tabbed), iTerm (tabbed), VS Code (with native tabs), etc mapped to cmd+1, cmd+2, cmd+3...Not much "tiling" going on but at least everything is pretty keyboard friendly.
You can configure Hammerspoon so a hot key combination puts a window in a defined section of the screen. For example, I use Ctrl+Alt+H to put the current window in the left half of the screen, Ctrl+Alt+L for the right half, Ctrl+Alt+Enter for full screen, etc. This makes arranging your windows very fast.
Full config: https://github.com/twpayne/dotfiles/blob/21d0edcebaeebf0d90e...
ShiftIt still working basically fine for me after a decade:
https://github.com/fikovnik/ShiftIt
I'll have to try this out. Currently use Amethyst + Hammerspoon scripts for my window tools. Like others in this thread, Amethyst occasionally loses track of all windows and requires a restart (esp after monitor (dis)connection).
Amethyst does a decent job at the layouts I care about.
I primarily use AwesomeWM in linux on my personal computers which has the amazing super key drag/resizing behavior for windows. I use Hammerspoon to replicate this behavior[0] and it works quite well.
Eventually I want to replace Amethyst and just do everything in Hammerspoon as it seems quite plausible to do window layouting with it. Will give Yabai a try as well in the meantime.
[0]: https://github.com/RingOfStorms/setup/blob/master/home/confi...
There is pro version you can buy if you want to support the dev and get a few extra features.
https://rectangleapp.com/pro
Rectangle makes much more sense to me on Mac than a tiling window manager like yabai. I tried to use it but it just felt kludgy and I went back to Rectangle. Suits my needs just fine.
They may be referring to stackline https://github.com/AdamWagner/stackline
I've used it in the past, it was very aesthetically pleasing but did not work consistently enough for me to use day to day.
I use AltTab [0] for this. I find using a mac without it horrendous.
[0]: https://alt-tab-macos.netlify.app/
After trying yabai, Amethyst, and many others, I landed on hammerspoon.org + https://github.com/miromannino/miro-windows-manager a few years ago and haven't looked back. I couldn't live on a Mac without hammerspoon tbh.
I use hammerspoon with https://github.com/miromannino/miro-windows-manager...it's a great tiling experience.
I‘m using Windows again as well (just loving the crap-/bloatware for corporate vpn, syncing powerpoint templates, group policies etc.) which is why I made a small window manager in AutoHotkey:
https://github.com/imawizard/MiguruWM
The wiki also contains a list of other window managers for Windows one might want to check out.
I really want https://material-shell.com/ for MacOS
it was perfect for using a single monitor
kinda like a deterministic alt+tab, you set up the layout of "workspaces" and they're always in the same place
I keep getting annoyed at alt+tab because I accidentally clicked on another window and now the order is messed up
I use the PaperWM spoon, a port of the Gnome thing.
It does not make sense to me to use a "normal" tilling vm that automatically messes up with window side without asking me, I just need the windows to be automatically put side by side.
[1] https://github.com/mogenson/PaperWM.spoon