Yabai – A tiling window manager for macOS

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • yabai

    A tiling window manager for macOS based on binary space partitioning

  • 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.

  • Amethyst

    Automatic tiling window manager for macOS à la xmonad.

  • 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

  • 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.

    WorkOS logo
  • Rectangle

    Move and resize windows on macOS with keyboard shortcuts and snap areas

  • 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/

  • AeroSpace

    AeroSpace is an i3-like tiling window manager for macOS

  • > 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

  • skhd

    Simple hotkey daemon for macOS

  • 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.

  • phoenix

    A lightweight macOS window and app manager scriptable with JavaScript (by kasper)

  • 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.

  • hammerspoon

    Staggeringly powerful macOS desktop automation with Lua

  • 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.

    InfluxDB logo
  • spin2win

    My personal Phoenix (kasper/phoenix) configuration, written in TypeScript

  • 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.

  • dotfiles

    My dotfiles, managed with https://chezmoi.io. (by twpayne)

  • 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

    Managing windows size and position in OSX

  • ShiftIt still working basically fine for me after a decade:

    https://github.com/fikovnik/ShiftIt

  • AfloatX

    An alternative to Afloat that lives in the dock icon menu

  • setup

    dot files, new computer configuration, etc (by RingOfStorms)

  • 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...

  • hammerspoon-shiftit

    A ShiftIt like Hammerspoon window management configuration

  • RectanglePro-Community

    Bug reports and discussion for the Rectangle Pro app

  • 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.

  • stackline

    Visualize yabai window stacks on macOS. Works with yabai & hammerspoon.

  • 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.

  • alt-tab-macos

    Windows alt-tab on macOS

  • I use AltTab [0] for this. I find using a mac without it horrendous.

    [0]: https://alt-tab-macos.netlify.app/

  • miro-windows-manager

    Intuitive and clever mechanism for moving windows using only arrows, even resizing windows by thirds or quarters! For OSX

  • 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.

  • MiguruWM

    A tiling window manager for Windows

  • 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.

  • AutoRaise

    AutoRaise (and focus) a window when hovering over it with the mouse

  • 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.

  • 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

  • PaperWM.spoon

    Tiled scrollable window manager for MacOS

  • 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

  • PaperWM

    Tiled scrollable window management for Gnome Shell

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts