I always feel like Apple must have some grand 1000IQ concept for window management and I just don't get it. Stage Manager, Spaces, Mission Control, Expose, Window Zooming, Hiding, Minimizing (which is different from Hiding), Fullscreen/Splitscreen... yet the first thing I do is install a third-party window manager.
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 idea behind macOS window management is to not manage windows at all, instead letting them exist at sizes that fit their content in whichever position they land on your desktop, stacking and overlapping like papers on a desk, letting relevant bits peek through without requiring the entirety of their host windows being visible. Exposé/Mission Control are there when a window gets lost, and virtual desktops are meant to partition window groups by task further reducing the need to manually manage windows.
It's basically the polar opposite of something like a Linux tiling WM and it's quite different from Windows, where it's the norm to maximize everything.
Which is what is so bizarre about it. Everything else about Apple is about cleanliness, focus, minimalism, simplicity.
Yet the windowing system is designed so that everything's overlapping, it's hard to pick out your foreground window from 20 other background windows of varying shapes and sizes and positions, and bringing up Expose/Mission Control shows you something like a detective's corkboard as he tries to connect the dots to solve the case of the serial killer.
It's quite jarring when the rest of the Apple aesthetic is clean minimal lines, and then your windows are this separate universe where it looks like a three-year-old tossed rectangles all over the place and never cleaned up after themselves.
Well, it is simplistic from a certain point of view. If we rewind to the mid-to-late 80s with the Lisa and original Mac, which do you think most users at that point would find more simple and natural: windows that act as analogues of physical papers on a desk, or windows that have no real life equivalent and resize to fill empty space under arbitrary conditions?
Granted, that was ~40 years ago and things are different now, but you can see where the roots of the idea trace back to, and the idea probably has some level of relevance even today. As noted in my other comment, on Windows users often opt out of window management entirely by maximizing everything because it's simpler.
> it's hard to pick out your foreground window from 20 other background windows
This is mostly a casualty of two things: first, the flat UI epidemic which stripped contrast from UIs and made active/inactive windows states less distinct from each other and second, the proliferation of web/Electron apps which for the most part do not implement inactive states for controls at all.
If you boot up a Mac running the last non-flat OS version (10.9 Mavericks) and do work on it with entirely native apps, you'll find that the active window is very visibly active and background windows are very visibly inactive.
My main issue with this workflow is that if I alt tab to terminal, then it brings all of the terminals to front, rather than the one I wanted. Now one inactive terminal may be blocking the previous app that I want to use as reference for my active terminal. The only workaround is to resize and drag all the terminals around which I usually don't want to do. So I have to make the previous app fullscreen to move it to a separate window and then suffer from the slow window animation. It's just the worst UI ever designed. Never had any such issues with default ubuntu or windows. Things actually feel like a real desk(top) on those.
It sounds like you're maybe not using virtual desktops, in which case I would strongly suggest giving that a try. Moving windows between desktops is faster than switching to/from fullscreen and in many circumstances you can have just one terminal window per virtual desktop windows makes it easy to command-tab to.
The other thing I tend to do is to keep the windows I'm actively using peeking out to click on to foreground which sidesteps the issue of command-tab foregrounding all windows.
Virtual desktops in MacOS are still only partially implemented though.
Vastly better than Windows (unless 11 has decided to fix them), but grouping windows together in a new desktop involves swiping up, clicking the plus to create a new desktop, dragging both windows to the new desktop. Control left/right to move between the desktops, oh that terminal would be useful as well, and find that there is no native shortcut to move windows between desktops.
Mission Control is the quickest way to find the window you want amongst many. It has a dedicated keyboard key (F3), but you can also set it to a hot-corner so it's a quick mouse move away. There's also a "show all application windows" command that has a keyboard shortcut and can also be set to a hot corner.
You absolutely do not need to resize and drag windows around manually to find the one you want!
> it's hard to pick out your foreground window from 20 other background windows of varying shapes and sizes and positions
I’d argue this probably means you have too many windows open. Part of the abstraction for macOS programs is that the program isn’t the window, and vice versa. You can close all of a program’s windows without closing the program itself. This frees you up to close windows willy-nilly and know that you can just open them back up again if you need to. Keep just what you need for the current task-at-hand open on your desktop and close everything else.
Personally, I’ve actually been using Stage Manager, which takes rapid-unitask- switching toward its maximum level. Just one app open on each screen at a time. Other windows hanging out in-sight, but not cluttery. Switching’s just a click away, and of course all the keyboard shortcuts work nicely, too.
It's a great way to waste both the screen real estate and the user's attention.
MacOS has a number of interesting features in the kernel, and it has a reasonably good and highly uniform UI, with global shortcuts and all. But its window management is insufferable.
Good thing there are utilities that try to help that. (I already forgot which, I handed back my last work-provided MBP in 2018.)
Only in that they resize the window to be kind of but not really full screen. That’s what all of the less technical Mac users I know do. I’ve never seen them go full screen with the green button
Based on seeing how most longtime Windows users use Windows. I rarely see tiling used, it’s almost always maximizing. Even on gigantic monitors and web pages with an 800px central column, they maximize.
The Windows users I encounter IRL tend to not be particularly technical though so that may bias things.
I personally get some usage out of tiling but as mentioned in another comment the tiling proposal triggers in W11 are over sensitive and kind of annoying.
I think that’s generally what you want because having other windows visible would not only take space away from the application you’re using but also be distracting
I might actually try that for a while, but I doubt I can get used to it.
My use cases almost always want the maximum available vertical space. Every window that scrolls, I want as large as possible in that direction. But, on the other hand, I can see how smaller overlapping windows would leverage spatial memory for faster switching.
> It's basically the polar opposite of something like a Linux tiling WM
It's basically an over-engineered Gnome, where some features like side by side windows there was a red line by UX and someone worked around the law to "sort of" offer the option.
Having used GNOME (and actually, running it on a couple of machines right now), I think macOS is at least a step or two above “overengineered GNOME”, because GNOME itself is basically what you’d get if you asked someone to turn iPadOS into a desktop OS. It feels considerably more restrictive than macOS does.
GNOME has a lot of features that macOS is missing by default, like dragging windows anywhere by holding a key, compose key support, per-app volume mixing, and searching through open windows as you type.
In what ways do you feel that GNOME is more limited than the macOS desktop?
> That is absolutely wild. All the time? Until mouseover?
All the time, normally only the close button is visible. I can kinda see the reasoning for hiding minimize since GNOME lacks a representation of minimized windows (except in overview), but I can’t figure out a good reason to hide maximize.
That’s what I’ve thought, but why would I not want my browser, editor, or any other work app full screened? If hit the green button to make it a work space, it handicaps functions like swipe up
Personally I never want browser or editor windows to be fullscreened unless I’m working on a tiny screen like on the 12” MacBook Air or maybe 12” Macbook. On anything larger doing that makes for tons of blank space that could be used for other relevant windows or at letting my desktop peek around the edges.
IDEs on the other hand I like having fill my screen because of all their editors and panes, but I still don’t use actual fullscreen but rather option-click the green button which resizes the window to fill the desktop without actually going fullscreen.
Apple has, for 20+ years now, wrestled with workarounds to the Mac's central UI blunder: making all applications share a single menu that's glued to the top of the screen.
Every other windowing OS recognized that menus belong on their applications' main window frames, which makes the desktop an unlimited workspace.
Apple should have made the same transition with OS X, but, in true Apple fashion, petulantly refused to acknowledge that others got it right. So we're stuck with this idiotic swapping of menu contents behind the user's back. If you're temporarily done with an application and minimize it, revealing the one you were working with before... guess what? You're still using the menu for the application you "dismissed." Asinine.
I actually disagree strongly with (part of) this. Having a singular target menu I think is a good design decision (I used OSX in the past, but currently use windows+wsl at home, and linux for work).
Having a singular menu position is consistent. It gives you an 'infinite' Y target...you just slam your pointer into the top of the bar and get menu options, and only have to care about X accuracy.
The persistent menu on minimise, I do agree, is daft. But having a consistent location I think is a good decision. Need menus? Look at the top. Need menus? Mash your mouse into the top of the screen.
I respect your assertion, but I've heard this argument before.
"It gives you an 'infinite' Y target...you just slam your pointer into the top of the bar and get menu options"
Except that essentially nobody does this. Remember that you and I and other HN readers are not the general public, and the general public is not going to assume they can do this. Watch actual users. Not to mention that this only helps in the Y direction; you still have to position carefully to get to the horizontal item. Most people do not separate those two. I've been programming on Windows and Mac for decades, and I never ever "slam" the cursor to the top of the screen.
Also, "slamming" the cursor in Y will not work if you're using multiple monitors and one is above the other. For example, if you have a laptop on your desk with a big monitor above and behind it.
And any loss of "slamming" convenience is offset by the proximity advantage of a window-mounted menu. If the menu is on the window you're working in, you have to move the cursor less to get to it. On today's large, high-resolution monitors this can be quite a savings.
And finally, with the menu on an app's main window there's never any confusion as to which application's menu you're using. Again, with today's large screens, you are more likely to have multiple applications' windows up. It's hard enough to tell which application owns the menu without peering at the corner and reading a name, which is never a fast or intuitive solution and even worse if applications are presenting similar UIs (for example two graphics-editing apps).
And if you minimize an app and are left with a couple more on the screen... who owns the menu? Who remembers the last place he clicked? Why should you have to click around on apps' windows to swap the menu out to the one you want, and then roll all the way to the top of your 27-inch screen to use it?
I hate wasting ui space by forcing every application to use their window real estate for a menu bar. There should be only one menu bar in the same location that changes when the context changes. It’s one of my favorite aspects of macOS.
It doesn't waste space. Windows can overlap; it's one of the fundamental aspects of windowing GUIs. Having a single menu glued to the top of the screen permanently wastes THAT space.
If you look at old screenshots of how people used desktop computers [1], it was rare to see fullscreen windows, even on the tiny monitors of the day, and when most people used only a single monitor.
Today, we all have gigantic monitors, many have more than one, but for whatever reason people want to maximize or tile windows. Maybe it's the influence of the fullscreen only, unitasking paradigm from phones and tablet computers, but it just doesn't make much sense to me on a desktop computer.
>Maybe it's the influence of the fullscreen only, unitasking paradigm from phones and tablet computers, but it just doesn't make much sense to me on a desktop computer.
Completely the opposite. It's the influence of having computers powerful enough to have massive multitasking. Arranging windows like papers on a desk is easy when you have a handful of simple programs and a couple of browser windows - it's very different when you have 100 tabs with their own task-swapping logic in front of 20 other programs. You've already lost easy swapping so you might as well gain the extra pixels.
Windowing was a core part of classic MacOS applications, the application was decoupled from its windows, since the application was a composition of windows. It's very different from the MS Windows or tablet UI paradigms where an application and its main window are the same thing.
For example, Photoshop, your photo document was contained in a window, your tool palettes were windows, etc. If you were viewing a reference image, you could have that open in a separate window alongside the image you were working on, rather than having to switch tabs or switch windows.
I keep my browser fullscreen because websites usually break (read: horizontal scrollbars, or ridiculously narrow columns for content) or go into a mobile view if I don't.
I keep my terminal (read: text editor) fullscreen because then I have enough horizontal space to have two panes open next to each other (sometimes with an additional directory viewer to the left).
99% of the time, I'm in the terminal or the web browser. I don't understand what I would gain from not maximizing them, but I do understand what I would lose.
If you're not using a tiling window manager, maximizing windows that do their own tiling (e.g., tmux, Emacs, vim, iTerm, Konsole... whatever) is the only thing that makes sense.
If you're visually impaired, you'll also likely find yourself needing to maximize because all of the blank space used in modern design trends means that if you scale up the app or the font sizes, all that empty space the app is burning up forces you to maximize the window just to fit the important elements on the screen.
Can you name a website which does this? I use everything except games and my IDE in windowed on different machines and I have never experienced this problem in 10+ years of doing so. It can only happen if you make the browser window extremely narrow.
It’s also the influence of “padding:200px” on all websites. Apple taught that whitespace meant design, so a screen barely fits 10 words today.
https://appfire.com/ as an example, but I’m always flummoxed how ALL wordpress themes cap at 10 words per line of text in the body of the blogs, and 25cm of white blank on either side (10 inches).
They know that 90% of users use apps in fullscreen mode most of the time, or just higgly piggly stacked windows. Most people do not, most of the time, end up in situations where they are using two apps at once. Why do you think it took so long to get any window management at all into the ipad os?
They also know that power users have options in the 3rd party app market if they want more fiddly or opinionated window management and have decided to stay out of that fight.
Aren't non mobile devices catering to power users at this point, though? We're not in 2005 anymore, the vast majority of people using laptops or desktops are either professional computer users or gamers, which are generally power users.
Casual users have moved to phones and tablets, like, 80% of them.
I agree with you on this 1,000%. The only parallel I can think of in recent history is Google's seemingly 15 different messaging apps. And learning all of the weird rules you've described reminds me of programming CSS to take account of IE6 quirks. There's no rhyme or reason.
It makes no sense, and every time they add a new paradigm it just makes it worse. I had high hopes that Stage Manager would finally solve it, but I turned it off after a week. It was just more of the same nonsense.
because when Multi-finder came out it satisfied our needs and don’t see a reason to change. I bet Apple has put a lot more effort into why they do things, then many give them credit.
Last time I’ve tried Windows, there were ads in the start menu. And when I tried Ubuntu, they switched from Gnome to Unity, so I ragequit. Also Ubuntu had ads for Amazon in its start menu.
Yup, me and everyone I know just has a pile of windows, maybe scattered across a few workspaces.
I like macOS but have never really vibed with the window management. The only way it makes sense to me is if they don’t actually want you to full screen windows most of the time. Swiping up on a laptop helps but when on my Mac Mini, it’s just not that intuitive. I’m aware there’s a keyboard shortcut that is also bound to the swipe up function, but I never incorporated it into my routine
The alternative explanation seems to be that they know it’s far from perfect, but lack the appetite to rethink from first principles. So they come up with some feature that will help some specific scenario, and just pile that onto the stack of shit.
You go look at early Mac OS X and it’s strikingly similar, it’s well and truly reached a point where they need a shakeup but are scared of the short term pain in breaking user workflows.
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?