Hacker News new | ask | show | jobs
by extr 934 days ago
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.

3 comments

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?
Yeah 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.
Phoenix 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.

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.