Now Reading
Ask HN: Why does Apple refuse so as to add window snapping to macOS?

Ask HN: Why does Apple refuse so as to add window snapping to macOS?

2023-06-17 05:44:36

For the same reason they refuse to implement displayer multistream. And a gazillion other industry standards: because they can, and they feel that their way is the right way.

It may be basic, but what about the double clicking on sides of windows to make it expand, and double clicking on edges? Does does that not qualify as snapping?

What about that interminable animation every time you fullscreen a window or switch between fullscreen windows? It should be at least twice as fast and there’s not even any way to hack it to speed it up. You just have to live with it. (“reduce motion” changes it to a crossfade but doesn’t make it faster)

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.

    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.

I still have to meet anybody that is not at a minimum annoyed by the macos animations.

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.

I’m absolutely fine with them. I use Spaces all the time – mostly by hitting f3 and clicking on the screen thumbnail at the top, rather than control-arrowing or control-number.

HN has a lot of hate for these animations but I don’t think I’ve ever seen anyone bitching about them elsewhere.

I like the menu bar, and don’t mind the Dock.

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.

My go to example to explain the One True Mac Way of Window management is the “The many windows of John Siracusa” podcast from ATP a few years ago.

The relevant discussion starts at 1:33:00

https://atp.fm/episodes/96

Siracusa, who grew up as a (traditional) Mac person, explains his tiling and overlapping habits to Arment and Liss, who grew up as Microsoft Home windows customers and later switched, and so they gasp in utter horror, shock and awe.

For instance Siracusa explains that he at present has a dozen terminal home windows open, and likewise 19 overlapping Safari home windows, regular for him, in BBEdit he frequently hits 20-40; they ask him if he doesn’t find out about tabs and he replies “Oh, I really like tabs! In fact each Window has many tabs!”. How would he handle/arrange lots of of tabs in a number of purposes with a snapping tiling supervisor? He can’t. It’s enjoyable from there. Like, he jokes after a piece week his desktop has “sedimentary layers”.

Mac user since 1987, Lisa user before.

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

Rectangle integrates the way I expect window snapping to work: with easy and sensible keyboard shortcuts. They keys are much easier to aim than the tiny green circle on the corner.

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. 🙂

Thank you! I used to have a solution but after getting a new Mac I could never remember what it was called (a problem when an app just works and needs no interaction. You never need to know what it’s called after you first install it!)

No, but this is a question to Apple, can anyone even answer it? If they were an Apple employee, and it was upcoming in a new release they couldn’t talk about it?

The best possible outcome is you get an ex-Apple engineer who may have some background as to the thought process.

From my relatively short experience but ongoing with Mac, MacOS lacks a lot of features that Windows has. It has many inferior options that people just accept. Some people find third party software or modifying plists to bend the operating system to their will.

As much as I hate many many many design choices in Apple’s ecosystems, I adjust where I can and move on.

Some of the Windows choices are horrendous. Alt-tab to switch apps actually switches between browser tabs in Edge. It’s really confusing. There’s a litany of other problems too like virtual desktops move all screens instead of just the screen with the cursor, so it’s unusable. There’s also a case where certain actions with the mouse cause all the windows to vanish. I mean, what was that. Then there’s that window history thing which is baffling to use.

macOS has its demons but Windows just plain is confusing.

Alt-tab to switch between browser tabs in Edge is new, a setting that you can turn off, and in some cases, it’s actually very useful, since you can limit the number of tabs. It lets me treat recent tabs the same way as I would treat recent applications, which many websites effectively are. But anyways, that choice is made available to you.

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.

The virtual desktop implementation in macOS is called Spaces. The first time it appeared in the OS, it would always span all screens, so when switching they would all switch together.

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.

I want all these turned off by default and not need to stumble through trying to figure out how to disable them. Windows now feels like using Android where you need to google first to figure out how to modify something. In terms of virtual desktops, having independent control per monitor is so elementary that it makes the feature pretty useless otherwise.

It’s just a far more opinionated OS. Always “my way or the highway”. MacOS doesnt have a good window manager because it was designed for every app to be Fullscreen and then use three or four finger scroll to switch apps. The designers really want you to use their preferred way of managing windows so they make the traditional method suck.

– Peek at desktop

– 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.

Desktop peek: Part of “Mission Control”: spread thumb and 3 fingers, or press Fn+F11.

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.

> 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.

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.

I don’t understand. I wouldn’t consider snapping a first class feature like closing, maximizing, and minimizing.

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.

I’m agreeing but it’s because I find features like window snapping, auto-reveal desktop, and AERO SHAKE (where all the windows except the one you’re shaking get minimized) REALLY FUCKING ANNOYING.

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!

I think this comes down to Apple’s envisaged window management paradigm being centered around full-screen windows.

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.

This is such a weird ahistorical view.

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.

Why then the two ‘full-ish screen’ systems? There’s ‘spaces’ as you say, and also the traffic light button that makes it ‘maximised’ I suppose.

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).

Those are intended as shortcuts for creative apps where you typically need the entire screen real estate. There was precedent for that going back to pre-X macOS, but spaces and full screen windows are a consistent approach at switching contexts in creative apps.

The reality is that they had the green maximize buttons originally (although the exact functionality has changed a bit), then tacked on the full screen experience later. It’s not the result of some unified vision, although in practice is works fine IMO.

The green button was originally “zoom” which, to Apple, meant “adjust this window to its content, or revert to the previous size.” Some apps implemented zoom as maximize, but that was not The Apple Way®.

Their full-screen-window-gets-its-own-desktop-space was added later.

Like everything Apple, it has an opinion. You either like the opinion or you don’t… I feel that MacOS’s UI paradigm revolves around extra large monitors and showing your screen as a sort of desk. A lot of wasted/empty space where you arrange things freely, as opposed to Windows/Linux which emphasize efficiency in using the screen real estate.

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!

Not quite answering your question directly, but I think it’s important for platform owners to leave gaps for the developer ecosystem. This may be one that they have purposely left to the app market.

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 don’t think leaving gaps for third-party developers at the system level is really necessary, however, in order to not inundate users with configuration options, platform choose their level of user choice and configuration. There is some room for third-party developers, but when more is done by the system, users have to do less to get features and performance without opening up risk vectors. In some environments, you wouldn’t even be able to install third-party software.

I definitely think that window snapping, and other general abstract platform-level controls, should be in your first group.

I honestly think it provides perverse incentives, especially in the Apple ecosystem, for Apple to leave their platforms barebones and apps simple. Instead of pushing their platforms and apps to provide the absolute best experience, they can spend less money on R&D and rely on third-party software, while in many cases taking a 30% cut. They’ve effectively outsourced and crowdsourced the R&D, while leaving the option to sherlock any feature they choose to after it’s been proven successful.

There’s no way I believe this is the real reason. The whole history of MS/apple/facebook and successful businesses in general is allowing others to experiment to create add-ons / apps then creating your own integrated version to capture the value. i.e. let them pay the cost of experiementation and then copy it. See MS office, MS internet explorer, MS games, MS teams, Apple sherlock/watson, Facebook UI,……

I don’t miss it. I carefully dragged each window to align just right one time, and never had to redo it since. It persists across reboots, and remembers placements separately for the two monitor arrangements I use (laptop, laptop + big monitor) so I only had to do the fiddly work once.

> It persists across reboots, and remembers placements separately for the two monitor arrangements

See Also

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.

A few times, I guess.

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.

For me personally it’s not a requirement the snappy window.. Apple is a small walled garden. They don’t have wide screens so most of the time one app on the screen is enough.
I have an old 27′ iMac and it wasn’t enough screen space for me to put xcode, terminal and browser next to each other.
So the most used mode was split screen mode with xcode and a simulator. But the “split full screen” mode is much better and professional than windows’ snappy window feature.

I’ve been using Stage Manager on macOS for this. I have groups of apps, each one in a separate “stage” that I switch between to work on different things. Out of all the desktop paradigms I’ve tried, this one is working the best for me

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

OSX / MacOS has always felt frustrating that way. There isn’t appreciation for making good use of desktop space. It favours littering windows of various sizes everywhere, and the Dock has always wanted to waste two rectangles of desktop on either side.

I think the Apple Vision Pro is a good example of why snapping makes no sense.

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.

We’re talking about the desktop OS, not Apple Vision Pro, which isn’t even out yet. Snapping makes lots of sense for a 2d desktop OS.

i use a linux machine all day (kde neon). like 15 hours a day. i use “maximize” on any program i work with. not fullscreen but maximize so i have access to the taskbar in the bottom without having to go out of full screen. i “sometimes” do snapped windows or quarters but i find it too much information overload and the programs i work with often just dont like in half the screen. anyway, the problem is,

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

I think with macOS’s design of the dock (resizable, unlike on Windows where the task bar always takes up the whole monitor width,) having one or more windows “full screen” on your desktop feels wrong. There is always some some space left unoccupied to the side of the dock.

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.

It’s probably like how their Health app sucks to use directly: they figure people will solve it with apps, and people have done that. There are competing solutions available that are all pretty good.

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.

Possibly patents. As an example that may or may not be relevant, Google surfaced https://patents.google.com/patent/US10592080B2/en for me. It’s from “Microsoft Know-how Licensing LLC” and says

“This doc describes methods and apparatuses enabling assisted presentation of utility home windows in a multi-application atmosphere. The multi-application atmosphere described herein presents a number of utility home windows, which could be sized, positioned, or layered to supply an optimized structure. In some embodiments, these methods and apparatuses allow a dimension or place of an utility window to be decided based mostly on an fringe of one other utility window.”

Me too, but that’s also because Windows’ version is … weird. I drag a window up, a pop up appears showing grids where I can put my window (nice), I drop it there, and suddenly another window appears. That doesn’t fit the “snap window” flow.

On the mac, I use a freeware thingy (Rectangle, linked elsewhere), and I’ve assigned three shortcuts, and that’s enough for me.

I’ve honestly never cared enough about it, I am perfectly fine with my windows haphazardly thrown around. But I can understand that some people like it and wouldn’t really care if it was added. But I certainly won’t be the one to request it.

Same. I have Rectangle and others installed previously and very rarely use them. Double-clicking corners to expand in that direction only is good enough for me and wish Windows would do that. My layouts intentionally overlap windows with some horizontal/vertical staggering and window managers don’t have shortcuts for that.

Windows also struggles with moving windows between a 4K laptop and a 1080p display. The window chugs to reshape into the display resolution but the most bizarre is moving a window to 1080p then clicking maximize but it just to the 4K display in max resolution. I mean WTF is that? How the heck do you easily move the window between different resolutions with it doing the “right” thing, not the stupid thing?

Productivity-wise, Stage Manager is a step in the right direction in my opinion. I don’t think that the macOS desktop environment needs a snapping/tiling window manager. Conceptually however, the best third-party window manager is spoonfish. But Rectangle suffices for certain tasks.

https://github.com/jcs/spoonfish

It’s shocking that you can’t tell MacOS which monitor to keep the app tray on (or to simply show it on all monitors), and that it constantly moves!

That’s for the menu bar. I am talking about the dock. It goes to whichever screen you are on as soon as your cursor is at the bottom. So when you have a large screen up top and a smaller laptop below, as you move the mouse from big down to small, you often hit the “bottom” of the big and the dock reverts to the top screen. You cannot make it stay on one screen or show on both.

I think Stage Manager shows their hand—that they think users should manage this with the mouse, with no window-snapping.

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.

ever since lion began the ipadification of macos, apple’s Happy Path™ has been native full screen (even though it’s an objective downgrade from the scuffed fullscreen mac apps of yore, since you have to sit through a swipe animation every time you cmd-tab)

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

There’s a way to snap the window to one side or the other if you long press one of the resize buttons at the top. I’m a HS teacher and I often have my kids put two windows side by side. On the school-issued devices it’s trivially simple, but it’s honestly not that bad on a Mac. Just really unintuitive like everything else they do.

They has enough with the groundbreaking announcement on wwdc of widgets in the desktop and Chrome… Sorry, “Web apps”.

Maybe in 2025

I’ve been happily using yabai for years – I even wrote some custom functions in hammerspoon to send windows to new spaces, move focus, and swap windows around n/s/e/w with key-bindings. Can’t imagine life without it :shrug:

It might be patented. You have to understand that a GUI design can only proceed with blessing from the legal dept in a company with assets that can be seized.

Hold down the option key. Hover your mouse pointer over the green zoom button in the top-left corner of the window. A “move window to the left/right side of the screen” option appears.

I assume because there are several great tools for handling this so it’s not really a priority.

If and when they do add one we can look forward to the many articles about “sherlocking” though so that’ll be fun.

Source Link

What's Your Reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0
View Comments (0)

Leave a Reply

Your email address will not be published.

2022 Blinking Robots.
WordPress by Doejo

Scroll To Top