7 ms·
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 ma
by xwowsersx 3y ago
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.
- cedws 3y agoNothing 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.
- lowmagnet 3y agoI 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 3y agoThis 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 3y agoI 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 3y agoI'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 3y agoI 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 https://github.com/ianyh/Amethyst
- chaxor 3y agoI 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 3y agoIs Asahi your daily driver on MBP?
- chaxor 3y agoYes, absolutely. Asahilinux >> MacOS It's wonderful to use the M2 with incredible battery life and performance without having to have a subpar OS.
- darkteflon 3y agoCan I ask: is setting up dual-boot trivial? I’d love to check it out but can’t ditch MacOS entirely.
- darthrupert 3y agoThe installation process sets it up to you. You'd have to do more work to not have dual-boot (unless there was a setting in the installer that I forgot).
- stefandesu 3y ago
- Difwif 3y agoI'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 3y agoHave 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 https://github.com/kasper/phoenix [2] https://github.com/nik3daz/spin2win 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 3y agoI 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 3y agoDoes 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?
- extr 3y agoYeah if I recall correctly there is support for the mouse and doing all the kinds of things you usually use mouse for in tiling wm setups.
- BlackjackCF 3y agoPhoenix requires a little more futzing around than Yabai, but I like it much better. I had tried Yabai and had to switch back to Phoenix because of all the problems stated here about Yabai. It’s fewer bells and whistles out of the box, but it works well.
- emoII 3y agoRectangle is absolutely great
- xwowsersx 3y agoRectangle 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 3y agotry 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 https://www.youtube.com/watch?v=nRJ0477KFp8
- zdragnar 3y agoHammerspoon 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 3y agoCheck out https://github.com/agzam/spacehammer https://github.com/agzam/spacehammer if you're using Hammerspoon.
- vasac 3y agoThere's also somewhat similar extension for Hammerspoon: https://github.com/FryJay/MenuHammer/ https://github.com/FryJay/MenuHammer/
- pazimzadeh 3y agoI use hammerspoon with the ShiftIt spoon, which works well: https://github.com/peterklijn/hammerspoon-shiftit https://github.com/peterklijn/hammerspoon-shiftit My config file: https://gist.github.com/pazimzadeh/b1c70f5f205d0b63264e7c0213ef7afc https://gist.github.com/pazimzadeh/b1c70f5f205d0b63264e7c021...
- xwowsersx 3y agoDo you have a config example I can look at that demonstrates how to set this up?
- rufugee 3y agoI use hammerspoon with https://github.com/miromannino/miro-windows-manager...it's https://github.com/miromannino/miro-windows-manager...it's a great tiling experience.
- CSSer 3y agoYou 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 3y agoI've been using Magnet for years. It's simple and reliable.
- j45 3y agoHas anyone transitioned from moom to magnet?
- rwc 3y agoActually, only $5.
- rxhanson 3y agoIf you don't mind me asking, what are the warts? I'm always interested in improving the app.
- CSSer 3y agoYou 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!
- 3y ago
- pmarreck 3y agoSo 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.
- xwowsersx 3y ago> 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) Useful concept, that's exactly it.
- psygn89 3y agoThat 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 3y agoI'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 3y agoI 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"
- Hammershaft 3y agoI 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 3y agoAfter trying yabai, Amethyst, and many others, I landed on hammerspoon.org + https://github.com/miromannino/miro-windows-manager 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 3y agoCan you share your config please? Trying to get a better idea of what's possible and how to get started. Thanks
- rufugee 3y agoMy full hammerspoon config is a mix of things I've collected/written over the years, but the Miro-specific section is simply: -- window management hs.loadSpoon("MiroWindowsManager") -- set to 0.x for animation, 0 for none hs.window.animationDuration = 0.3 spoon.MiroWindowsManager:bindHotkeys({ up = { hyper, "k" }, down = { hyper, "j" }, left = { hyper, "h" }, right = { hyper, "l" }, fullscreen = { hyper, "f" }, nextscreen = { hyper, "n" } })
- faizmokh 3y agoYeah I'm using hammerspoon & miro too with this basic binding: ``` hs.window.animationDuration = 0.2 spoon.MiroWindowsManager:bindHotkeys({ up = {hyper, "up"}, right = {hyper, "right"}, down = {hyper, "down"}, left = {hyper, "left"}, fullscreen = {hyper, "f"} }) ``` Works well enough for years.
- girvo 3y agohttps://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst This is what I used for years. Sadly I'm back in Windows land these days due to work.
- imawizard 3y agoI‘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 https://github.com/imawizard/MiguruWM The wiki also contains a list of other window managers for Windows one might want to check out.
- nbobko 3y ago> 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 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
- xwowsersx 3y agoVery cool, looks great. Seems to hew pretty closely to i3 from what I could tell in the demo video. Will definitely give this a try. Thanks for your work on this!
- thelazyoxymoron 3y agoThe demo looks pretty nice! I'll be trying this out over the weekend and report any issues. Thanks for building this!
- baumy 3y agoJust tried it and my initial impressions are hugely positive. The main things missing that I frequently use like wrap around for focus and assigning applications to specific workspaces already have open issues that you've engaged on too! I've been using i3 for over a decade now and hate using any computer that doesn't have it, been trying to find a suitable substitute for my work mac for ages. Amethyst, rectangle, magnet, yabai, each had its own problems. The virtual workspace idea is genius and solves some of the biggest issues with those alternatives. This is by far the closest thing to i3 on mac I've seen. Thank you so much for making this. My suggestion: open up a way to take donations to the project, and/or sell a packaged version on the mac app store. I'd be happy to pay good money for this.