Hover over the green stoplight, you get a popover with fullscreen options.
Press Option and the fullscreen options mutate into snap left/snap right/zoom.
These can also be found in the Window menu. Again, press option to mutate the fullscreen ones to snap.
And since these are menu options, one can set any keyboard shortcut of their choosing through the keyboard shortcut prefpane+.
So it is not "snapping" in the sense that you drag the window to the left or right side of the screen, and I would 200% agree that it is completely non-obvious to discover, but it is there for any one to peruse without any third party tool.
+ See here for how to achieve that, section "Tiling and snapping" (along with more things to make first party things more sane for a certain crowd) https://lna7n.org/2021/04/16/a-survival-guide-to-macos-from-...
I tried for months to go vanilla and get my head around the features. But why, why do fullscreen windows create their own space when I want them to exist within a space? Why can't I briefly bring up Finder on top of my fullscreen window? Why are there lengthy animations to switch between spaces? Why do CMD+Tab and CMD+` have a million special rules for which windows they select? Why is there no way perfectly position more than two apps next to each other? Why are apps in splitscreen married to each other? Why can't I easily swap one of them? Why are some window operations keyboard-exclusive, while others can only be performed with the mouse?
There has got to be a perfect workflow where all this makes sense. Otherwise, they wouldn't build it like that? Right?
The relevant discussion starts at 1:33:00
Siracusa, who grew up as a (classic) Mac user, explains his tiling and overlapping habits to Arment and Liss, who grew up as Microsoft Windows users and later switched, and they gasp in utter horror, shock and awe.
For example Siracusa explains that he currently has a dozen terminal windows open, and also 19 overlapping Safari windows, normal for him, in BBEdit he regularly hits 20-40; they ask him if he doesn’t know about tabs and he replies “Oh, I love tabs! Of course every Window has many tabs!”. How would he manage/organize hundreds of tabs in multiple applications with a snapping tiling manager? He can’t. It is fun from there. Like, he jokes after a work week his desktop has “sedimentary layers”.
While we're at it, the Dock has always been bad. And the top menu bar was good for the original Macintosh with a tiny screen but it makes no sense on a 4k display with many different app windows showing simultaneously. MacOS has a lot of relics of the past that Apple refuses to give up. I just see it as a tax I have to pay to get to use Apple Silicon.
https://patents.justia.com/patent/6661436
https://discussions.apple.com/thread/250201392
https://www.omgubuntu.co.uk/2021/07/gnome-shell-quarter-tili...
Mac windows do snap together when they're close to each other or the edge of the screen.
You can option double-click any corner to make the window fill the screen without going into fullscreen mode.
You can double-click any edge or corner to make it expand to the edge.
Hold down option and mouse over the green traffic light, and you get the option to fill the left or right half of the screen.
The main issues for me are:
1. changing monitor configurations destroys my arrangement
2. the menu bar, on large screens, is too far away — it needs to be closer to where I'm actively working
If I sound like a smug Linux user here, damn right. This is a stupid way to do operating systems.
As much as I hate many many many design choices in Apple's ecosystems, I adjust where I can and move on.
Window management in macOS is superficially similar but profoundly different from Windows or most Linux DEs. It's got a fixed menu bar which windows are independent from. That alone already changes a lot and has deep implications.
My advice is to learn how and why it's different instead of trying to make it behave as something it's not. Waiting for Apple to turn it into a chimera would be even worse, IMO.
In Apple's UX view, it seems like you're meant to maximize windows to "spaces", and switch between workspaces using a few gestures (4 finger swipes mainly) to reveal all windows, and swap between workspaces that way.
Rectangle, as others have pointed out, give you the "snap" experience you would expect from other OSs.
In this environment, your screen is basically the entire world around you, it can be as big as you want. Would you want to divide this into neat rectangles filling your entire view ? If your screen is that large, you basically size your windows to fit the content and then arrange them spatially into something that makes sense to you.
The desktop isn’t that different, but it’s limited by the size of your screen. This urge to divide the entirety of your screen up into rectangles with zero breathing room between them is not because that’s the most natural way of organizing your windows, it’s a way to deal with lack of space.
Say you’re organizing your mail on your physical desk. You’re making different stacks. Bills, taxes, junkmail, etc. Are you going to put these stacks right next to each other ? No, you’re going to leave some room between them. In fact, it would be really annoying if you had so many different stacks of papers on your desk that you had to put them next to each other filling the entire surface. It would feel way more chaotic.
In my opinion, tools like a maximize button and window snapping are trying to solve the wrong problem. You’re trying to maximize usage of the space you have, because you have too little. The real solution is to get more space, i.e. get a larger monitor. You don’t need window snapping or anything like that if your monitor is big enough, and you can just size your windows to fit the size of their content and place them wherever. In fact, on a large monitor window snapping makes zero sense.
I use MacOS daily at work but I would LOVE if I could use Windows instead, that's what I have on my personal machine. It looks like the OP simply wants to use Microsoft and can't admit it to themselves!
Now, I’m using 9 spaces, lineair unfortunately. But I’m using yabai with shkd as window manager and Alt-tab to switch between recent windows (as that’s apparently broken by design in macOS).
I’ve configured so called “modes” for create a vim-command-like way of commanding windows and focus around. Eg hyper+m goes into _m_ove mode, from there I can press 1-9 to move a window to a specific space, or shift+1-9 to move and follow, or (shift+)q to move (and follow) a window to the latest focused space. (Hyper+q in “normal” mode moves me back and forth between recent spaces.) I’ve got jump mode to go to an application by shortcut, and some app specific modes to bind key successions to shortcuts.
Oh, not trivial, hyper+enter gives me iTerm at any space
The nice thing about yabai with SIP disabled is that it’s snapping without _any_ delay, which is great when working with many windows.
Apple has a solution for this which is the green dot that puts your app in a separate space to be truly full screen, and you can split screen between two apps. I guess that’s what Apple would like you to do instead of snapping.
And now that there are so many solutions it might make less sense to then integrate one which will practically kill the rest.
I personally use an app Divvy which let me create global hot keys for specific arrangements and moved on.
When I drag a title bar to the top center, as I have for decades, it tries to maximize the window. I never want that, and have double-click titlebar (that’s more efficient) if I do.
There’s also a weird state machine between snap to size and normal mode I never completely understood. Believe the thinking is that it should work the same as max/restore but I don’t want three modes to keep track of. If I do snap the size/position that’s what I want, and would never want it to go back to the old place, aka restore.
I think KDE has some useful subset that can be configured. The edge snapping is not bad, and the ones that require a modifier key.
These are implementation concerns however. The basic idea is good but I haven’t seen it done right by default yet.
“This document describes techniques and apparatuses enabling assisted presentation of application windows in a multi-application environment. The multi-application environment described herein presents one or more application windows, which can be sized, positioned, or layered to provide an optimized layout. In some embodiments, these techniques and apparatuses enable a size or position of an application window to be determined based on an edge of another application window.”
This bleeds over to the Mac in my opinion. I don’t want Apple to make everything, I want them to provide hooks and APIs that allow other people to make things to give me more choices as a user.
I don’t want big monolith applications (like Outlook), I want small applications that do one thing well.
So when people say “why doesn’t Apple do X?” And I see a dozen third party implementations I think “because they don’t need to” and that’s perfect in my mind.
Similar thing with using an external 4k monitor. By default it's blurry (looks like 720p, awful), and one needs a 3rd party app (BetterDisplay) just to get a decent image. I had this issue with several macs and displays and cables. Terrible user experience. Obviously works out of the box with ubuntu, debian, and windows.
I've got some plans to spend some time enabling more arbitrary grids and subgrids but I haven't gotten to it yet.
I'm recently switching to Mac at work, and the last time I was in it one of the things I missed the most was that feature.
I'm also hoping commenters on this post will be writing about their favorite hacks for emulating tiling WMs on macOS.
--
1: Example, basically exactly the feature I want: https://youtu.be/urqkaWo5geQ
If and when they do add one we can look forward to the many articles about “sherlocking” though so that’ll be fun.
As others have mentioned, this feature is patended. `BetterSnapTool` is $3 is for a lifetime license and does what you'd expect coming from XFCE/windows etc.
But is there a way to get it to show on all 4 monitors all the time? If it could show the open windows on each monitor (like windows taskbar) that would be even more amazing! Please this has been bugging me for so long and any help is appreciated.
P.S. There is a software called ubar but that only works for bottom 2 monitors :/
All this said, I would like to see the full-screen mode get support for three windows, along with a way to stack vertically. There are times when you need more than two windows on a screen.
I also think it’s as simple (and stupid) as Apple wanting to continue to use rounded corners and window-snapping not really making rounded corners look particularly elegant.
https://patents.google.com/patent/US10592080B2/en
MS and apple have agreements to share patents though, so I don’t know why they couldn’t implement this.
you can split this; you just have to hold down the fullscreen button, no right-click access because again, thoughtless application of touchscreen idioms
as someone who uses none of the above: lining things up is painless since window bounds are slightly sticky, & macos remembers app state so it's not like you're doing manual window management every time you start up $APP. broadly equivalent in practice to a tiling wm with elaborate preset layouts & pigeonholes for specific programs. except you just drag things instead of editing a config file. couple this with all the apps i frequently use in full screen (iterm, mpv) having options for pre-lion-style instant-switch fullscreen, and i'm not hurting for lack of snapping... ever, really.
fwiw there are third-party solutions for snapping if you really care, and there are even full-blown x11-style tilers
I'm told "Snap Pro" is current front runner
I think pre-installed stuff is a slippery slope with bloatware on one end of the spectrum, and a bare bones alpine version on the other end.
I don't mind installing stuff. My preference is minimalism. I prefer to have 3+ independent apps to choose from where possible.
Maybe in 2025
Apparently it's no longer maintained but works perfectly fine right now, and there are alternatives i haven't tried, like Rectangle.
This, 1000x this.
It's utterly bizarre that the window management paradigm is "let 'em all stack up and make it easy to spread 'em all out"
At first I thought I didn't get the paradigm. Now I get that I don't get the idea behind the paradigm.
Rectangle (pro version) fixes some of this and adds some really cool features. And because of the Apple app hegemony, it does work nearly OS level good. But why, oh why does this have to be 3rd party?
It's like some any UX pattern baked in since Lisa?
If Apple and Microsoft provided a solution to every UX variant people want, there wouldn't be a market for apps built on top of the platform for UX tools. The further they encroach on the various markets the more developers will be discouraged from entering those markets for fear of the platform making their app redundant.
Apple and Microsoft have to draw a line somewhere, sometimes they get it wrong though and piss off a load of devs.
There are however obvious counter arguments to this with platform default apps such as email. But again it's important for the "average user" to have those in any new device. The platform effectively needs to do roughly 90% of what the average user wants out of the box, but then encourage users to go purchase further solutions from the various markets. Window snapping probably sits in That second area.
"oh, uh. Yeah."
:)
    File-Edit-*-Windows-Help
are there a family of little doo-dads like this, and what is the category called?
also, aside, pet peeve: why is New Window always in the File menu, and never in the Window menu, from time immemorial?
It’s possible that the addition of snapping would confuse some uninitiated users. They wouldn’t understand why the windows lock toward the side of the screen when they drag.
The only beef I have with apples windowing system is you can’t remove the finder from alt-tab. There are apps like witch but it is currently broken with IntelliJ tools. It doesn’t allow switch window focus to auto save.
I have written the developers about this. They probably are reading this now. Fix it.
2) there are applications which can add this
3) Mission Control is their preferred way to handle windows
Works quite well, and is configured w/ Lua
    brew install rectangleIt is hard for me to imagine what you could mean by "nonexistent window managing system". Obviously Mac OS has a window management system.
People have widely varying preferences when it comes to such things. You seem to be thinking of yours as though they are somehow objective and external to you.