[HN Gopher] Yabai - A tiling window manager for macOS
___________________________________________________________________
Yabai - A tiling window manager for macOS
Author : CathalMullan
Score : 214 points
Date : 2023-11-30 14:32 UTC (8 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| xwowsersx wrote:
| Funny to see this at the top of HN after just having uninstalled
| Yabai. I used Yabai for about 6 weeks. I was so thrilled about
| having a proper tiling window manager for Mac. I invested a lot
| of time setting up skhd and fine-tuning my configuration for the
| most intuitive hotkeys. The problem ultimately, however, is that
| Yabai just doesn't work well enough. It'll regularly just lose
| track of windows altogether, which requires restarting Yabai.
| This and other bugs happened frequently enough that it outweighed
| the benefits of Yabai. I'd be more than willing to try another
| tiling window manager on Mac if there's one out there that truly
| works. Related, I started checking out Stage Manager and it's
| pretty bad in my experience - obviously it's the opposite of a
| keyboard driven TWM, but I'm willing to try anything that helps
| me maximize the limited screen space I have. I'm all ears if
| anyone has had better experiences with other tools on Mac.
| lowmagnet wrote:
| I just use Grid, it already has shortcuts (I don't like that
| Yabai doesn't) and it's pretty easy to get used to.
| daggersandscars wrote:
| This may not be what you're looking for, but I use Mizage's
| Divvy on Mac & Windows and configure Gnome to match on Linux.
| It can be keyboard or mouse driven -- I exclusively use custom
| keyboard shortcuts.
| ebiester wrote:
| I used to use Divvy (and have a paid copy), but I've moved to
| Rectangle which also does everything I need and is open
| source. It doesn't have the same "drag" mouse capabilities
| that Divvy does, but I don't end up using that too often.
| marcomourao wrote:
| I've also been using Divvy since as long as I can remember
| but it hasn't been updated in 4 years, looks like
| abandonware.
| thinker5555 wrote:
| 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
| chaxor wrote:
| I tried amethyst but it was essentially useless to emulate an
| awesomewm or sway like experience.
|
| Switching to asahilinux was a *far* better solution. Not
| really sure what the use of macOS for me is when asahi exists
| now.
| koiueo wrote:
| Is Asahi your daily driver on MBP?
| chaxor wrote:
| Yes, absolutely.
|
| Asahilinux >> MacOS
|
| It's wonderful to use the M2 with incredible battery life
| and performance without having to have a subpar OS.
| rufugee wrote:
| Curious about this as well...I thought it wasn't quite
| there as a daily driver OS, but would be happy to be
| wrong ;-)
| RCitronsBroker wrote:
| same here! using yabai on my MacOS machines for about a year
| now, after being similarly disappointed with amethyst. Works
| pretty damn good for me, its a god send for me. It is part of
| the myriad of tweaks that make MacOS so damn good and unique
| to me.
| Difwif wrote:
| I've certainly run into my problems with Yabai and have had to
| work through different versions to solve problems. It's
| certainly not perfect still but I've found a pretty stable
| workflow for me. I would certainly recommend turning off
| anything that's not nessiary like window borders. After that
| you'll need special configuration for a couple problematic apps
| (Chrome for me), and lastly some custom behavior using the
| events to get the exact behavior I want. I have had to debug
| and look at logs to figure out my problems..
| extr wrote:
| 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. This also means it
| doesn't suffer from window animation delays when you switch
| "desktops" (since "desktops" are just hiding/unhiding windows).
| 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.
| xwowsersx wrote:
| I think I had come across Phoenix briefly, but never took it
| for a spin. Thanks for the recommendation, I'll definitely
| take a look.
| psygn89 wrote:
| Does this allow using the mouse? Maybe not common amongst
| tiling window users but I like to just drag a window over
| another to swap them or resize one window from the frame and
| have the other tiles adjust accordingly. So far it seems only
| Amethyst and Yabai do this, but if Phoenix internally tracks
| the states of windows (position, etc.) then this should be
| feasible to write code for without relying on Mac's windowing
| api?
| emoII wrote:
| Rectangle is absolutely great
| xwowsersx wrote:
| Rectangle seems nice, but not quite what I'm looking for. I
| want automatic tiling. I'm not looking to just move some
| windows around with shortcuts. I want to be able to have
| predefined arrangements and automatic tiling, etc. Rectangle
| is similar to SizeUp which I've used. Good for what it is,
| but still want a true tiling window manager.
| onelesd wrote:
| try hammerspoon. it isn't a tiling window manager, per se -
| it's more of an all-purpose desktop extension framework. it is
| fully customizable, has a well-documented API, and a large
| community.
|
| for window arrangement the hs.grid component is plenty for me.
| see an example: https://www.youtube.com/watch?v=nRJ0477KFp8
| zdragnar wrote:
| Hammerspoon is literally the only thing I miss from leaving
| macOS.
|
| If I ever have to go back, it'll be one of the first things I
| install again.
| iLemming wrote:
| Check out https://github.com/agzam/spacehammer if you're
| using Hammerspoon.
| vasac wrote:
| There's also somewhat similar extension for Hammerspoon:
| https://github.com/FryJay/MenuHammer/
| pazimzadeh wrote:
| I use hammerspoon with the ShiftIt spoon, which works well:
|
| https://github.com/peterklijn/hammerspoon-shiftit
|
| My config file:
|
| https://gist.github.com/pazimzadeh/b1c70f5f205d0b63264e7c021.
| ..
| xwowsersx wrote:
| Do you have a config example I can look at that demonstrates
| how to set this up?
| rufugee wrote:
| I use hammerspoon with https://github.com/miromannino/miro-
| windows-manager...it's a great tiling experience.
| CSSer wrote:
| You might try Magnet. It's $10 on the mac app store. I've had
| zero issues with it, and it has some problems sorted that other
| tools don't or haven't always, namely correctly tiling across
| monitors. I used to use Rectangle, which is open source and
| frankly pretty good but at the time I was using it had some
| warts. macOS' window management seems to not be entirely
| transparent. I don't know all the details, but this is my
| workstation. I need(ed) this to work now, and if it's a system
| that might change a bit over time or has some weird
| idiosyncrasies then I'm happily willing to pay a low one-time
| fee for a tool like this.
| TimTheTinker wrote:
| I've been using Magnet for years. It's simple and reliable.
| j45 wrote:
| Has anyone transitioned from moom to magnet?
| rwc wrote:
| Actually, only $5.
| rxhanson wrote:
| If you don't mind me asking, what are the warts? I'm always
| interested in improving the app.
| CSSer wrote:
| You know, honestly I don't recall. From what I do remember,
| I had checked the repo and I believe it was something you
| were working on but it was going to require a really big
| lift. I wanted to be very charitable with you in my above
| comment. I used Rectangle for a decent amount of time and
| overall it was pretty great. I only switched because of a
| time/money consideration, not because of a vote of no
| confidence, which is not something I can always say. Keep
| up the great work!
| Bagged2347 wrote:
| Are you the Rectangle dev? I appreciate your work! How did
| you get into developing tools for macOS? Were you filling
| your own needs?
| emgeee wrote:
| Rectangle Pro user here -- biggest frustration I've had is
| configuration. While the GUI is nice for seeing all the
| options and some basic stuff, when it comes to actually
| configuring App Layouts it's been a nightmare of clicking
| around. I went so far as to export my config so I could
| modify it with a text editor and then re-import it but the
| config itself includes serialized JSON as values so to
| accomplish what I wanted to I had to de-serialize the json,
| make the changes I wanted to, re-serialize it, then re-
| import it back into Rectangle, all while hoping I didn't
| mess up the re-serialization step. This ended up taking
| more time than if I had just painfully clicked through the
| interface.
|
| Personally, I wish Rectangle had the option of storing
| configuration in a simple dot file in my home dir but I
| understand that would prevent syncing through icloud, which
| is a feature I imagine a lot of folks like. Barring that, I
| wish rectangle could export/import the configuration in a
| more editor friendly way so I could make these
| configuration changes much faster and more easily ensure
| consistency across settings.
| dishsoap wrote:
| One difference I've noticed is that with Magnet, if you
| have a window 'maximized' by dragging it into the top of
| the screen or pressing the shortcut for it, when you start
| dragging it down from the top of the screen to unmaximize
| it, it instantly returns to its original size, whereas with
| Rectangle it stays maximized for some time after you start
| dragging it which is pretty annoying.
|
| Another thing is the way Magnet moves and resizes windows
| seems to create less visual 'flashing' than Rectangle's
| method, for instance Rectangle will resize, then move, then
| resize again when maximizing a window, which can create a
| really pronounced 'flashing' effect. That's not to say
| Magnet has no 'flashing' ever, there's certain situations
| where it does and to my understanding it seems necessary
| due to the limited nature of moving and resizing windows on
| macOS (I guess you have to do one then the other and can't
| both move and resize simultaneously?), but to me Magnet's
| methods often look visually better.
|
| Rectangle is great though, I've switched to it from Magnet
| and these are just some minor gripes.
| newsereure wrote:
| I just bought this, but I don't see an option for automatic
| tiling?
| aryik wrote:
| Magnet rocks. Very worth paying for. I hate using Macs
| without it
| pmarreck wrote:
| So basically, it's below the "Reliability*Utility" threshold
| (that's my term for the drastic dropoff in usefulness of a
| product/service/person when their reliability goes from 100% to
| 90% or lower) That's too bad. Maybe some unit tests
| (historically notoriously difficult to implement with GUI's)
| would help that dev.
|
| Fleshing my concept out on a whim (since I am surprised I can't
| find another reference to this idea online!) with the help of
| ChatGPT (yes, it can do this now!), it looks like this equation
| would capture this concept:
|
| U(r)=Umax [?]e^(-k(100-r)^n)
|
| where the total perceived Utility of a product/service/trusted
| person, given r=reliability percent (out of 100), is the
| maximum Utility times e to the (-k(100-r)^n), where k and n are
| tweakable based on the given product/service/person but which I
| want to assign values of 0.03 and 1.5 to, respectively, after
| plotting it.
| psygn89 wrote:
| That was my experience also especially the past year. I do
| programming and design and it seems many apps twist the ui api
| to do things that you can't naturally do in the interface and
| so Yabai, completely oblivious to it, will try to manage it and
| you have elements disappearing or appearing too large/small,
| behind other elements, etc. Even if you create exceptions, it
| seems things sometimes slip through the crack or start behaving
| unexpectedly. Flipping between native tabs for instance start
| throwing the tiling off for some apps that I use.
|
| Yabai used to be pretty solid and usable, but I think with the
| author not using a Mac for his daily and with all the updates
| to the OS that he has to keep track of (and how some windowing
| Mac api are still blackboxed or not reliant to build logic atop
| of) it's only a matter of time before it gets into a poorer
| state.
| tfsh wrote:
| I've used Yabai for about three years now, it generally only
| forgets windows or specifically their states if you use the
| swipe multi tasking features. However when this happens I have
| a keybind and Skhd command which quickly restarts the daemon
| [1] and fixes the windows.
|
| It takes a little while to get used it, but Yabai is now an app
| I can't live without.
|
| 1: launchctl kickstart -k "gui/${UID}/homebrew.mxcl.yabai"
| athorax wrote:
| I have the exact same setup, I have to maybe restart the
| service 2-3x a week. Unsurprisingly, outlook is often the
| culprit of needing to restart the service
|
| # Reload yabai ctrl + shift + alt -r : launchctl kickstart -k
| "gui/${UID}/homebrew.mxcl.yabai"
| cedws wrote:
| Nothing out there quite works like i3 because they all politely
| ask the actual window manager to set the position/size of
| windows. i3 _controls_ the position and size of windows.
| Hammershaft wrote:
| I had a similar experience. I find the default windowing
| experience on Macs to be miserable and so I was excited to jump
| in to a tiling WM, but Yabai was a pain to configure relative
| to linux tiling managers and was not reliable.
| rufugee wrote:
| 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.
| xwowsersx wrote:
| Can you share your config please? Trying to get a better idea
| of what's possible and how to get started. Thanks
| galoisscobi wrote:
| Coming from i3wm on Linux, I cannot use macOS without yabai. So
| glad that this exists!
| barelysapient wrote:
| Completely agree. It has its faults; but paired with skhd [1]
| it makes the mac usable for me.
|
| 1. https://github.com/koekeishiya/skhd
| Nevin1901 wrote:
| In my personal experience, tiling window managers only work when
| you have a lot of screen real estate. I tried using yabai on a 13
| inch m2 air, but I ended up going back to my normal workflow of
| just alt tabbing between windows. Most apps don't let you see
| enough content when they are tiled (because of gui elements such
| as sidebar etc). I do love the "focus on hover" feature of yabai
| though. I wish macOS had that natively.
| SamBam wrote:
| I have the same problem.
|
| I would love a tiling manager that allowed you to "full screen"
| the app into the tile of your choice.
|
| By that, I mean the app would snap to the edges and lose all
| the chrome that is normal present. So your browser window, for
| instance, would lose the borders and url bar until you moused
| to the top of the tile.
| Nevin1901 wrote:
| Not a tiling window manager, but the arc browser does this
| very well.
| shortrounddev2 wrote:
| Do you not use a monitor at a desk?
| Nevin1901 wrote:
| No, I work on an m2 MacBook Air with a trackpad and the built
| in keyboard
| jwells89 wrote:
| On a 27" monitor running at 2560x1440 1x/2x tiling is better
| than on a small screen, but it still winds up awkwardly sizing
| windows from time to time. In most cases I find it easier to
| just let windows overlap, which results in the same information
| visibility but lets windows retain proper sizing.
|
| I could see tiling working if I lived in minimal-chrome apps
| like Terminal and Sublime, but I don't, and so floating with
| occasional tiling works better for me.
| hobofan wrote:
| I've been using Amethyst for multiple years on only the builtin
| display as well.
|
| I think the key here is to use multiple desktops (or are they
| called workspaces?). If I'm working on a single screen I
| constantly have 10 desktops open, with a quite consistent setup
| between them (e.g. first desktop is fullscreen browser, second
| screen is 3-5 tiled terminals, ...). All the applications I'm
| "actively" using are usually on the first 2-4 desktops with a
| lot of screen real estate for each of them.
|
| What really helps here is assigning one of the screen corners
| as a hot corner that goes to Expose mode where you can switch
| between screens, as well as assigning shortcuts for switching
| between desktops and moving windows between them (the moving
| windows shortcuts are usually part of your window manager).
| Selecting "Reduced Motion" in the accessibility settings also
| helps by speeding up the desktop switching animations.
| dabeeeenster wrote:
| https://www.hammerspoon.org/ is amazing. Not quite the same as
| Yabai but I cant live without it!
| twp wrote:
| 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...
| dbalatero wrote:
| I have an alpha guide I wrote on scripting macOS with
| Hammerspoon if anyone's interested! There's probably some
| editing issues and I've been meaning to move it to the actual
| domain/clean it up to release, but it's got good info in it
| now:
|
| https://learn-hammerspoon-0x8080.netlify.app/
|
| I have a chapter on window management as part of the guide.
| ckolkey wrote:
| Integrating hammerspoon as the keybinding manager for yabai is
| a perfect match. You can treat yabai as an api for window
| management, and script some pretty cool things, like sending
| the current window to a new space, and either keeping focus or
| not, swapping windows, all kinds of fun stuff.
| bsnnkv wrote:
| Yabai, and chunkwm before it, and kwm before that, are probably
| the most important pieces of software that fundamentally changed
| how I interact with computers.
|
| I moved over from macOS to Windows and WSL full time back in 2020
| and eventually ended up writing my own tiling window manager for
| Windows, which I never would have done had I not had the
| experience of using yabai on macOS.
|
| I don't think it's a exaggeration to say that my experience with
| this one piece of software completely changed my trajectory as a
| software developer for the better.
| tuananh wrote:
| it's either yabai or amethyst. some may find amethyst more user
| friendly
| jeffwiederkehr wrote:
| I love yabai and use it every day. It's the only Mac OS is
| tolerable for me vs Linux with a WM.
|
| I am sad though that you lose a good chunk of functionality
| without disabling SIP, which isn't allowed for work devices
| ilikejam wrote:
| All I want (for christmas) is an 'Always on top' opton for
| windows on macos.
|
| I'd pay real actual money, as I suspect would many others.
| CharlesW wrote:
| https://github.com/jslegendre/AfloatX
| harlanlewis wrote:
| Piqued my interest so I just went looking, this relatively
| recent reddit thread lists a few relevant options:
| https://www.reddit.com/r/mac/comments/q1pgos/keep_a_window_o...
|
| I hope one works out!
| ilikejam wrote:
| BetterTouchTool works, but it's not pretty - rounded corners
| end up with blue backgrounds and windows shrink slightly when
| defocussed.
|
| No joy with the rest.
| very_good_man wrote:
| ShiftIt still working basically fine for me after a decade:
|
| https://github.com/fikovnik/ShiftIt
| rubyissimo wrote:
| everytime I get a new computer it takes me 5 seconds to remember
| that I can't live without sizeup.
|
| But I can never remember the name of the app because it's just
| ctr-opt-cmd-left in my head.
| joeyagreco wrote:
| Interesting. I've been using Rectangle for MacOS and it's worked
| fine so far for me. Will keep this in mind if I ever want to
| switch.
| poidos wrote:
| 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/
| hans-dampf wrote:
| +1 for rectangle. was using spectacle before.
| teaearlgraycold wrote:
| I also use it and the free version is plenty for my needs
| Erratic6576 wrote:
| Rectangle is free and open source software, there are no
| strings attached that I know of
| Bagged2347 wrote:
| 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.
| Icathian wrote:
| On the occasions I'm using MacOS, this is what I reach for too.
| It works quite well, I agree.
| sergiomattei wrote:
| Cool thing: you can set a window gap too.
|
| Discovered the setting this week, my desktop looks so aesthetic
| now.
| mushufasa wrote:
| I find rectangle actually preferable to tiling, which I've
| tried on my linux boxes. Rectangle has the benefits of keeping
| the application-defined sizes (e.g. the terminal when opened up
| is 80x20 instead of whatever space is available on the screen)
| and playing nicely with the system defaults (like command-tab,
| command-~ to cycle through applications and windows). I find if
| I ever end up using a public or someone else's device, it's
| easier to cope; I'm not as helpless without rectangle as I was
| when I got used to a tiling WM muscle memory.
|
| And the name of Yabai -- which translates to "danger" -- never
| sounded appealing to me to introduce into my device.
| l2dy wrote:
| The name Yabai can also be used in a positive sense to mean
| "great", and is particularly common among young people.
| Source: https://web-japan.org/trends/buzz/bz0510.html
| presentation wrote:
| As a relatively young Japanese speaker, can confirm, it can
| be either bad or good in context as slang. The comparison
| to English "wicked" makes sense - could be like "whoa,
| that's really uncool/dangerous/awful" or it could mean
| "whoa, that's amazing! Sick!" Probably library author is
| going for the latter!
| Twisol wrote:
| From what I understand, a more direct analogue to "danger" is
| "abunai". The word "yabai" almost seems to be usable as a
| generic intensifier, like many English speakers might use the
| s-word. (I'm extremely far from fluent, though, so take my
| observations with a pile of salt.)
| nyadesu wrote:
| It's amazing, makes MacOS usable when using big displays, I
| tried to use Yabai on my work macbook but couldn't install it
| due to SIP and work environment restrictions
| bartvk wrote:
| You don't need to disable SIP
| betamike wrote:
| Just wanted to point out that disabling SIP is not required to
| use most of yabai's window management features. You do lose
| some features[0] but I've found the only ones I really care
| about is focusing spaces, and you can create keyboard shortcuts
| for that in System Settings.
|
| [0]: https://github.com/koekeishiya/yabai/wiki/Disabling-
| System-I...
| poidos wrote:
| That's good to know, thanks for clarifying that!
| freeqaz wrote:
| 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.
| urxvtcd wrote:
| Please post it if possible. I couldn't figure out the
| stacking API, and I miss that feature from i3.
| zavertnik wrote:
| 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.
| freeqaz wrote:
| Here it is. There is no visualization of the stack, which
| apparently Stackline in the other comment supports, but I
| don't tend to need that. Just being able to move between
| the windows is good enough for me.
|
| https://github.com/koekeishiya/yabai/issues/203#issuecomm
| ent...
| the_svd_doctor wrote:
| Fantastic app. Thanks for sharing. Already love it after 2
| minutes.
| jwells89 wrote:
| I similarly find something like Yabai a bit too heavy-handed
| for my needs, and instead prefer Moom[0].
|
| I find that I only need tiling occasionally, and for that Moom
| excels since it doesn't add any new key shortcuts to memorize
| and is only ever visibly present when hovering your cursor over
| a window's green button. Its Aero Snap equivalent is optional
| and turned off by default too, which is great for me (I trigger
| Aero Snap's proposed-window-resize animations unintentionally
| often enough that they get to be irritating).
|
| [0]: https://manytricks.com/moom/
| asenchi wrote:
| Moom is one of my main tools and I have used it for years. It
| is one of the first things I put on my Mac. I use it
| constantly to move windows around, lay things out for work,
| and move things between desktops. I can't recommend it
| enough.
| drcongo wrote:
| Moom fan here too. I got as far in the readme for Yabai where
| it says you need another utility just to set keyboard
| shortcuts and decided to stick with what I know and love.
| uberduper wrote:
| Rectangle and Spectacle before it are really great for managing
| window placement and sizing. I wouldn't use a mac without it.
|
| But I don't use a mac anymore. I use linux desktops and there's
| just nothing quite like Rectangle. For a long while, I used a
| tweaked fork of pygrid. These days I use wayland compositors
| and don't have a good option. I've been meaning to hack
| something together to work with floating windows on Hyprland
| but I never get around to it.
|
| Someday I'd like to write something that does placement and
| sizing like Rectangle but snaps adjacent window edges together.
| Like if I have a bottom left window that's 1/3rd screen width
| and assign a new window to bottom right 1/3rd width, the bottom
| left would get resized to 2/3rd wide to fill the void. If I
| place a new window at bottom middle 1/3rd, the bottom left
| would get resized back to 1/3rd. If I resized bottom middle to
| 1/2 width, then the bottom left and right would each be resized
| to 1/4 width.
|
| Hyprland has a plugin system that I believe would let me do
| this (someone has created an i3-like tiling plugin) but I don't
| have the skills or motivation to learn c++.
| poidos wrote:
| If you're willing to use GNOME (and, I believe, KDE Plasma)
| you can set up keybindings that are a reasonable
| approximation to Rectangle. That's what I did before i3 or on
| machines that can't have i3 for odd reasons.
| wharvle wrote:
| I still just use Spectacle. Still works, has never in _years_
| given me any trouble whatsoever--zero jank, never crashes,
| just works--so haven't bothered to switch. Being able to get
| its behavior with same key-combos on any other OS I might
| seriously use, with similar _perfect_ levels of stability and
| reliability, is now table-stakes for me.
| aaronkjones wrote:
| This sounds similar to BetterSnapTool, which I have been using
| happily for several years.
| Casteil wrote:
| Been using Rectangle pretty much as long as I've had my 14" M1
| Pro - excellent FOSS that holds up extremely well against paid
| alternatives! Little to no customization necessary for a very
| well-executed window management experience. I did change one or
| two of the shortcuts to be one-handed (namely Restore window,
| to CTRL+OPT+R), but overall the shortcuts seem really well
| thought out.
|
| I might have to grab the Pro version because they really
| deserve the support.
|
| I like it so much that I wish I had the same muscle-memory for
| similar shortcuts on Windows (I believe PowerToys FancyZones
| can be set up to snap a window to a given zone or zones with
| hotkeys, but it's not something I've dug into yet).
| extr wrote:
| One thing I really don't like about rectangle (and maybe MacOS
| in general) is that you can't easily multi-key hotkeys with
| regular keys. So for example CMD + Right Arrow + Up Arrow for
| upper-right tiling. This is simple/trivial with PowerToys on
| windows. But you can use Karabiner Elements to create a
| simulation of this using keypress delays. I use Karabiner +
| BetterTouchTools to accomplish the same functionality since I'm
| already running it for other reasons.
| dev_tty01 wrote:
| Doesn't this always force delays? If I have CMD + Right Arrow
| assigned to some other function, the system will have to wait
| to make sure the Up Arrow isn't coming soon before
| dispatching the Right Arrow function. Of course we want the
| delay short, but that makes the multi-key shortcut less
| reliable.
|
| I haven't tried it, but the tradeoffs don't sound great to
| me. Only allowing multiple modifier keys avoids all of these
| timing issues. You seem to be comfortable with it, but I
| think most users would trigger a lot of spurious inputs.
| saagarjha wrote:
| It's not really an issue. I have one of these hot keys set
| up and what it does is when I hit [?]- it will tile in the
| right half and when I go to hit | it will then shrink to
| the upper quarter.
| ar_lan wrote:
| > It fits my needs well enough without requiring disabling SIP.
|
| This is not a requirement for yabai.
| erybodyknows wrote:
| I miss rectangle the most after switching from macOS to Linux.
| Ironically I end up using the mouse more on Linux because I
| haven't found a similar solution for window sizing keyboard
| shortcuts.
| gigatexal wrote:
| sway, i3, bswm, awesomewm, so many tiling window managers on
| Linux that you don't need the mouse for. There's even tiling
| making it's way into Gnome and KDE with the former having
| some good extensions and the latter just baking it in and
| getting better with every release.
| seemaze wrote:
| This is the feature that makes rectangle for me. 95% of my use
| case is just cycling windows sizes (1/3 - 1/2 - 2/3) snapped to
| either side of my screen with '[' and ']' as shortcuts. Works
| wonderfully on both my ultrawide and 13" mba screen.
| j45 wrote:
| Reading the issues with Yabai losing windows and needing a
| restart..
|
| Rectangle is another oss option:
| https://github.com/rxhanson/Rectangle
|
| I bought Moom long before rectangle came out, both are pretty
| decent.
| misiti3780 wrote:
| magnet is where it's at.
| OsrsNeedsf2P wrote:
| I spent more than a year bending over backwards with tools like
| Amethyst, but ultimately it was too much of a hassle and I ended
| up going back to my Thinkpad. The ecosystem on MacOS just costs
| more and never _quite_ works for customizability
| zacte wrote:
| Personally I've been so hooked to Raycast it's taken over my
| tiling manager needs too now.
| CharlesW wrote:
| I love Raycast for this too. For new and current Raycast users
| who haven't seen this capability, you have to enable the Window
| Management extension.
|
| https://www.raycast.com/extensions/window-management
| vidarh wrote:
| I use Yabai on my work laptop and I'm not very impressed. Maybe
| I've just been spoiled by my Linux setup, which has had years of
| tuning, but it feels like a poor imitation of a tiling wm. I get
| that OS X makes it harder to fully control the experience the way
| you can under X, but still..
| thomasfl wrote:
| Good job by Asmund Vikane and the rest of the team.
| joshring wrote:
| 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][1] 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...
| [1]: https://share.joshuabell.link/ezgif-1-ef0d3e0728.gif
| montebicyclelo wrote:
| I've been using Yabai + skhd for years, and found the benefits
| far outweigh the issues. 99% of the time it's fine, and for the
| 1% I just disable it temporarily.
|
| Killer feature for me (apart from windows automatically being
| resized to fit, which is great), is ctrl+i to switch to screen i,
| and ctrl+shift+i to move the current window to screen i. I tend
| to have 2 windows max per screen, and use Yabai to flit between
| screens / flit windows to different screens.
|
| (I used i3 on Linux prior to setting up Yabai, and configured
| shortcuts to be similar to i3.)
| gkfasdfasdf wrote:
| Is there any app that has the ability to 'lower' the focus of a
| window on mac? E.g. on Ubuntu I used to be able to 'lower' a
| window's focus by middle-clicking on the title bar, i.e. hide the
| window behind other open windows (without minimizing it). I
| really miss that feature on mac.
| datameta wrote:
| Yabai is an interesting japanese word with several distinct
| composite meanings. https://www.alexrockinjapanese.com/what-does-
| yabai-mean-in-j...
|
| Here it is being used in one context at a beatbox battle between
| then World Beatbox champion Alexinho and the super innovative
| Soso. https://youtu.be/OjbYK4rujB0?si=SIn-uNHlh2KexsXc Yabai
| shout is at 3m23s
| TheRealPomax wrote:
| It also seems wholly unrelated to anything about this app
| though, which is a shame, because as someone who knows
| Japanese, I'm not likely to install something called "yabai" in
| the same vein that I'm not going to install something called
| "whoa" or "ohshit". Hopefully that puts me in the minority.
| saagarjha wrote:
| What is it with Mac app developers and bad Japanese names, I
| wonder?
| steve1977 wrote:
| Just for the sake of correctness, it's not a window manager but a
| window management utility which extends the macOS window manager.
| jknz wrote:
| Why wouldn't apple allow to remove all animations when switching
| desktops, without disabling SIP?
|
| https://apple.stackexchange.com/questions/434555/can-you-com...
|
| Native keyboard shortcuts are there for all to use to switch
| desktops, but the fading in/out animations that last around 1s
| completely prevent fast desktop switches as is so useful in
| i3/sway.
| shortrounddev2 wrote:
| When I looked this up on an apple support forum, the replies
| were all basically: "Why would you want to disable this
| feature? Apple designers know better than you, go back to
| Windows"
| nick_ wrote:
| This is the Apple user culture exemplified. I buy and use
| Apple products every day, but wow the user culture is
| arrogant and dumb.
| superkuh wrote:
| They're not wrong. When you buy an Apple product and try to
| customize it you're not doing what it's made for. It's like
| trying to use a golf club to hit a baseball.
| babypuncher wrote:
| this is one of my biggest annoyances about macOS. I actually
| want to keep the vast majority of animations, the only one I
| want gone is the desktop transition, because it feels so
| jarring.
|
| Either make the transition instant, or bring back the old
| behavior where the dock and desktop remain static during the
| slide animation.
| dustingetz wrote:
| Has anyone tried this with complex layouts (e.g. 4 monitor tie
| fighter)? My main issue is window state is lost due to race
| conditions in the display identification logic, though I haven't
| tried dared a Sonoma upgrade yet which contains compositor
| upgrades
| lsuresh wrote:
| As a long time XMonad user who had to switch to a mac at a new
| job, I first used chunkwm and then yabai. Yabai's requirement to
| disable SIP was a problem, and so I finally switched to Amethyst
| a year ago and have been quite happy with it. It gives me pretty
| much everything I missed from XMonad.
| asadm wrote:
| Is there an auto-tiling window manager that just enforces tiling
| without using keyboard shortcuts? Like if I drag a window with
| mouse, it snaps it in a tile.
|
| I think I saw this in popOS. Does yabai support this?
| dansteeves68 wrote:
| I guess that I just rely on MacOS layout, however random and not
| great, and use Moom with some hotkeys to handle the exceptions
| where I want 2 or 3 windows in a specific state.
|
| I did try Yabai and Amethyst for a bit, but the overhead was a
| bit too much to handle.
|
| What am I missing?
| athorax wrote:
| The associated hotkey daemon used by yabai from the same author
| is equally as useful
|
| https://github.com/koekeishiya/skhd
| shortrounddev2 wrote:
| Everyone in my company uses a company provided macbook, but I use
| my own Windows Desktop. When presenting stuff to my boss, I'll
| use windows shortcuts for tiling windows (Win + Arrow keys) and
| my boss said that's the one feature he thinks is missing from
| macOS that Windows is really good at
| imbnwa wrote:
| Another bit is that Explorer's Save File modal does
| autocomplete for file names, which has the side effect of
| immediately alerting you that a file name is already in use
| before you submit, but is also massively helpful when you're
| naming consecutive downloads with a naming pattern.
|
| That latter case would be supercharged if Finder supported this
| on macOS as the global text edit bindings are more ergonomic
| for me than those shared between Windows and Linux.
| jsf01 wrote:
| For anyone looking to dip their toes into Yabai and tiling
| windows, I recommend the following setup. Enable full tiling only
| on a couple workspaces. Desktop 1 can remain in floating layout,
| just as though you'd never installed Yabai in the first place.
| Then tile Desktop 2 and as many others as you want.
|
| The one other tip I have is to have an easy hotkey for toggling
| full screen mode. Toggling an app into full screen mode doesn't
| lose its tiled position or create a new desktop the way native
| Mac full screen mode does, which is especially helpful when
| working on a smaller monitor.
| yangikan wrote:
| I usually have too many windows open (upwards of 20). And yabai
| tries to tile all of them. Is there any way to say "have a
| maximum of 3 windows horizontally and but for the left most
| tile, split vertically into two if needed"?
| oaththrowaway wrote:
| I have used Yabai + skhd previously solely to allow me to "cycle"
| my virtual desktops. Disabling SIP to make this happen was always
| a fun challenge on my work Macbook. Is there an alternative at
| this point in time?
| neilv wrote:
| For those who want to support open platforms, there are also
| tiling window managers for Linux and *BSD.
|
| I find XMonad is most effective for me. I sometimes also use i3wm
| (and there's also Sway, for Wayland). There are a few others.
| rcarmo wrote:
| This still requires disabling SIP, I see. That's just not an
| option for me.
|
| (I have done quite a bit of research and testing on these, and
| keep using a mixture of Moom and Phoenix - here's my full list:
| https://taoofmac.com/space/apps/window_managers )
| d4l3k wrote:
| It seems to work just fine with SIP enabled. I just switched
| and it seems to be a lot better than Amethyst. Amethyst had a
| lot of issues with focus follows mouse and dropdown dialogs
| that seems to just work with Yabai
|
| Seems like SIP is only needed for system dialogs etc so has the
| same limitations as Amethyst
| ckolkey wrote:
| Only for a limited subset of features. All the window
| management works with SIP.
| sgt wrote:
| I've always wondered why people enjoy tiling window managers.
| Personally I don't really grasp it. If I work with a lot of
| papers and documents on a desk, I don't "tile" them, I keep them
| sort of organically in front of me.
|
| And whatever app I need to use should ideally be straight in
| front of me. But that's just me, maybe I haven't had a proper
| tiling experience yet and thus I haven't seen the light.
| voisin wrote:
| If you need to work on 2+ apps simultaneously it makes sense,
| just like if you were copying text from one document to another
| on your desktop you would put them next to each other.
| deafpolygon wrote:
| macOS has the ability to put windows side-by-side.
| sgt wrote:
| I find your argument strange. Any windowing system can put
| two windows next to each other.
| certifiedloud wrote:
| I switched to i3 years ago for the workspace management. I can
| spread different workspaces across my monitors with easy
| commands and full control. Every OS and linux distro I've tried
| has inferior workspace management compared to i3. Tiling is
| secondary for me.
| caeruleus wrote:
| 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 + c (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.
| certifiedloud wrote:
| If you come from i3 you'll probably find Aerospace[1] to be more
| what you're after.
|
| [1]https://github.com/nikitabobko/AeroSpace
| idle_zealot wrote:
| Thank you for recommending this. Time for round three of
| attempting a tiling setup on my mac (after Amethyst and Yabai
| disappointed).
| certifiedloud wrote:
| Same path I took. I'm liking Aerospace so far. I just snagged
| the "i3-like" config from their docs and it feels like home.
| Not quite as snappy as i3, but very workable.
| strus wrote:
| This is great, thank you!
| rewgs wrote:
| I've tried Yabai multiple times but always bounced off. It's just
| a little too buggy, a little too opinionated. I've never found a
| window management system I've actually truly liked. On Linux,
| I've tried em all, and though in theory I love tiling window
| managers, but for me automatic tiling with the option to go
| floating on a per-window basis just ultimately ends up annoying
| me -- I prefer the reverse. On Windows, PowerToys/FancyZones is
| as close to my preferred method as possible, but then I'm, you
| know, using Windows.
|
| This past week I've come up with what is I think my perfect,
| dream solution:
|
| - Caps Lock is tapped for Escape, held for Cmd+Ctrl+Opt (i.e.
| "Hyper" or whatever). I'm a Neovim user, so Caps Lock has been
| mapped to Escape forever already.
|
| - Tapping both Shift keys simultaneously engages Caps Lock for
| the rare times in which I actually need it.
|
| - Window snapping is handled entirely with Hammerspoon. I have
| commands for absolute positions (e.g. half, one third, two
| thirds, quarters), but also can define grids and call them with
| key commands, and then use another command to snap all windows or
| just the focused window to the nearest grid box.
|
| It's all defined with code, and thus lives with my dotfiles, and
| is just a `brew install` and symlink away from totally setting up
| on a brand new machine.
|
| Also, I set my tmux prefix to Control+p, which I map to Command
| in my iTerm profile. So, opening up a new tmux "window" (i.e.
| tab) is Command+t. Navigating to the next "window"/tab is
| Control+Tab. And so on. Basically it just feels like a browser.
| This way, whether I switch terminals, or am ssh-ing into a
| machine, as long as I have my tmux config, those key commands are
| set.
|
| It's an amazing setup, can't recommend it enough.
| gdcbe wrote:
| Tbh if there was an app that would allow me to move between
| spaces on all my monitors at once, instead of each monitor to be
| done one by one, then that would be sufficient for my needs.
| edanm wrote:
| There's a setting for that.
|
| I don't remember it but something like separate spaces for
| displays.
| trenchgun wrote:
| Just use Hammerspoon
| verdverm wrote:
| Are there recommended 3rd party enhancing apps for cmd-tab?
|
| I'm looking for something that shows all windows for an app, per
| app, and maybe doesn't switch the app to finder when you cancel
| the cmd-tab
| Tyr42 wrote:
| Witch? It's been a while since I used it.
| ferriswil wrote:
| I use AltTab [0] for this. I find using a mac without it
| horrendous.
|
| [0]: https://alt-tab-macos.netlify.app/
| verdverm wrote:
| oh wow, you can have multiple "alt-tabs" and set what they
| show
|
| thanks for the link!
| nestock wrote:
| I hope there will be support for current Sonoma versions soon
| gigatexal wrote:
| I would love to do this and maybe move back to MacOS but ... this
| seems like a lot of faffing about for something that was not
| designed to be done and something that is constantly at risk of
| being nerfed by some future update or security thing such as
| Apple disabling the SIP disablement ability or something along
| those lines.
|
| But in Linux the choose-your-own-adventure that is the pluggable
| desktop model is that something like sway or i3 or other tiling
| window manager or a plugin for Gnome for example is much more in
| line with how the system was meant to be used and is very much
| not trying to shoehorn something in if any of that makes sense.
|
| Of course the dev(s) that put this together and it's other
| projects are hackers in the truest form and their efforts are to
| be applauded. I'll continue to show them praise but keep using
| i3/sway on Linux for the time being. (funny enough tiling window
| managers was why I left MacOS for Linux.)
| SJetKaran wrote:
| I've been using Yabai for 2+ years now, super happy that it
| exists!
| chatmasta wrote:
| I'm still using Slate, with a .dmg that was built nearly a decade
| ago and by some miracle continues to work. I pray that each new
| OS update won't be the one to break it, because I really don't
| want to migrate the config for ten years of muscle memory to
| something new...
| user3939382 wrote:
| I like to keep the right 10% or so visible so I can see (and
| manipulate) the first column of file icons on my desktop behind
| my otherwise maximized/tiled apps. I haven't been able to find a
| window manager that can handle this customization.
| hobofan wrote:
| Amethyst[0] has options for screen padding.
|
| [0]: https://ianyh.com/amethyst/
| handsclean wrote:
| You may have already considered this, but dragging desired
| folders into the last section of the dock accomplishes some of
| the same things.
| pizzalife wrote:
| Personally I only see the benefit of tiling for terminals. And in
| macOS, iTerm2 performs tiling perfectly. I just swipe to my iTerm
| workspace with tiled terminals and tab between other apps that
| are fullscreen.
___________________________________________________________________
(page generated 2023-11-30 23:00 UTC)