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-...
The Windows snapping UI is much more intuitive, though.
I.e. pre-configure a tiling layout of application windows, that will be restored as specified (or at least on boot)
Beats the heck out of me.
https://learn.microsoft.com/en-us/windows/powertoys/fancyzon...
This is why on macOS I prefer utilities like Moom, which tucks snap options behind a little popup that replaces the native macOS zoom button hover popup. It gives me snapping on the odd occasion it's actually useful without the spammy accidentally triggered border zoom animations that come with Windows snapping.
I'm never like
> Ah, just let me resize my browser window so that this image will fit within it!
Now, in practice, Zoom is really nice when it works (I'm using it all the time with Finder+ windows), the problem is that it takes a single app not providing the content size hint for it to break and make it confusing. And then a vicious circle starts where more apps don't care about what it's supposed to do, and before you know it Zoom is mostly falling back to being Maximize most of the time, and people wonder why when it's doing the original Zoom thing it behaves differently and think it's weird and broken (which is perfectly understandable)
In a way Apple either did not embrace the winlin paradigm enough (e.g having a proper Maximize alongside Zoom + having an option for per window cmd tab) or they did not stick to their guns enough (enforcing Zoom to be correct + having a worthy fullscreen/tiling implementation) and we're left with a shitty compromise.
+ A very similar case that ties into this is how the Finder went from being fully spatial to a half-spatial half-global compromise.
The behavior of double-clicking the title bar is controlled by the "Dock & Menu Bar" settings pane. It can be configured to minimize the window instead. You can also double-click any edge or corner to maximize from that side alone. Option-double-clicking will grow both sides. I like to option-double-click my Terminal windows to maximize their height without changing their width.
1. Go to System Settings -> Keyboard -> Keyboard Shortcuts -> App Shortcuts 2. Click the small (+) button under the shortcuts table. 3. Choose/Type the following values in the modal: - Application: All Applications - Menu Title: Zoom - Keyboard shortcut: Command + Shift + M (My preferred shortcut) 4. Click Save. 5. Voila, now you are able to maximize any window, and pressing it again it goes back to its original size. A cool trick is that now if you hover the green (+) button on the top of any page you will be able to access that shortcut from there as well. It sits just under the "Enter Full Screen" menu option.
1. Go to System Settings -> Keyboard -> Keyboard Shortcuts -> App Shortcuts
2. Click the small (+) button under the shortcuts table
3. Choose/Type the following values in the modal:
- Application: All Applications
- Menu Title: Zoom
- Keyboard shortcut: Command + Shift + M (My preferred shortcut)
4. Click Save.
5. Voila, now you are able to maximize any window, and pressing it again it goes back to its original size. A cool trick is that now if you hover the green (+) button on the top of any page you will be able to access that shortcut from there as well. It sits just under the "Enter Full Screen" menu option.> Can I maximize or "snap" windows on modern MacOS without entering full screen mode (with its annoying multiple "spaces")?
This:
Wow. In the linked comment you just turned it into the class discussions.apple.com answer which always translates to “you are doing it wrong” and then “why do you even need that”.
I really don’t like the full screen behaviour in macOS.
Cmd Left/Right to change between fullscreen windows. Cmd Up Arrow to show all of the fullscreen windows. Using the trackpad, 3 finger swipe up to show all the windows. Either 3 finger or 2 finger swipe left/right to switch between them.
When 2 windows are fullscreen, you can use Cmd Up Arrow to show all of them and drag 1 window in the bar at the top onto another window icon in the bar at the top to do a vertical split (only works for 2 windows)
You can also double click on any edge of a window to expand that edge to the edge of the display.
Long time Mac Os user, never knew that, thanks
To maximize the window (w/o going full screen, which I hate too), I’d alt-click the green button (would because I never maximize windows either; I’m passionately anti-snapping, anti-fullscreen, etc.).
The option key on macOS enables all sorts of extra functionality, open some drop down menus while holding it and you'll find extra / more advanced options in some. Or if you option click your Wifi, for instance, you get all the network info for the network in a bigger popup than clicking it alone!
When I started at Apple as an engineer, the first bug I filed was "Can't resize windows from their edges" (or any corner except one).
Just mind-bogglingly stupid. And when Apple finally does capitulate and admit that others have done it better, they petulantly try to hide the functionality anyway. In the case of the windows, there's no window border and the cursor frequently fails to change to the "resizing" one.
In the case of two-button mice, Apple came out with a mouse that hid the second button and in fact was nearly unusable because the entire shell was the button so you couldn't lift the mouse and keep the button held to continue a scroll.
And on and on.
Oh, and then Apple added Alt-Tab-style app switching... but it's often useless because when you Command-Tab to an app, Apple doesn't restore its window. It remains minimized and useless in the dock. There is a utility called Alt-Tab that lets you fix this, at least.
And those are just a couple...
I think you’ve saved my life
If you Command-Tab to an app that doesn't have a window (AKA Finder), it will create one for you (optionally).
Thank you so much!!!
On the one hand X11 sort of sucked with it's inconsistent window handling mechanisms. On the other hand because there was no central policy some very good novel productivity advancements were made in X11 space. select/single click paste, focus follows mouse, don't raise on focus. tiling window managers.
Having an IDE up front and checking on docs or similar in a background browser with part of the website obscured is something I missed since I moved to Linux and a tiling window manager. Now I have to waste screen space showing the menu or other useless junk on the sides of the actual text. I can sometimes zoom in and scroll just right, but others the site insists on showing me all three columns at the same time.
I also liked the macOS approach of not having the first click in a background window fire an action. Now I always have to watch where I click if I want to switch windows with the mouse. I think KDE might have a setting to work like this, though.
It is a bit obscure but I quite like spectrwm, it fills this sweet spot where it is much simpler than I3 but more feature complete than DWM.
But it's not something I find practical for some reason, even though I have a fairly simple keyboard shortcut to switch between tiling and floating. Maybe because this isn't really how you're supposed to use i3, so there's no "maximize", or "snap to edges" or similar. You have to move the windows around, adjust their size manually, etc. If you unplug your monitor, you're SoL if you need to retrieve some window that's now floating outside your viewport.
I just gave it a try right now, and Firefox became so huge I needed a good 15 seconds to resize it so that it would fit my screen.
---
[0] Windows in i3 are nodes in a tree, so you can detach one node and its children from the tiling tree. The new subtree is floating with respect to the root tree, but the nodes in the subtree are still tiled with respect to one another. This works well in "tabbed" mode, where only a window among its siblings is visible and takes up the full viewport; the others show up as tabs.
That's the default on windows, but it _does_ support focus-without-raising. In fact, it's literally called `Xmouse`: https://en.wikipedia.org/wiki/Xmouse
An easy way to enable it is to use Winaero Tweaker, but it's builtin Windows functionality: https://winaero.com/turn-on-xmouse-active-window-tracking-fo... (Just make sure "Enable window raising" is unticked).
If I remember correctly, the confusing part was finding the part of the edge that allowed you to resize as the mouse remained a pointer.
The cursor problem also occasionally afflicts splitter bars in other Mac UI, however. I don't remember how often this splitter-bar problem happens on Windows.
Years after that, Apple was going to fix another one: The Delete key (the real one, not the Backspace key that Apple mislabels "delete") does nothing in Finder. It should send files to the trash, as it does in Windows (and probably every other desktop GUI).
They pushed the bug back to me as "will not do," which I bounced back with an argument that forcing people to drag, drag, drag stuff to the trash all day made the Mac look clumsy and dumb in comparison to Windows. To my surprise, they actually reconsidered and added the deletion function to Finder. I don't remember the OS version, but it may have been Jaguar betas.
A few months later, someone on an internal mailing list posted, "Hey, what happened to the Delete key working in Finder? I was really enjoying that!" Sure enough, the function had been pulled at the last minute before release.
I investigated, and was told that ONE person had objected to the behavior, claiming that his cat might delete stuff by walking on the keyboard. Seriously.
I wrote an even longer protest, pointing out that this was the entire purpose of the trash-can paradigm: to prevent accidental deletions. I also observed that it was pretty sad that Apple no longer understood a paradigm that it had popularized.
But to this day, the Delete key does nothing in Finder. Absurd.
Linux really does beat out everything for this type of stuff imo. The best window management, sometimes even by default and everything customisable almost to the point of perfection.
You can hold OPT as you pick the window in the cmd+TAB mode, and that would open all of its windows.
It's quite convenient actually.
You can do just that. Drag it to either side to make it half-width or to the top to make if full width and height.
In terms of speed, keyboard shortcuts take the cake any day as they make snapping a 0.0 second affair.
- Meta+Left to snap to the left
- Meta+Right to snap to the right
- Meta+up to maximize
- Meta+down to un-maximize
Meta is Win or Alt, depending on your config.
On Plasma, Meta+Up snaps to the top, and Meta+Down to the bottom. Meta+PgUp is instead what's used for maximization, and so on.
Easily changed with System settings or with an app (ScrollReverser)
> SIM card
Unnecessary in 2023
> cables
True, but MagSafe exists, I never plug in my phone anymore
> file access
macOS and iOS both have access to files, this is outdated
> file formats
Not a real issue, macOS can handle plenty of formats
I think you are just an Apple hater. When’s the last time you used one of their devices? I used a thinkpad t420 running Debian for the last 7 years, and recently got a Mac… blows it out of the water in usability. It LITERALLY ‘just works’. I like Linux and still run an Ubuntu desktop, but I got to a point in life where I didn’t want to have to fiddle with my OS just to get things to work right. macOS is for people like that. I don’t feel like I’m being “treated like crap” .. lol where are you getting that from?
From a desktop Linux perspective, Apple is a bit like opposite world. The desktop environment itself is extremely barebones and inflexible, but proprietary app publishers are much more likely to target the platform.
macOS blows what I'm used to out of the water when it comes to the availability of apps (that I'm mostly not interested in, because they're proprietary, single platform, and/or cloud-based), but then the core operating system, from the filesystems to the desktop itself, feels basically extremely incomplete.
I use Linux for 20 years at this point, and it will be always my primary OS, yet I don't feel the need to modify macOS's behavior to behave like my KDE setup. Yes, I have magnet, and that's my only behavior modifying app I have, yet I use it only when I'm really in a rush and need to do something big in a short time (which generally needs me to connect to half a dozen remote machines and open a dozen terminals, no kidding). IOW, it's closed most of the time.
What macOS lacks is composability, and it's OK, because it's a GUI first OS. I use a couple of Automator actions, and that's fine for most of the time.
I tend to find myself at odds with macOS' design goals. Some of this is that some of Apple's values are directly opposed to mine, and some of it has to do with my poor vision. But macOS has never felt welcoming or inviting to me, so I've never really managed to maintain the kind of curiosity about it necessary for seeking to meet it 'on its own terms'.
This is why Mac apps have a long history of barfing out an irritating flotilla of windows all over the place. Mac OS turns the entire screen into the client area of ONE application, whereas other GUIs can treat the desktop as an infinite workspace.
The welcome move to single-window applications on the Mac has made the blunder of the single menu even more obvious, as users minimize an application and think they're resuming work on the previous one... only to find that the menu is still owned by the application they have dismissed. Absurd and dumb.
Also, having menus (or anything else really) at the edges of the screen make it easier to move to with a mouse. You can throw your mouse cursor toward the edge without worrying about the distance, because it will stop at the edge. This makes menu items easier to click on.
Menus' consistency has nothing to do with where they are positioned. You're talking about bad design. You can just as easily have dumb, non-standard affordances at the top of the screen... you see it on iOS all the time.
And the "slamming the cursor" argument is countered by having to move the cursor much farther, especially on large monitors with lots of real estate. Not to mention that vanishingly few users actually do this.
This is absolutely not the same thing.
The full screen feature on macOS is ok because it’s very well integrated with the 3 fingers gestures.
But the fact snapping requires to go to full screen mode completely sucks, it’s unintuitive and requires too many steps compared to just « drag the window to an edge ».
I agree with OP that Apple stubbornly refuses to implement QoL features for no good reasons:
- Snapping
- clipboard history
- proper alt tab between all the windows (yes I understand how cmd+tab and cmd+` work, yes I understand the rationale, but I still think it sucks compared to the more intuitive of Alt tab on Windows)
These are the 3 utilities I automatically install on every Mac I use
It does not; reread my comment: you're confusing tiling (no Option key) with snapping (Option key).
I wonder how many people actually know it exists, and among these people, how many use it at all.
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?
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.
They had Unity from 2010 to 2017, so it must have been a while.
> Also Ubuntu had ads for Amazon in its start menu.
Ubuntu isn't Linux. I've been a happy Fedora user for many years now. Much more sane desktop settings than Windows or Mac.
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.
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.
Where did you get this idea? It's definitely not the norm and MSFT supports an excellent tiling window system: https://learn.microsoft.com/en-us/windows/powertoys/fancyzon...
Even without that utility though, it's easy to snap windows to one side or another of a monitor - particularly useful for ultra widescreen monitors
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.
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.)
Without some kind of data in hand, it's anecdotal either way, so I figured I'd throw my hat in.
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.
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.
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.
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.
You absolutely do not need to resize and drag windows around manually to find the one you want!
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 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.
In what ways do you feel that GNOME is more limited than the macOS desktop?
Here’s just a few shortcomings compared to macOS pulled from memory and from playing with my GNOME install for a few minutes just now:
- No built in UI to remap modifier keys
- Disinclination towards menubars, with any functions that don’t fit on the toolbar or in the hamburger menu getting trimmed
- No ability to search menu items for an app-agnostic command palette
- No ability to assign/remap key shortcut for any menu item, including in third party apps
- No desktop icons without extension
- No per-virtual-desktop wallpapers
- Dash can’t be pinned to left or right edges
- Files and folders can’t be pinned to the Dash
- Overview can’t group windows by application, making it impossible to move all window of an app between desktops at once
- Minimize and zoom/maximize buttons are hidden without GNOME Tweaks
- All windows for an app can’t be closed, minimized, restored, or zoomed all at the same time
- No option in settings to change UI accent color
- Frequently accessed control center sections can’t be dragged out and made top-level items
- File manager obscures root filesystem and other partitions
- GNOME apps don’t allow user to customize toolbars unlike native Mac apps
If I really drilled there’d probably be enough to fill a blog post.
It's been some time since I used vanilla GNOME, so I don't know how much of what I recall about GNOME applies to the latest vanilla experience.
The main one of those I'd miss or reach for is menu bar searching. That's probably my favorite feature of macOS!
> No ability to assign/remap key shortcut for any menu item, including in third party apps
I suspect there's not a good way for GNOME to offer this, unfortunately. Menu bar implementations are multiple on Linux, not singular like on macOS.
> Minimize and zoom/maximize buttons are hidden without GNOME Tweaks
That is absolutely wild. All the time? Until mouseover?
Sorry for neglecting other items! They do sound potentially annoying, but don't stick out to me as much as the things I replied about.
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.
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.
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.
1: https://anders.unix.se/images/desktop_b_moolenaar.png https://anders.unix.se/2015/10/28/screenshots-from-developer...
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).
I need a bigger screen.
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 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.
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.
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.
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.
Casual users have moved to phones and tablets, like, 80% of them.
Lol? knowing how to install Steam doesn't ascend to a 'power user' status. And btw, 99% of games are running fullscreen.
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.
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.
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.
"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?
Strange argument.
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 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”.
Edit: only 1 13' monitor too
I have some perpetual habit to "clean" my desktop - I get annoyed if I have >15 tabs across 2 windows which easily happens.
> >5000 tabs among all of them
Not to be antagonistic but ... just why? There is no chance you are actively managing and keeping track of these? Is this because it doesnt matter if they are open or not? I am genuinely baffled and confused.
Then you start to work on a project. You have various relevant links open for that, which of course results in opening even more tabs that branch off from those. But then you get distracted and there's another group of Reddit or HN tabs. Oops, right, I was working on that project. A few more project tabs. Then a bunch of Reddit / HN tabs. Then you start a new side project. Etc.
Why not close those comment tabs? Because you're interested and want to see all the new comments! Or you got halfway through and walked away and opened a new tab when you got back. Or you think 'that'll sure come in handy when it's time to work on <some project>, I'll come back to this later for sure!'.
Now, rather than doing the sensible thing and going through all of the previously opened tabs when you're bored, you open a new Reddit / HN window.
(Possibly an attention disorder.)
macOS replacing the “Zoom” stoplight buttons with “Full Screen” as the default behavior still irks me. Why would I ever want something full screen other than a video or game?
Maximizing your window is similar to that. At the same time it doesn’t completely eliminate the window context and the ability to easily switch between applications like full screen does.
In Windows I tend to minimize stuff I'm not actively working on (but not always). In general while I also have a lot of "background" windows it feels a lot less fiddly than MacOS.
Personally I don't like how "minimizing" apps on MacOS puts them in the temporary section of the launcher, I'd rather they minimize back down to where the icon of the app normally lives. I would end up with a bunch of black squares on the launcher in some random order with a tiny icon of each telling me which app this actually is.
- https://hypercritical.co/front-and-center/
And one that gives him an application switcher that works the way he likes:
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.
I literally stopped using the spaces feature because of that!. The default animation got me dizzy all the time, but even with that one disabled via accessibility settings they keep a terribly slow fading animation.
It's absolutely ridiculous for a professional machine to impose these things on you.
Most people are not highly technical power users who get annoyed by the small delays, this is a bias I see a lot on HN.
I do agree that their accessibility options should allow for more customization of animations, though. I use ‘magnet’ for window control and it’s instant. Highly recommend. Just wish switching between desktops could be made instant too.
Yabai has many of these fixes that exists, even if you don't use the auto tiling features[1].
[1] https://github.com/koekeishiya/yabai/wiki/Disabling-System-I...
HN has a lot of hate for these animations but I don't think I've ever seen anyone bitching about them elsewhere.
Because MacOS (and iOS) are the only major OSes that don't let you disable them.
This is why I stopped complaining about macOS and just use Linux.
I still have a Linux Desktop that I boot up from time to time, but I've pretty much given up at this point. My time is more valuable than that.
Linux does have some issues (GNOME has some pretty noticeable UI issues) but overall I'm much happier with it than I ever was with macOS.
And by that you obviously mean you haven't booted it up in the past 15 years, judging from what your complaints are.
Apparently this is possible with yabai (https://github.com/koekeishiya/yabai), but it requires disabling system integrity protection which I am personally uncomfortable with.
Wholly agree about the space switching animation. At the very least, I'd have liked the focus to change when I start switching - not when the animation ends. This way at least I could start typing and pressing shortcuts without having to wait. Not perfect, but better.
defaults write -g NSWindowResizeTime -float 0.01
should fix that (disclaimer - haven’t tested this in a long time, may need to restart apps or whole os to see effect).In general, if something about macOS annoys you and there isn’t a preference setting to fix it, googling “defaults write com.apple <thing you dislike>” will often find a solution. Writing with `defaults write` lets you alter nearly any value in the OS, very few things are hardcoded. A word of advice if you start messing around with this stuff - you will generally want to follow up any `defaults write com.apple.foo` command with `killall Foo` to force restart that component, as writing directly with the defaults utility will not be reflected in real time, unlike what you are used to with changing things in System Preferences.
My display is 27" with resolution of 1280x720. I rarely use multiple windows.
Probably also has some constraints imposed upon it due to requiring that virtual desktops transition smoothly over Screen Sharing, where texture assets are being sent and buffered to a remote compositor.
Anyway, I'd trade a bit of pop-in for a faster computer if that was necessary. There's no excuse to not offer that choice even as a power user "defaults write" option.
Re-rendering to the same compositor target buffer (when you e.g. resize a window), and allocating new textures in (potentially) new formats under control of a new compositor target buffer, are different orders-of-magnitudes of work. Think about how much delay there is from the point you plug in an external display, to the point your windows finish "popping over" onto it and it becomes usable. Allocating a new virtual desktop and moving a window to become fullscreen on it, is doing 90% of that same work.
Why does each virtual desktop have its own compositor and own target buffer? Because each virtual desktop has its own active display mode it's operating under: its own display resolution, its own bitplane format [think RGB vs BGR displays], different memory allocation constraints depending on whether it's currently being mirrored / screen-shared or not, maybe allocated in the VRAM of a different GPU if it's being drawn on a monitor plugged into a discrete GPU's HDMI/DP socket, etc.
This "distinct target buffers with their own compositors" approach is also why you can't span windows across displays on macOS 10.9+. (Before that, macOS used a different approach, that allowed for single virtual desktops that span multiple monitors, but where this would use one big target buffer, formatted to the lowest-common denominator format acceptable to all display targets. So if you plugged in a shitty external display like a 720p projector, and "extended" your desktop to it, then the whole compositor target buffer would get reformatted, and so your internal display's resolution/color depth/refresh rate would decrease.)
> Anyway, I'd trade a bit of pop-in for a faster computer if that was necessary.
My point is that this wouldn't be the trade-off. Instead, you'd switch over to the new fullscreen view, half-rendered — and then it would very likely still take just as long to finish re-rendering and accept input as if there was no animation.
You can actually try this "experience" out for yourself: try having an external display connected; opening Mission Control; and then dragging the focused virtual desktop from your internal display, over to the external display (or vice-versa.) It takes about 3 seconds before all texture assets finish re-allocating in the new compositor target buffer's texture format and re-rendering; and because there's no animation to paper over this case, it just feels unresponsive, like the whole shell has stalled for 3 seconds.
If you think that Apple engineers can't optimize the compositor side work that needs to be done to maximize a regular window or switch between regular full screen windows to take less than one frame then you have a very poor opinion of their engineers that I do not share. And if you think it's not worth the effort to optimize a case that typically happens every couple of minutes while people use macOS then I have to disagree in the strongest possible terms.
• Virtual desktops each have their own compositor texture "namespace", so that everything on the virtual desktop can be reformatted to deal with the screen beginning/ending mirroring/sharing, with the desktop being moved to a display that has a different color-space, etc. The copy of textures to new ones owned by the new virtual desktop, allows the compositor to be able to assume that a given desktop exclusively owns all the textures assigned to render on it. (It's the same set of engineering trade-offs as with message-passing IPC. Here the "messages" are textures and the "processes" are virtual desktops.)
• The "optimization" you mentioned exists and I already mentioned it. It was the old behavior. Go into Settings > Desktop & Dock and uncheck "Displays have separate Spaces." Congratulations, now you're using a non-per-virtual-desktop-texture-domained compositor. Enjoy going back to a world where putting your computer to sleep with no display attached, plugging the display in, and then waking it up, makes the kernel panic! But, if you do as a sibling commentor said and turn the animation down to nothing, you will surely notice the performance increase of full-screening windows.
> simply allocating one new screen sized texture to hold the application contents, which can be done in much less than one frame
Yes, this is what the animation that plays does at the beginning of the animation, on the existing virtual desktop — it creates a new, screen-sized texture, and renders the window being "resized to fullscreen" onto it.
Meanwhile, in the background, textures are being message-passed to a new virtual desktop.
> And if you think it's not worth the effort to optimize a case that typically happens every couple of minutes while people use macOS then I have to disagree in the strongest possible terms.
I don't know why you're full-screening windows so often.
> maximizing
Oh, maybe this is your misapprehension? Full-screen ≠ maximize.
Maximizing a window in macOS is what you get by option-clicking the green caption button. macOS calls this "Zoom".
Until Yosemite, this is the one and only thing the "maximize button" on a window did; "full-screened" windows didn't exist as a separate concept. There were just Spaces, with (maybe Zoomed) windows on them.
I — and pretty much every other macOS user I know — regularly uses zoomed (or just resized to be mostly zoomed) windows, but very rarely uses full-screened windows.
For a lot of reasons, full-screen windows on macOS are really inconvenient. They hide the menu bar; they cause some apps to make a ton of their UI elements inaccessible; they make "overlay" apps (e.g. iTerm's "quick access" theme) inaccessible; they make the Dock require a double-bump to access; they make things you open from the Dock open randomly on some other virtual desktop; they make it impossible to drag-and-drop things onto the full-screened window from another window; they make it impossible to grab the window itself with the mouse to move it to another display (instead requiring you to move the virtual desktop the window occupies to the other display); they don't respect application window grouping in Mission Control, so you inevitably "lose track of" the one window you decided to fullscreen; etc. (Also, until more recent macOS versions, full-screened windows couldn't even display modal dialogs or palette windows.) Basically, they take everything that makes macOS more useful than iPadOS and toss it in the trash.
Using windows zoomed rather than full-screened, meanwhile, has none of these problems. (If you want a zoomed window on a separate display, then make a new virtual desktop, move the window there, and then zoom it. I think Magnet has a hotkey for this.)
https://patents.justia.com/patent/6661436
https://discussions.apple.com/thread/250201392
https://www.omgubuntu.co.uk/2021/07/gnome-shell-quarter-tili...
But o god I found more cancer: https://patents.google.com/patent/US20110099512
Splitting one monitor into two virtual monitors is patented. Fuck you LG.
“Patent No. 207,559, issued August 27, 1878 to Christopher Sholes.”
But Linux (at least Gnome) doesn't support it so it doesn't violate the patent. You can send windows to half the screen but you can't conveniently move the split point.
But MacOS doesn't even let you do that. I always end up installing Spectacle or Rectangle or whatever it is and using keyboard shortcuts.
This is incorrect.
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
For number 1 there is: https://funk-isoft.com/display-maid.html or https://rectangleapp.com/pro
For number 2 there is: https://manytricks.com/menuwhere/
I think both should in some form be supported natively though. My reasoning for the second is that many apps are now using command palette search overlays when technically 'command + shift + ?' or even somewhat 'Move focus to menu bar' system option already does that. But because of large screens it should just pop over the focused window and unify this experience across all apps.
Note I'm not claiming the person who posted this Ask HN is trying to build points in order to sell influence. But it's a thing that happens all across the internet.
My HN karma trounces that of the topic poster, and I can assure you no one considers me to be influential on this site.
By shocked I mean that I literally don't understand how Apple has produced something so terrible, when their hardware (and most of rest of the software) is so good.
Things like Amethyst and Yabai are really slow, especially when you compare it against auto tiling wms in linux. I don't even want auto tiling, I just want a more performant way to perform window movements and to query the state of the space so you can swap windows around or move directionally between windows on the screen.
When the OS starts creating new shortcuts that cannot be altered, it becomes a headache. I'd point out the majority of Windows' winkey shortcuts, like one to activate the gaming menu or to bug you about microsoft office as examples.
No operating system has a complete, sane stack when it comes to dealing with window management, but I do appreciate that the choice for window management apps in MacOS is extensive and diverse.
Aside from the aforementioned window-management gaffes, here's what I think is the most ridiculous design defect of the iPhone, which I reported first as an engineer there and repeatedly as an independent dev: It does not provide audible notifications of MISSED CALLS. I mean... WTF? A 1990s StarTAC (and probably most other phones) provided this obvious feature. So did 1980s answering machines. My 1992 microwave beeps if I forget to take the food out. But Apple's handheld Unix computer-phone remains silent if you happen to miss a call while you're in the shower, or down the hall doing laundry, or watching a noisy movie. If my parents have some kind of emergency, they're going to CALL ME. But Apple doesn't think that's important.
That was the first bug I filed against the iPhone, probably on the day we were given them (the day of release). FIFTEEN YEARS LATER, it's still not fixed. But what did Apple petulantly do instead? Add repeating notifications to TEXTS... but leave that option off of the essentially identical settings screen for the Phone app.
That is Apple refusing to do something, to the detriment of all customers. I was not the only person to file this bug; I checked Radar (Apple's bug-tracking system). So it's not as if they haven't heard the complaint. You can also find plenty of references to it in a general Web search.
When Apple finally allowed developers to write real applications, I expected that problem to be addressed quickly (by me or someone else). But NOPE; developers can't access telephony functions.
You complaining doesn't make something a "bug".
Every person thinks that their missing feature is the most important feature ever and they’re mad Apple hasn’t implemented it yet. You have even resorted to incorrectly labelling a nonexistent feature as a bug. Imagine what iOS would be like if Apple actually implemented the billions of niche edge-case features like this. It would be an absolute disaster.
I’m glad that Apple sticks to their guns instead of bending to loud niche users.
Do you think this is the '50s, where someone tells the operator "Keep trying!"
Not to mention, this is an OPTION, one that Apple already added for TEXTS. Why is it OK for texts, but not phone calls? Are you similarly outraged over the option for texts?
Or maybe they just appear out of thin air, created by pixie dust.
I remember a bug I wrote 15? years ago for gtk/gnome file manager. The left pane tree widget doesn’t support the arrow keys we used extensively in WinXP. Also doesn’t support the full context menu. Why? No reason, some mid-level person decided the left pane should be gimped.
Gnome is the Apple of Linux world. A lot of Linux people hate gnome.
Again, as an OPTION. It's incredible that people go apeshit when you suggest this optional feature that everyone accepted as standard for years. You can see it right here in this thread of "tech" people.
This is why design and usability are going backward.
Nobody said you'd be FORCED to endure the horrible nightmare of being informed of missed calls.
What world do you live in?
I've owned personally, and used macs for work since around 2009. I've never installed any third party window-snapping or management systems, and I don't consider it a big deal.
I do use window snapping on Win10/11 periodically, but TBH I find that the beefed up snapping in Win11 is more annoying than it is useful, often snapping things to quarters of the screen when I just wanted to move a window.
Likewise, I've seen non-programmer users on win10 hit the window snapping by accident and be confused and put off by it.
Would I like it if Apple were to build a power-user window snapping feature into macOS? Yes, I would. Am I upset at them for not including it? Certainly not. Were I a product manager for macOS I would find it hard to justify the investment, given all the other things they can and do work on.
They spent countless hours and dollars into making stage manager but don't implement a simple yet powerful feature.
The wrong question is why would someone want this. The right question is why hasn't Apple addressed it.
All my friends with non-tech jobs all seem to use just one app at the time and use macos fullscreen apps and switch between using the four finger sideways swipe.
No, his point is a very specific one - how do the employees of apple themselves manage their own work ?
One answer is that they have alternative tooling or special features enabled or some other inside track to making (for instance) triple and quad monitor setups work in any sane way whatsoever.
I hope this is the answer.
Because the other answer is:
They are not power users by any definition. The reason they aren't decrying multi monitor support is because they don't use multiple monitors. The reason they don't fix window management is because they really are infantile GUI mousey-mouse for everything users.
The reason 'X' doesn't work is because they never need X.
I hope that's not the answer.
The best possible outcome is you get an ex-Apple engineer who may have some background as to the thought process.
It integrates in the way I would expect the native feature to work: hover the green button for a snapping palette.
I'm not saying moom doesn't have those, I just haven't used it and Rectangle serves my purposes perfectly well.
To each their own, of course. Just trading anectodes. :)
I’d much rather have this functionality built in than have a dozen new emojis every year.
It's not that this is causing people to lose sleep. The issue is that it's an easy, tangible fix which would benefit a lot of power users. Also magnet costs money and window snapping in Win10/11 is free.
You can use Cap Locks as a "Hyper" key, equal to (cmd+opt+ctrl <+shift>) to launch or switch to spaces/apps with esc+{letter} so you can avoid the cmd+tab abomination.
Essential software with no bloat or stupid business practices I've encountered yet.
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.
- Quick hide-all-windows to copy something from your desktop to your clipboard, then bring everything back
- Alt-tab, especially when it comes to apps with multiple windows, and windows in different states, such as minimized
- A modern/fully-featured default web browser without a locked down extension ecosystem. - A start menu for seeing all your applications
- A taskbar with application grouping
- File Explorer is much more full-featured than Finder
- Better settings, especially when it comes to relevant settings being in one place
- The concept of uninstalling an application vs just deleting the application
- In some cases, an actual function key row
That said, I've used Windows for almost 15 years now, and I think many of its choices are second nature to me. Many of my friends are masters of switching windows with Expose, which I absolutely despise. And I still use Windows for work, but use Mac in personal usage. I usually end up frustrated at things that work on Windows but don't on MacOS, but rarely vice versa.
Alt tab: press cmd-tab to cycle applications, then cmd-` to cycle windows of that application. This typically has better number-of-keypress to get the window you want compared to Windows alt-tab which requires iterating over all windows in the worst case.
Browser: Safari is fits your criteria
Start menu to see all apps: this is called “Launchpad”, and is in the Dock by default for new macOS users, but can be removed.
Uninstall vs delete: apps installed from the Mac App Store can be uninstalled from launchpad. Otherwise, isn’t “apps are files, drag to install, cmd-delete or drag to trash to uninstall” objectively simpler than using a wizard to install, and digging around in a control panel to uninstall?
Function key row: you can swap the behavior of the fn row so that the keys send Fn1-Fn12 by default, and needs the fn key held down to send commands like “volume up”.
Settings layout: this one is opinion; I’ve always found Windows settings horribly organized. From 2001-2007, there’s no contest that System Preferences is better organized than Windows XP’s control panel. From 2007-2015, the Vista-era control panel split things awkwardly between the “new style” Vista panels and old-style windows XP/2000/98 panels. Since Windows 10 things are on more even footing in my view, although some details in macOS Network and Displays are annoyingly hidden in some versions.
Except that you can select a window with cmd-tab and then have absolutely nothing happen as a result. It will show windows that it does not let you muster on screen, except with a secret key combination it does not tell you about. The existence of this secret method of actually getting the application to do what you expect it to in no way excuses the default behavior of not doing what it should do.
https://apple.stackexchange.com/questions/112350/cmdtab-does...
All applications are open in this case. MacOS just doesn't display anything in certain quite common cases, such as one of its windows being hidden or minimized. There is a mechanism to display these windows (the obscure, well-kept secret does work) but Apple chose not to apply it.
(“Disable” meaning set it to cmd-opt-shift-ctl-M for all apps.)
But still, switching to the app does show all the non-minimized windows. And minimizing a window is explicitly asking for it to be hidden. So it would be wrong to show it every time you switch back to the application.
In the case where you need to switch to a window that you haven't been using for a while, perhaps. But switching back and forth on the other hand, is infuriating because the z-order is polluted. And I also find it incredibly frustrating that all the other windows are brought to the top just because they happen to share a process.
You can also swipe up with three fingers to get a view of all the windows on your current desktop (and also select other Spaces). Normally I just use Cmd-Tab, but if your window is very visible this can be faster. I keep my source control app's window hidden behind Xcode, and then 3-swipe-up to click on it when I need to commit something.
Alt+Tab: Using Ctrl+` tab switch between windows of an application is annoying second layer to me. I'm going to have to live with it, because the half-dozen or so third-party applications that I've tried to recreate Windows behavior either fail, work differently than I want, or have been abandoned.
Browser: I was specifically saying not this. I really really try to like Safari, but every time I start trying to use it as my primary browser, I start running in to annoying roadblocks that insist I work in the "Apple way".
Launch Pad: I forgot about this, I removed it from the dock. Doesn't open as easily as the start menu, with it's own dedicated button, and organizing it is terrible. Just like Launchpad on iOS. Start Menu Tiles and the ability to mix files/apps is way more powerful and behaves the way I expect. I do really like Raycast/Alfred, but I miss the comfort of an organized start menu.
Uninstall - I do think that this is fine, but an uninstall wizard is sometimes helpful. For Backup settings mostly, but I guess there really should just be a better way to do that.
Function Key Row - I do have this swapped to function keys by default, but what I was referring to was the touchbar macbook models. Terrible design choice that was thrust upon users.
Settings: Fair points on the different styles, but that doesn't bother me much. Like I said, I've been Windows for a really long time, so the familiarity outweighs the inconsistency. System Preferences was okay, but had options scattered where they shouldn't be. And System Settings now is definitely worse.
Sure, it may save you some keypresses but it introduce the cognitive overhead of - do I need to switch to the window of current app or other app and then decide which key combination to press.
Uninstalling is a workaround for the failure of windows to actually contain an apps data. The way macos handles it is much better.
The fact that the app might leave some documents and configs behind seems inconsequential. If you delete Word, you wouldn't want it to wipe out your documents with it for example. The fact that some configs remain in system dirs doesn't really matter when they take up no space.
macOS has its demons but Windows just plain is confusing.
I don't currently use multiple monitors, but I do use virtual desktops, and... that's exactly how I would expect virtual desktops to behave? If it only changed a single monitor, does that mean you'd have to go to each monitor to change to a different virtual desktop? Do you see virtual desktop configurations specific to each screen, or any screen? What happens if your screens are different resolutions. I think that Windows again has the superior implementation here.
Aero shake was pretty terrible, no arguments here.
The window history thing, Timeline, is something that I have disabed, but honestly sounds like an even better version of Recent Files, which is something many people use and might like something more full featured.
Presently the default is for each display to have their own collection of spaces. You can have one display with a single space and another one with 10, or 50 on each. They behave independently and are switched independently.
There is a toggle to restore the old behaviour but I find the new one far superior.
I don't understand the question about different resolutions. Why would they be a concern?
I regularly use my MacBook's display in conjunction with a 1600p ultrawide external display. Different resolutions are not a problem, and never have been.
Different strokes for different folks. In my setup yes, each of the three monitors has their own set of virtual desktops. When working on a project for example, I might have my center display configured with the IDE, and a second monitor configured with one virtual desktop per group of related reference materials. So I can switch between API docs, language docs, database query and reference etc on one monitor, while keeping the IDE front and center. The other monitor might contain a space with "office" apps (slack, email etc) and then another with a set of tiled terminal windows for using CLI utilities. If I switch that screen to look at emails, I don't need or want the other screens to change to something else.
Multi-finger gestures were introduced with the iPhone in 2007, and eventually made their way onto laptops. Not only is MacOS 10 / 11 not based on multi-finger gestures, you can only use gestures if you are using a laptop or an Apple touchpad. The default mode of using MacOS is mouse based.
Well, every single one of their input devices supports the gestures. Built-in trackpads, Magic Trackpad, Magic Mouse. I’m not saying you’re wrong, but for me (Mac user of 9 years) macOS is decidedly gesture based, and I consider them one of its biggest strengths.
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.
Would you please kindly provide a reference to a guide explaining the right way to operate macOS windows, preferably with some explanation of the concepts behind it. and the advantages it offers over the established practices known from elsewhere?
E.g. vi navigation is pretty different from Notepad's, but it's relatively easy to make a case when it shows certain advantages. What are the superpowers of the standard macOS WM?
Off the top of my head: https://arstechnica.com/gadgets/2003/04/finder/amp/
The after show of this podcast: https://atp.fm/96
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.
I just don't see why if you'd thought it out, and that's (either of them) the you wanted people to do it, why you'd have both options.
And then there's the weird 'close actually closes the window, not the app' (even though for some large percentage of apps the one window is all there ever would be).
Their full-screen-window-gets-its-own-desktop-space was added later.
Overlapping and freely resizable windows is the Mac paradigm. In my estimation they don’t add snapping mostly due to pride.
Maximized windows is an intruder. Something that was big on Windows but never really a thing (and just not possible at all) on the Mac at all until a couple of years ago. The implementation of fullscreen mode is clunky and slow.
Given that Apple has been throwing different window management paradigms at the Mac (Exposé later retitled Mission Control which was the original new OS X approach, Spaces in different implementations, sticky windows resizing, Stage Manager, full screen mode, full screen mode with split view) it is truly weird that this grab bag does not include snapping windows. And, I still think that is just down to hurt pride and ego.
MS did it because.. I think Windows used to only support 1 window per program or something. That's why old versions of Office basically go full screen and each document you open is another 'child window' of the main office window. Same was true for stuff like America Online lol.
That pissed off a lot of users who expected MacOS to act like Windows. So Apple changed it.
Then along came the iPad and Apple went full hog on "1 task at a time" UIs. So full hog that Microsoft had to backstep and do the same with Windows 8 lol.
I don't know what Apple is doing anymore lol.
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 have tried mac os but they either want you to randomly place windows here and there but that feels "weird".
fullscreen has trouble going in and out and randomly placing windows feels cheating with the work you are doing. mac os doesn;t have the middle ground
While I’m not the person you asked, I would prefer if there was no window snapping at all. I wrote my own code for window management with keyboard shortcuts on macOS and dislike that it tries to be smart when I move windows with the mouse.
On the mac, I use a freeware thingy (Rectangle, linked elsewhere), and I've assigned three shortcuts, and that's enough for me.
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!
I might do it more often if I had separate OS windows for code editing. But I use VSCode (and Emacs before that) with 2 or 3 side-by-side panels. I drag those panes wider and narrower frequently.
I've defined Cmd-1, Cmd-2, etc. shortcuts to switch spaces like on Linux desktops, which is a lot faster the 3-finger swiping macOS comes with.
and I do change placements/sizes of windows constantly - accordingly to the task
I can constantly see the thumbnail groupings of apps that I can switch to along the left hand side of the screen. I’ve used other modes (like multiple desktops) but would often forget what spaces I had created, and ended up re-creating them without realising
You're lucky. I didn't even realise this is supposed to happen. Every day I start by moving everything to the correct screen and correct location. It's never remembered and each time windows move to a completely random spot. Things are even worse if I work from a different location for a bit. (Some windows are pseudo-minimised and I have to click the icon a few times to show them again)
It's not even random/occasional. I put slack on the right third of the right display every day. It's never there after sleep or cable reconnection.
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.
Beyond that, Rectangle Pro (paid, closed source) is where I've put a ton more features. You can find Rectangle & Rectangle Pro at https://rectangleapp.com
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.”
Uhh... not on my Mac? Hitting Return is rename, is that what you meant?
This hasn't been true for over a decade. The Magic Mouse supports right-click (and the Magic Trackpad supports two-finger or bottom-right corner to right-click). Not sure if it's the default or not though.
Simpler explanation: Mac OS’s first release preceded Windows so they had to pick a side for themselves when first designing the system. See https://www.versionmuseum.com/history-of/classic-mac-os - the square on the left side of the front-most window’s title bar is the close button.
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.
Rectangle (rectangleapp.com) is a good choice that also does snapping. I'm happy with Raycast (raycast.com), which offers window management with an extension (https://www.raycast.com/extensions/window-management).
Apple doesn’t do it because it’s only a small percentage of users who even know what it is to want it, and they’re already well-served by third party tools. Look at how long it took for widgets to come to iOS. Apple isn’t usually the first mover when it comes to software stuff like this, they like to sit back and let other devs solve problems then see how it plays in the market first before launching a better-integrated version themselves (sometimes in a way that only they can do because again private APIs) with only the basic features included.
If you're compiling the code yourself you can do this no problem. Compile it and move the executable to somewhere in your PATH. No scary warnings.
I see posts like this all the time. It's just not true.
Leftpad philosophy sucks, having a functional batteries included OS is a good thing.
Alas, OpenDoc was a product of “interregnum” Apple, a font of innovation but had no singular vision (OpenDoc was one of many visions Apple promoted in the mid-1990s as the future of Mac development) and a track record of failed projects (Pink/Taligent then Copland). When Steve Jobs returned in 1997, he brought and enforced a singular vision for the Mac, one that revolved around NeXT technology. OpenDoc was killed under these circumstances:
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
Though, in fact, it doesn’t really affect the menu bar at all. Rather, it determines where your desktop icons will live; and it is probably used to determine the default desktop the dock is on when you do a cold boot - must test that.
Like you imply, I’d very much prefer it if you could drag the dock to a specific display and have an option to prevent the moving behaviour you mention. Would also be nice to be able to drag some icons to one of the Arrange Displays screens to indicate where you want your icons to live.
Expand "Snap windows" (down arrow on right side)
Turn off "When I drag a window, let me snap it without dragging it all the way to the screen edge" if you're finding it to be too sensitive.
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.
I definitely think that window snapping, and other general abstract platform-level controls, should be in your first group.
"oh, uh. Yeah."
:)
File-Edit-*-Windows-Help
menu down onto the top of an app's window? Even if it only worked when that window had focus would be good enough for me. I hate going to the top of the screen, only to discover the wrong app has focusare 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?
I would like to organize my computer's desktop the way I would organize physical stuff on my desk, just freeform style.
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.
Windows 11 maximized the annoying desire to do things for me by bringing up this stupid rectangle at the top of my screen any time I move a window, trying to get me to snap it to a side of the screen...
It's like MS hired someone who uses those obnoxious Linux tiling WMs that don't let you do anything except tiling, and that person is trying to force tiling on everyone.
Thing is, damnit, I like overlapping windows!
This can be turned off. Go to Settings (Win+I).. click through System then Multitasking.
Expand the "Snap windows" dropdown (arrow at right side). The option you want to turn off is "Show snap layouts when I drag a window to the top of my screen". I'm about to turn it off as well. I rarely use it, now that I think of it- and it's too touchy.
While you're there, you can turn off the title bar shake (I have that turned off as well).
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 rectangleBut they weirdest thing is that the buttons are colored instead of having meaningful icons.
Red means stop, yellow means slow/yield, green means go, which in the context of window management doesn't make sense, but if you think about it differently, a good 40% of it makes sense. Red means stop existing, yellow means yield to other windows, and green means... go big?
It 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.