Either you're using Docker for Mac which itself is slow on IO mostly due to the macos-linux file share syncing every single fseventsd<->inotify or you end up running intel images on aarch64, which uses non-virtualizing qemu to emulate the foreign CPU (see github.com/tonistigii/binfmt)
I'm using Docker in a Fusion instance, sharing /Users through vmhgfs (which in my tests performs better than DfM shares) and it's plenty fast as long as I stick to native images (intel on intel, aarch64 on arm64) and don't outrageously reach out to the shared dirs (notably DfM shares /tmp by default which is ridiculous)
Container tech on Darwin would bring little in most cases since it would containerize a darwin userland, which, while cool, is probably not what most people want. There's no shortcut from running a Linux kernel in a VM to run a Linux userland on Darwin.
If you haven't tried the new VirtioFS accelerated directory sharing in Docker for Mac, it makes a _huge_ difference to I/O performance of mounted volumes.
Nonetheless, I salute the years-long effort from the Docker team on that one.
Edit: the static blog generator I wrote [1] takes 11 seconds inside a Ubuntu virtual machine with the directory shared with MacOS on an Mac mini late 2014. Docker, on the same machine, takes 1m13 seconds using gRPC FUSE for file sharing. 1866 HTML files are being generated.
One of the reasons why I almost never use the full screen feature. You can click on the full screen button on the too left-hand corner of each window whilst holding Option, I think that’s the closest you can do out-of-the box. You can assign a keyboard shortcut for this very easily (seriously, the way we can define keyboard shortcuts for almost anything and have them work in almost any app is amazing; nothing comes even close on the Linux side).
Otherwise, you can use something like Magnet or Rectangle, which enable exactly what you want.
Note that with any non-fullscreen window I can continue to see live updates to the window in the mission control view. So I could for example continue to watch a video (albeit smaller) while watching chat messages arrive in another window as my friend sends them. But with a macOS fullscreen window I can't do that. If I open mission control then I can only see the fullscreen window (because it's the only window in the workspace), and if I switch to another workspace to the see the contents of those windows I can no longer see the fullscreen window. Infuriating!
I’m still not sure why you can’t switch between applications even if they aren’t on the same workspace though. Cmd tab, Cmd tab takes me from a full-screen video to the last app on a separate workspace, and right back to the video.
And if you want to see other apps at the same time as the video, no wonder full-screen gets in the way.
> And if you want to see other apps at the same time as the video, no wonder full-screen gets in the way.
You say that, but is doesn't on windows or linux. And it didn't used to on macOS either until they changed things around a few years ago.
macOS is frustrating to use without a mouse. On one side the shortcuts are consistent, work everywhere, and are very deeply customisable. Really much better than anything I have tried on other platforms. All the menus are very easy to use without a mouse once you know the shortcuts (which, granted, are not obvious if you don't know they exist). Emacs-like shortcuts in all text fields are absolutely fantastic. The fact that Command is used throughout the GUI leaves Control available for things like terminals, which is awesome (e.g. there is no conflict between Control-C to kill a process and Command-C to copy some text). But at the same time there are things like window management that pretty much require a mouse, but really should not.
> I miss the ability to set arbitrary shortcuts and bind them to arbitrary menu items.
In each application? Interesting that the OS provides that. > macOS is frustrating to use without a mouse.
My experience confirms this as well. I was really expecting an ergonomic, well-polished experience but I found that the Mac is polished like shark skin. It's nice and smooth if you do things - or can force yourself to do things - like the engineer in California does things. But if you like to keep your hands on the keyboard, or organize your applications (not just windows but applications), or anything else then you are going against the grain and that smoothness turns into obstacles and pain points.My main issue is that all the different "Terminals" have subsets I like on them, but none have all the features I like lol. It's not a big deal though. FWIW I'm trying out the Warp term now (used wezterm on linux) and it's been mostly enjoyable so far.
The animation is shorter when you're on a model without a 120Hz screen, so it gets a little more bearable there.
But some of these may help. There may be more (or less), it's been a while.
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false
defaults write -g NSWindowResizeTime -float 0.003
defaults write com.apple.dock expose-animation-duration -float 0.15
defaults write com.apple.Mail DisableReplyAnimations -bool true
defaults write com.apple.Mail DisableSendAnimations -bool true
Also, try to use keyboard shortcuts: the animation is muuuuch faster than with gestures. In Keyboard prefpane, Shortcuts, Keyboard, Mission Control (make sure to have many desktops created). I have desktops set to ^1..^0 and left/right to ^left and ^right (which is sadly the only way to move to fullscreen apps), and disable MRU automatic space reordering in Mission Control prefpane.I've spent more time than I'd like to admit trying to get rid of this workspace switch delay. The tipping point for me on it was switching to a 16" Pro with a 120 Hz screen and finding out that means it now takes longer to switch.
On the 120Hz MacBook Pros, there's an advanced iTerm2 setting that lets you change the maximum frame rate to 120 or above (adaptive frame rate also needs to be disabled).
For monitors with a high refresh rate, it's worth checking out. You can see the difference by running:
$ cat /dev/random | hexdumpBut it has Cmd+Shift+E, which I wish some other emulators I like would just wholesale copy that feature.
Honestly, it's one of the better emulators out there; it's my recommendation if you're otherwise stuck on macOS.
I would also recommend trying out if BetterTouchTool can't change the behaviour of the green (+) button as it's pretty powerful.
What you get when you hold Option is the way that was the previous "maximisation" option, before they added the full screen mode which I also abhor.
I'm just trying to be helpful, possibly barely pointing out that things claimed to be impossible are not (and not argumentatively, only because folks may stop at that and have to endure something when there are solutions that would fit their use case)
When you hold ALT while clicking the maximize button it should work. There used to be a setting for this when they introduced it.
- No way to fullscreen a window without moving it into a separate workspace. All a new workspace achieves is making it difficult for me to switch between this app and my other apps! (individual apps can implement this, and some like VLC do, but most apps don't)
- No native support for containerisation. Containers/Docker are a great technology, but even on my M1 mac where literally everything else is super speedy, they're really slow.