Hacker News new | past | comments | ask | show | jobs | submit login
No Start Menu for You (randomascii.wordpress.com)
427 points by jabagawee on Jan 18, 2023 | hide | past | favorite | 272 comments



I think search is hard generally. I switched to an M1 Mac pro recently, and it has its own set of challenges.

For instance, there is no start menu but a search bar called Spotlight. You do your quick math in there (where you'd call calc.exe in Windows). However, it only accepts your query as math... sometimes. Like 50% of the times. Otherwise it searches the web.

If you search for a program, it takes just that tiny second to update results such that if you type one letter too much, your top result goes from program to web search, and pressing enter opens Safari.

Relevant results (folders + files) do appear, but usually you have to scroll.

The search bar itself comes up very quickly though.

If you do consider switching, one warning about Mac is this: Window management is utter garbage. Maximizing is actively discouraged. Tiling left / right etc? Doesn't exist. Everything must be random size and overlap weirdly. Instead, each new version brings a new quick switch or workspace functionality that I have never seen anyone use.

Oh and for some reason, it's less stable than my prior windows machine. Apps just crash a lot, but that's probably due to the Arm64. I mean, remarkably stable compared to computer back when, of course, but compared to Windows 10, I have more crashes and even had to restart a couple of times!


> Oh and for some reason, it's less stable than my prior windows machine. Apps just crash a lot, but that's probably due to the Arm64. I mean, remarkably stable compared to computer back when, of course, but compared to Windows 10, I have more crashes and even had to restart a couple of times!

This is not normal: you might have a hardware issue or possibly some kind of invasive corporate security software. The two M1 devices I’ve used have never had a system level crash and application crashes are rare except for the things I’m compiling myself.

For window management, I use Rectangle.app - Macs are all about keyboard shortcuts and that adds all kinds of resize patterns.

For search, I’ve used Launchbar since before Spotlight existed. It’s notably faster for app launching and customizable, and the clipboard history is invaluable.


My experience has been the same.

I had an old Intel Mac start occasionally crashing after taking it in for a screen replacement. I fired up memtest86 and sure enough saw errors. I took it back and Apple replaced the entire motherboard for me for free.

Does anyone know if there’s a memtest86 equivalent for M1 macs? I’m not sure how I’d go about testing the ram on my machine now.


When this happened to me, I was told that the memory can't be replaced without replacing the entire motherboard. Which means that after warranty period has passed the machine is either very expensive to repair or unrepairable.


That’s sadly true given the design trade offs: M1 CPU package includes RAM - that makes it fast by lowering latency and removes the category of errors related to physical sockets but means any failure requires the entire part to be replaced.


This was before M1. I'm not sure if there was a technical reason to not have a RAM socket but the chip was soldered directly to mainboard in any case.


Basically sockets add size, weight, and mechanical failure points (they can vibrate loose, you need an access panel, etc.). Since most people never use them over the life of the system it’s basically a bet that the RAM will fail less frequently than those other things, which is probably true but frustrating if you’re in the unlucky group.


It's a small sample size but I've seen more failed RAM chips than other components together. And a socket would make upgrades easier. Which of course isn't great if you're trying to sell higher spec up front instead of giving the option to upgrade later if needed. I'm not sure why a separate access panel would be needed, the whole bottom is easy to remove with a pentalobe bit.


Yeah, I’d be curious what the overall numbers look like for a large swath of users. I’ve never had a Mac I support fail do to RAM - hard drives back in the day, fans, GPU, or logic boards - but I did have multiple PC & Mac users who had reliability problems which were fixed by reseating DIMMs which had come slightly loose.


Which is why I pay for the monthly AppleCare.


TL;DR - Apple makes a huge profit on selling AppleCare.

Recent estimates [0] shows that in 2021 Apple had revenue of $8.5B on Applecare while claims cost $2.6B. Also, the claim rate has been dropping YoY while revenue from AppleCare has been growing YoY.

Almost always, insurance schemes are profit generators (ie not sold at a loss). The reason to buy into a scheme like AppleCare is because you couldn’t recover from an immediate loss. e.g. The only non-mandated insurance I pay for is House Building insurance.

This is why I do not pay for AppleCare.

[0] https://www.warrantyweek.com/archive/ww20211104.html#:~:text....


It hasn’t arisen for me yet but the recovery mode (Command-R at boot, or boot holding down Option and select it) has a hardware diagnostic which does at least basic memory testing.


I've found Windows window management to be pretty poor. They removed always on top (except in OneNote, and it's in power toys). Open a second Word document and all your docs get maximised. Undock and re-dock your MS machine from it's MS dock and the MS OS suddenly has no clue where to put your windows. Dock to a different dock (hot-desking; same brand and size of monitor) and the entire display options need to be re-written - no option to preserve it. Restart your machine and you can only load your Startup apps into one virtual desktop (I tried powertoys but it didn't seem to make anything better). Et cetera ...

It's pretty hard to believe that the people designing this system use it for work.

At least they got zones, coming from KDE and not having zones nor virtual windows, initially, was a big shock.


They have Powertoys https://learn.microsoft.com/en-us/windows/powertoys/fancyzon... and https://learn.microsoft.com/en-us/windows/powertoys/always-o...

not sure how good it is since I haven't used it myself

edit: you have to install it yourself


Powertoys is great!

I use it to manage how big my windows are across my monitors, or search for programs, or math, or always-on-top


> Dock to a different dock (hot-desking; same brand and size of monitor) and the entire display options need to be re-written - no option to preserve it

Does anything do this properly? I use i3[0], and wrote some super janky automation to preserve my layouts when I switched from dock to no dock and back. It has the concept of layouts that can be stored/loaded. So I had a script that would dump the layout, I had to manually run it before disconnecting (couldn't figure out how to detect the monitor disconnect and dump the layout before i3 re-arranged everything). And another script that would load the layout when new monitors were connected (this was easy enough to automate).

I'd be _really_ impressed if something did this correctly without any user hacking.

[0] https://i3wm.org/


> Dock to a different dock (hot-desking; same brand and size of monitor) and the entire display options need to be re-written - no option to preserve it.

Also the same on macos BTW. Switching external screens resets all the screen size options, including your laptop display if you’re not at the “default” resolution.


> They removed always on top

Are you saying macOS has this?


They're saying it was removed from Windows.


Yeah, the Office window handling is fucked up. But it’s because non-proficient users apparently got confused by each open document behaving like a separate app window.


I've been using DeskPins for "always on top" since I've known about its existence.


I use this AutoHotkey oneliner. WIN+Space pins/unpins the current window.

    #SPACE:: Winset, Alwaysontop, , A
(Save to set-always-on-top.ahk, and create a shortcut to the script in %userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup. Optionally add #NoTrayIcon at the top of the script to get rid of the tray icon.)


Yeah AHK can fix a lot of this, but I only really use Windows on my employer's computer and they're very much averse to installing anything to help with QoL issues like this.


Surprisingly, there’s no way to keep an app on top on macOS!


The web stuff on Spolight is one of the first things I turn off on any new Mac. Siri is disabled, suggestions from the web are disabled, spotlight is only allowed to look at apps and files, etc. My mac works wonderfully after so that it returns results of what I expect when searched. Search is a lot less hard when you restrain it to searching only what you care about.


Spotlight, as in the underlying search technology and APIs originating from Mac OS X 10.4, is fantastic. Spotlight, as in the search box that appears when hitting Cmd+Space has become obnoxious and commonly thinks I want to know what 1 pascal is in inHg when I type "1pa" instead of thinking I want to open 1Password.

To this day Alfred remains one of the first things I install on a new Mac as a result. Still have access to Spotlight (the indexing service) search, but none of the extra "intelligence" (aka Spotlight the app thinking it knows better than me what I want) unless I explicitly ask for it by explicitly invoking an extra workflow for things like unit conversion, etc.


Does anyone know how to get a similar configuration with Win11? The setup described here is exactly what I want.


I believe you can set it with PowerShell:

Set-WindowsSearchSetting -EnableWebResultsSetting $false -SearchExperienceSetting NotPersonalized

Link to the Docs: https://learn.microsoft.com/en-us/powershell/module/windowss...


--Hi, I'm a PC.

--And I'm a Mac.

The only winning move is not to play Win11


Adding software can help.

Alfred can either replace spotlite or run along side it. I’ve found it much faster and easier to use. You can customize it pretty well. (Just don’t download the Mac App Store version as it’s multiple versions behind)

There’s a ton of windows managers out there that help you setup hot keys or modify windows to work how you want. Mac overall is much better with native software not doing its own thing than windows so changes tend to be pretty consistent. I’m using MOOM because it’s on the app store and lets me hotkey all my windows into specific sizes but there’s plenty of other stuff out there depending on what you want to do.


shouldout to sizeup for window management. Keeping me sane since 2012.


Take a look at Alfred: https://www.alfredapp.com/

I’ve been using it since v1, it’s extremely configurable, very very snappy and doesn’t suffer from the common AI-problems, that seems to be forced into searches everywhere these days.

(EDIT: it’s a Spotlight replacement)


Switched to Raycast and never looked back. Incredible tool.


A great tool no doubt, but I'm personally not a fan of their extensions architecture. Last time I checked, it silently installed it's own complete and default build of NodeJS with NPM and everything.

The extensions themselves are manually reviewed before being made available, but are - or were at least then - otherwise given free reign over the host system and even inherit the accessibility permissions (aka MacOS "godmode" for apps) that Raycast requires to function. To make this whole thing even more questionable, extensions are automatically and silently updated in the background, without a way for the user to disable this.

Makes you wonder in what other parts of this closed source app secure practices might have also taken a backseat.

Long story short: Very helpful tool, but their extensions architecture is quite insecure.


Alfred is great. Just have to disable the feature to search on the web. Otherwise it will have the same issue where a typo results in a new browser tab with a web search instead of doing nothing.


>Oh and for some reason, it's less stable than my prior windows machine. Apps just crash a lot, but that's probably due to the Arm64.

For what is worth, I use dozens of apps, several big ones and lots of utilities, and no crashes (though I went for all being M1 native). So could just be the choice of apps or some other factor.

Regarding typing to launch apps, you can try Alfred. It's free for basic use, and is what many long time Mac users tend to use for that role, as opposed to Spotlight.

Also, there absolutely is "tiling". There are several third party apps such as Magnet, and there is even a quite basic built-in: click and keep clicked for a second or so the green window button, and it will give you option to put the window in a left/right tile and chose another for the other side, etc.


> click and keep clicked for a second or so the green window button, and it will give you option to put the window in a left/right tile and chose another for the other side

But it won't let you just tile a single window to a side, it is mandatory to select another window for the other half of the screen. Also it moves those windows to a separate workspace for whatever reason, which causes a delay when entering/exiting this tiling mode because of the workspace switching animation.

I'm glad Rectangle exists. Now I just need something like Mission Control but with keyboard support (seriously, why can't I at least select another window with the arrow keys?)


> But it won't let you just tile a single window to a side, it is mandatory to select another window for the other half of the screen. Also it moves those windows to a separate workspace for whatever reason

Hold down the Option key to get it to work the way you want, here.


Contexts is the app that I was looking for, and may be for you as well!

https://contexts.co


>Tiling left / right etc? Doesn't exist.

It sort of does, but it's not as obvious as it should be. Mouse over the green zoom button in the top-left corner of a window, hold the option key on your keyboard, and then "move window left" and "move window right" options appear.


I think just hovering the cursor above the zoom button for a few seconds will also trigger the left/right tiling options.


Wow, I had no idea!

I like OSX, but I will say that it has a lot of features which are basically impossible to discover except by accident.


It's also in the Window menu, so you can add a keyboard shortcut to it.

See https://lna7n.org/2021/04/16/a-survival-guide-to-macos-from-...


Yes, this is why I turn off search in Spotlight (also for privacy).

For window management, please consider using the Rectangle app or some other keyboard window manager. Otherwise, I believe its possible to long press on the maximize button to put your windows on the left or right half.


The green button isn't a maximize button, it's a full screen button. Full screen on macOS is a separate virtual desktop, so you can't just quickly bring up another window to reference something. Some apps simplify/hide their UI in full screen mode, and until recently, the menu bar would always auto-hide in full screen (it's configurable now).

There's also Zoom, activated by option-clicking the green button. This resizes the window to the app's preferred size, which is random, and usually not the full screen (e.g. full screen height but whatever width it had before).

Turns out operating systems named "Windows" are much better at window management. (The maximizing stuff is one issue, the application-first model is another.)


I'm still pissed at Apple for changing the default behavior of the green traffic light from Zoom to Full Screen. I never want to use Full Screen, and when they introduced it in Lion with a dedicated button I was content to ignore it. Even though I've developed muscle memory to hold down option every time I hit the green traffic light there's still times where I forget, let go early, etc. and I end up fullscreening the damned window instead and curse under my breath.

I never minded the application-specific Zoom behavior in macOS, in fact I find it much saner than Windows where you often end up with dead space inside an Application doing nothing. Safari pretty intelligently figures out the maximum horizontal width of a page before padding would be applied and resizes to that when zooming unless your window is already beyond that breakpoint, for example. Same thing with Word, for example. I don't want to see a bunch of dead space on my screen, I just want to show the maximum amount of content my application+display can show at once. (This is where I really dislike the change to the green traffic light, I don't want Window-like behavior on a Mac)


Rectangle, Rectangle Pro, Magnet are all very nice and make the window management ok-ish on Mac imho. I've made the switch a couple of months ago and the window management without those apps seemed both different but also somehow worse. Now, I'm all used to it and it works good.


I use Moom, it gives me basically perfect snapping and keyboard controls


I switched from magnet to moom. It feels like a native OS feature, which is the highest compliment I can give such a tool.


Had both Mac and pc. Made switch with latest M1 Pro to replace windows pc desktop. Got 49inch ultra wide and 27inch using magnet works great.


> its possible to long press on the maximize button to put your windows on the left or right half.

Ohh I never knew about that. Thank you!


> Tiling left / right etc? Doesn't exist

Sure it does - long press on the green maximise button and you get a little drop down. For me it includes "Enter full screen", "Tile Window to Left of Screen" and "Tile Window to Left of Screen". Tiling is like full screen but with two apps side-by-side rather than one.

If you want to maximise a window instead of going full screen (that is, make it as big as possible but not overlap the menu bar or dock), Option+Click on the green button or double click the title bar. macOS calls this "Zoom". Safari is atypical in that maximising it only changes the window's vertical height, but pretty much everything else maximises height and width.

All these options are on the 'Window' menu as well.


Yeah, windows and mac has a different approach to things, and seemingly people do not want to invest the time to properly learn a new OS when changing.

"I've used computers for x years, and if mac is so intuitive I should just get it, and mac sucks because you can't move folders only copy them in finder". A variation of this I've heard multiple times.

MacOS is intuitive for people who's never used another system in my opinion. If your muscle memory and workflows have been shaped by windows, you're going to have to look up how to do things.

Like, holding down option with certain clicks to reveal more options is not something everyone know, and it's applicable (used to be at least) in many places.


I have never had any app crash on me and I’ve been using M1 Pro daily for a couple months now. For solving window management I use yabai which lets me navigate my machine (mostly) with the keyboard, just as I’m used to from my Linux daily driver


I had apps crash on me 4 times in a M1 and I don't even own one, so I used it for a total of maybe 10 hours or so.


The most essential tool I recommend to any new Mac(book) owner is BetterTouchTool. It started out as a tool to allow you to assign and define new gestures on your trackpad, but has become a lot more since. One of the things it does is window management – drag a window to an edge to full/half/quarter-screen it. You can also assign a keyboard shortcut or trackpad gesture to do this, if you prefer. I couldn't use my macbook without it.


I fully agree on all points. I took a Mac hiatus for a few years and have been shocked with how unstable it has become in that time.

FYI Alfred is the commonly recommended fix for Spotlight. Spotlight has become progressively worse over time. Apple recently removed the ability to remove web results, and disabled the ability to order which results come first.


> If you do consider switching, one warning about Mac is this: Window management is utter garbage. Maximizing is actively discouraged. Tiling left / right etc? Doesn't exist. Everything must be random size and overlap weirdly. Instead, each new version brings a new quick switch or workspace functionality that I have never seen anyone use.

Mac has a different window management paradigm. It suits some people, it frustrates others. I've switched from Linux/BSD after 15 years there, and it immediately made so much more sense to me. YMMV.

It also makes so much more sense if you have a very large screen. I've tried using dwm or Sway with my 43" screen and it's incredibly awkward. You need first-class support for floating windows, or at least smarter tiling.

But I agree, some things on macOS are not as good (workspaces), or plain dumb/useless (stage manager). For missing functionality, like keyboard-driven tiling, I fix things using Hammerspoon: https://github.com/rollcat/dotfiles/blob/master/.hammerspoon...


> warning about Mac is this: Window management is utter garbage. Maximizing is actively discouraged. Tiling left / right etc? Doesn't exist.

I've been using Spectacle (https://github.com/eczarny/spectacle/) which is technically unsupported but seems work fine on an M1 mac and provides all the neat tiling left/right/up-down windows 8 functionality via the keyboard. This is the first thing I install on a new work computer along with Amphetamine.


I use DisplayMaid which remembers the positions of all the apps I usually have open, one configuration for each combination of monitors I use (work, laptop only, home).


Another pro tip for using Spotlight: you can search by the initials of an app. For example, if you want to open "Private Internet Access", instead of searching for a substring, you can simply type "pia" into spotlight.


For window management and tiling, I think Rectangle is better than most of the alternatives I've used. And its OSS https://rectangleapp.com/


I use this and love it! It's in my "must have" list of apps I install straight away.

You can install it with brew too: `brew install --cask rectangle`


I really struggled with moving to macOS for work, but a couple of utilities helped a lot:

AltTab - Windows style tabbing between windows, including thumbnails and tiles for each open window of an application[1].

    brew install --cask alt-tab
LinearMouse - Removes mouse acceleration, but also gives you the ability to have different scroll directions on mouse and trackpad[2].

    brew install --cask linearmouse
Rectangle - Open source window management tool, I use it for window snapping[3].

    brew install --cask rectangle
[1] https://github.com/lwouis/alt-tab-macos

[2] https://github.com/linearmouse/linearmouse

[3] https://github.com/rxhanson/Rectangle


> If you do consider switching, one warning about Mac is this: Window management is utter garbage

Phew, so I'm not alone. I used a Mac during 2014 to 2018 and window management was the most frustrating thing. I wanted to scream every time I accidentally moved a "maximized" window 1px to the right. aaaaargh.


For me Spotlight fails constantly. I don't know what's tripping it up but programs I use often it randomly decides "today I'm not going to find those for you". I have it set to only show programs and nothing else so no idea why it can't do that simple task but whatever, several times a week it decides "not this time"

As for tiling, Mac does do somethings that Windows (IIRC) doesn't. One is, if you move a window or the edge of a window slowly it will snap at the border of another window. So you move fast to get it close then slow down and it will align nicely.

Also, tiling: https://support.apple.com/en-us/HT204948

But I agree that Windows tiling is more discoverable.


Spotlight gets better the less you ask it to do. Remove varieties of results (eg: web searching) and see how much more useful it becomes.


“ If you search for a program, it takes just that tiny second to update results such that if you type one letter too much, your top result goes from program to web search, and pressing enter opens Safari.”

The search in Windows start menu does the same thing. This is from progressive return on results intended to get something to the user fast while the searches are still not done. The downside is a shift like you see. I think subsequent results should only append to the end of the results, not change the order of existing results. As someone mentioned, you can turn off the web search results in Spotlight and it will eliminate most of this problem. I’m not sure if you can do that in the Windows Start Menu or not.


You can switch off everything related to siri in the system settings (especially 'siri suggestions' in the spotlight settings) to get a local spotlight search (which then actually works pretty well as app launcher, that's what I use it mainly for).


One of first changes I do on a fresh Win 10 install is disabling the web search in start menu. I hope Mac you can do that on Macs as well.


Huh. I maximize most of my programs. They maximize in a separate desktop and I switch between them with three finger swipe.

Also noticed yesterday that you can tile windows left right by long-pressing on the maximize button.


> Huh. I maximize most of my programs. They maximize in a separate desktop and I switch between them with three finger swipe.

That's full-screen, not maximised[1].

It's also something I hate - I make an app full-screen and suddenly it's on a different desktop, so my awareness of what apps are on which desktop is completely gone - I can no longer to ctrl-alt-right twice to get from my golang desktop to my browser desktop, I need to move away from my keyboard, lean over to the macbook and three-finger swipe.

As far as Apple are concerned, no one ever docks their MB into an external screen, keyboard and mouse. You're supposed to do all of your work squinting.

[1] Someone will no doubt correct me if I am using the wrong terms.


I've used MacOS for about 15 years now, and I almost _never_ use full-screen [1]. What I do instead is group windows in the different desktops by task / context. These windows are mostly sized to take ~80-90% of the screen, but I make them all different sizes and slightly offset from each other. That way I can switch from one another by clicking on the small sliver that peeks out from behind the current foreground window. That type of context-switching is a bit more rare; the most-used action is the 3-finger swipe / ctrl-arrow.

One thing I miss from Leopard is the ability to put your spaces into a grid instead of a line; made for a bit more efficient switching between them.

[1]: The only exception which is pretty much always full-screen is my terminal. I use tmux for multitasking in that "space".


I've been using a Mac full time for a little over a year. I'd agree fully with you on the full screen going to a separate desktop. Extremely annoying.

However, you can switch desktops with control + right/left arrow. No need for the trackpad.

Because I'm easily distracted, I frequently have all major applications maximized. That's how I always used Windows. Fortunately, I can have the same on the Mac. Maximized with the dock showing below and all apps on the same desktop. Full screen is a rarity for me.


My issue with control + right/left arrow is just how freaking slow it is. If I realise that I went the wrong direction I have to wait for the animation to finish before going in the other direction. It locks you in the animation.

Note: As I was writing this, I was making sure that I was right. I notice that it will allow me to ignore the animation sometimes, but i am not sure what triggers that.


That approach only works on the 13 and 14 inch laptops because the screen isn’t big enough to show more than one application. On anything larger the green button is basically never what I want.

The green button is just a very ill-considered piece of functionality imho. I find window management on macOS too frustrating to tolerate without moom installed.


Switching between Windows and Mac, spotlight (or Alfred) is something I missed on Windows (solved by using FlowLauncher, PowerToys Start doesn't support plugins).

I don't understand the need to wait for something other than a search box to draw on the front when I just wanted to search and launch something.

On top of that, there is no way to customise the search result or create aliases. If I installed something portable without writing to registry, I couldn't even find it. And this is coming from a company that is adding AI to their search engine soon.


PowerToys Run does seem to support some plug-ins though. I happily use https://github.com/lin-ycv/EverythingPowerToys to use Everything for bettler local search for example.


You could try Amethyst, it is a tiling window manager for Mac, but it's substantially better than without.

https://ianyh.com/amethyst/

It also adds shortcuts for things like moving windows between virtual desktops. Why is that not a key binding by default in MacOS?

Tiling left and right does sort of exist natively, but you have to make an app only desktop and then add the second one. It's really clunky and doesn't feel like it's intended for actual use.


The more direct equivalent to the Windows start menu (assuming you just want to search programs) is the Launchpad, which isn't bound to a key by default but you can do it in settings. It's much more reliable than Spotlight. Personally, since I regularly have to deal with all 3, I use the same key combo for PowerToys Run on Windows, Launchpad on Mac, and the GNOME app launcher on Linux.


> If you do consider switching, one warning about Mac is this: Window management is utter garbage.

It didn't used to be this way, a lot of things about the UX has gotten worse in Mac OS. The nice thing is there is common, well written software in the community to resolve most of the quirks. BetterTouchTool is a REQUIRED install on every Mac I touch and while it is very powerful and has many capabilities, its two most important features for me are rather mundane: Dragging to grid and switching the behavior of the green button back to maximizing the window instead of going full screen (does anyone actually want /full screen/ for a normal application that is not watching a long video?)

If you have the right mix of community written software (much of which is free, but some is paid), Macs become a truly lovely experience. I can't stand Windows these days, when I used to feel very positively about it. Granted, there are great community written programs for Windows to improve its UX as well.


>Otherwise it searches the web.

If you search for a program, it takes just that tiny second to update results such that if you type one letter too much, your top result goes from program to web search

This sounds nearly identical to the search function I've used in the windows start menu. It's terrible


Regarding a lack of start menu, I find it useful to pin the Applications folder to the dock Once pinned, right-click and set your preferred view mode, e.g. grid or stack. However this approach is limited in that it is a folder view, so will omit anything in your user's ~/Applications folder.

I enjoy macOS' maximize (fullscreen to new workspace behaviour) as I usually use it only when using a single screen with a trackpad. However, double clicking the titlebar will maximize more conventionally like Windows, Gnome or KDE.

BetterTouchTool is IMO a must have application on macOS. It supports window tiling.


> If you do consider switching, one warning about Mac is this: Window management is utter garbage. Maximizing is actively discouraged. Tiling left / right etc? Doesn't exist. Everything must be random size and overlap weirdly. Instead, each new version brings a new quick switch or workspace functionality that I have never seen anyone use.

There’s a $0.99 app in the App Store called Magnet that solves these problems.

It’s absurd that Apple doesn’t build this into their OS and wastes so much time on stuff like Stage Managed, but it is what it is. I highly recommend Magnet.


> I think search is hard generally.

The Windows 7 start menu search worked very well for the TFA use case. You can still get the equivalent with OpenShell. Microsoft f’ed it up from Windows 8 on.


Solve window management on MacOS with 10 lines of Hammerspoon config:

    local hyper = {"ctrl", "alt", "cmd"}
    hs.loadSpoon("MiroWindowsManager")
    hs.window.animationDuration = 0.3
    spoon.MiroWindowsManager:bindHotkeys({
      up = {hyper, "up"},
      right = {hyper, "right"},
      down = {hyper, "down"},
      left = {hyper, "left"},
      fullscreen = {hyper, "f"}
    })


I'm on mac for work and use an open source app called Rectangle to manage app windows. I don't know how people manage without it!

It's funny how bad window management is with mac. I'd not be surprised if Apple's UI/UX designers just look at what Windows does well and says "Let's do the opposite of that"


>Window management is utter garbage. Maximizing is actively discouraged. Tiling left / right etc? Doesn't exist

“Window management is different and even though it is a completely different OS I didn’t bother to learn it.”

You might as well have said its command.exe is garbage and back slashes don’t work.


I purchased an app to maximize my windows on mac. It also moves them between monitors. It’s called Magnet. Highly recommend :)


I just realised that Gnome 3.3 has the feature equivalent to Spotlight. At least for Math expressions. Pretty cool.


I thought the linux equivalent was the terminal, you can launch programs, manage files, do math, write programs, connect to remote machines, it's pretty great.


It seems to be a pattern with (not just) Microsoft products to hang the UI while waiting for some remote API, usually talking to the home base. Happens a lot to me with Office desktop apps - they freeze sometimes for a good second or so while starting and more surprisingly also when closing. One time it bothered me so much, that I recorded an ETW and unsurprisingly the time during the hang was spent waiting for some http request. I noticed that often the online version of these apps (namely Outlook) are more responsive than the desktop counterparts.

Edit: My experience with Excel - https://twitter.com/martin_ky/status/983019737729916930?s=20


I guess it's because in web context, it's easier to do web calls async than sync. While it's perfectly possible to do async web calls in something like C++, or at least move stuff to a different thread, people just somehow don't. Maybe out of lazyness since the first Google result was sync, or because lifecycle management is harder if raw pointers are involved, or whatever else.


I'm guilty of this. Back when I was writing Java apps using Swing, I'd perform heavy blocking IO operations in button event handlers synchronously. Looking back, I realise how much haram I was committing.


It's because the default program structure in C and C++ makes functions blocking, with the caller assuming that if the callee returned it completed. Jamming a non-blocking program structure smack in the middle of a blocking system is never pretty, and most people prefer not to deal with the additional complexity. For the same reason, even though Windows has overlapped IO and other asynchronous IO mechanisms, most people prefer to use the synchronous functions.


For disk IO you usually get away with it, especially now with SSDs. For networking you don't even have to use overlapped IO, sockets can be used with window messages, winhttp can be used async, etc. I think "it's more involved" is a really shitty excuse, especially if we're talking about a Microsoft product, not some obscure shareware software a guy is developing in his shed in the middle of nowhere.


I'm not excusing this particular case, I'm just explaining the perspective of most developers regarding synchronous versus asynchronous operations. In this particular case there's no reason to do it synchronously, since multiple processes are involved anyway. The crash handler should definitely not be waiting on a network operation to let the process terminate (that's not even getting into whether crash dumps should be getting uploaded by default to begin with), and the fact that this is a central part of the operating system's UI is even more egregious.


In some cases I wonder if the Office team had internal coding policies against threading because they aren’t sure about thread safety on some legacy structures. I remember reporting the issues Outlook had blocking UI waiting on network calls in the Office 97 beta (oh, was I an optimistic teenager) and multiple decades later that’s still affecting users.


I use Win10 at work and the Calc app lags for like 10s when opening before I can type in it. I firmly remember it started to do that after some reboot update ...


The new calc app has always been a travesty. Taking at least a full second or more to load, with an obnoxiously large interface. The original calculator opened instantly and had a completely functional ui. I get angry every time I need to launch calculator on a machine I have not configured with SpeedCrunch. Almost better to use Excel.


I open the full bloody GNU Octave instead. I just timed it.

Calculator: 13s Octave GUI: 5s

The worst thing is that the calculator pretends to be running after like 2s but is unresponsive.


> The worst thing is that the calculator pretends to be running after like 2s but is unresponsive.

I can't stand this and it happens in a lot of places. It seems like pure metric chasing. We made it load faster boss. Well, no you can't use it but it yet but you should have been more specific!

If I open word doc over the slow VPN Word forces itself to the foreground only to show me a file loading dialog.


I will gladly hate on the calculator redesign, but 13 seconds feels like there is some other underlying issue.


Ye, probably architectural problem that somehow surfaces on my work laptop.

I googled abit and there seems to be people that have problem with load time of these system UWP apps.

"I just tested out the calculator again. Took 7 seconds to be usable."


It's also worse for mixed keyboard and mouse operation [1], because some of the buttons (2nd, the trigonometry, functions and history submenus) now retain input focus after clicking on them, so pressing Enter operates that button again instead of completing your calculation.

[1] If you can't remember the shortcuts for some of the more obscure functions – never mind that they're also badly documented and you have to find the list of shortcuts by searching for them yourself on the web. I have a memory that way back – possibly not even in Windows 7, but only XP – the calculator included an offline help with all the keyboard shortcuts listed. Nowadays the Windows 10 calculator doesn't include any sort of help at all, not even a link to the online help.


> Almost better to use Excel.

Ouch! I hope you mean Excel 2010 or earlier; all the later ones are so slow to launch or open document that I tend to leave Excel and files (that I'll need to access quickly) open until something forces a reboot or until I bork Excel's state by QAing or triaging somebody's unfortunate VBA (sometimes even mine, too; shhh!). This remained true on a performant gaming computer while working from home. It was always a delight, remoting into somebody's machine that still had a functional Excel 2010 on it.


I always install tne old calculator: https://win7games.com/#calc


Ty. It is depressing to read that list actually. Windows felt so much more fresh with those innocent apps like Minesweeper and Paint.

"Microsoft has removed the classic calculator app starting in Windows 10 and replaced it with a new UWP app that receives updates from the Store."

Ah I see. Remote code execution. Maybe it was a Store update that broke it for me, not Windows update.


That site is an amazing resource, thank you. I was having trouble finding a solitaire for my grandfather's new laptop


See also https://winaero.com/ for general Windows UI tweaking.


I hate the slow right click menu too, why is there a forced delay?

I think visual design peaked a few years ago and now we are deliberately overcomplicating every piece of UI for no apparent reason.


My favourite scapegoat is the agile dev process.

It takes away freedom and agency for devs which makes small things also suck where mainly complex things needing multiple programmers did without agile.

Since agile is so process heavy.

I imagine there are no dev owner of calc.exe anymore at MS.

They ruined paint.exe too btw.


I wonder how much improvement can be had by installing an application firewall and restricting everything that doesn't need networking for its primary functionality.


Not much. A lot of this sort of functionality is offloaded onto opaquely named services. So now you have decide if some access should or should not be allowed; but with very little information as to what process will in the end use that access. I used Glasswire for a long time, and when you install it on a new machine you get a lot of allow/block notifications; but then if you go back and look at the 'rule set' that was build up that way some months later, it's really hard to see what was blocked for what reason and if you actually should be blocking it.

One example is embedded IE/Edge views. It seems that those are a process of its own (sometimes), likely out-of-process COM instances. But if you want to allow one program to access the network that way but not another one, well there is (to my knowledge, and I haven't really looked into this) no way to do that. Same for the 'background download' service, the search service mentioned in the OP (although that's only used internally by Windows afaik, but by several sub-components), etc.

Not to mention, there isn't a whole lot of software left that doesn't need at least some networking for its 'primary' functionality. Whether that's by design I don't know. I blame engineers and marketing/product people equally for not showing enough restraint (i.e. the trope of 'just because they could... asked if they should...' etc). But nobody cares about my opinion on this, and the majority of users don't realize or care - and even if they do, they're as powerless as I am, individually.


It's been a while since I used Windows with any kind of seriousness (and the last version I did was 7), so I wasn't aware that this kind of thing is offloaded to separate, shared processes like that.

> Not to mention, there isn't a whole lot of software left that doesn't need at least some networking for its 'primary' functionality.

Case in point, Microsoft Office has no good reason to be aware of the existence of the internet. Its job is to open, view, edit, and save local files. No one I know uses any of the cloud crap they added in the latest versions. The only use case when networking might be needed in Word/Excel/Powerpoint — and even then, it's most probably handled by a system service — is printing to a networked printer.

(when working with a file stored on a remote server, shared over SMB or something similar, that's definitely handled by the system and appears as a local file to applications, albeit on a very slow disk)


"Case in point, Microsoft Office has no good reason to be aware of the existence of the internet."

shrug I think the same, but it's a fact that new versions of Word heavily integrate with Sharepoint and Teams. I don't use that functionality (at least not a lot), but for some businesses it's the primary use case, and it's how Word can manage to stay relevant even when competing with Google Docs. The concept of 'files' is going away slowly anyway, like it or not. (I don't, but again, nobody ever asked me). There's more - like, when you install a new spell checking language pack, something accesses the internet. It's most likely the installer/automatic updater 'service' that does this, but then you're again in the 'what's this process for anyway' territory.

My point - I think your view on how software 'should' behave is the same as mine, but the reality is that our view is outdated. It's just not how software works in 2023.

It's actually timely for me, as I just started using Glasswire with a clean ruleset. As I'm typing this, freakin' explorer.exe asked for network access to an outside IP address. It's hard to disallow explorer.exe network access as I won't be able to access SMB shares without it, but I have no idea why it would go outside my network.

I did just block Word from accessing the network at all. I guess I'll find out over the next few days in what ways it will break.

(that's another thing - most software nowadays doesn't even handle not having network access gracefully any more, if at all. Sometimes you just get blank parts of a window (presumably when embedded HTML views silently fail) and there is no way to 'reload' those parts of the UI. Or windows that don't open at all, so it just looks like a button doesn't do anything. And so on. It's disgraceful and like I said upthread, many of today's engineers just think it's normal, or are told to implement it that way against their own convictions. I mean I understand why things are they are, I just don't agree with the lack of effort in fighting back against the drivers of that outcome.)


> It's actually timely for me, as I just started using Glasswire with a clean ruleset. As I'm typing this, freakin' explorer.exe asked for network access to an outside IP address. It's hard to disallow explorer.exe network access as I won't be able to access SMB shares without it, but I have no idea why it would go outside my network.

I don't know glasswire, but on Commodo firewall you can set a rule to allow access to your local network by default (or any range of IPs) and ask about external access, which would be a way to solve your problem with explorer.


Yeah I should probably look into it more. Can Comodo's firewall be used standalone, i.e. without its antivirus? What I needed from Glasswire was click-to-allow on each network access, I couldn't find that in any product I tried a few years ago before I decided on Glasswire.


> Can Comodo's firewall be used standalone, i.e. without its antivirus?

Yep, just pick the firewall from the installers and make sure you uncheck everything except the firewall during the install (they are tricky, these guys):

* https://forums.comodo.com/news-announcements-feedback-cis/co...

after installing go through and (again) disable everything but the firewall. I also use their firewall to block their firewall (hah) from updating. Once you do this it works fine as a standalone firewall and the only reason to ever update it is if you reinstall or upgrade Windows.

EDIT: It does per-app blocking great; that's why I use it. I tried glasswire and didn't like it (or maybe they wanted to charge me money, I forget).


You might enjoy Safing's Portmaster Firewall then: https://safing.io/

It's open source and is quickly surpassing GlassWire's capabilities.

Disclaimer: I'm Founder/CTO of Safing.


I am a bit confused about Portmaster and Safing. The documentation on Safing constantly refers to Portmaster. Does portmaster do anything besides act as a local firewall?


There are 3 big parts:

- The firewall itself with rules, filter lists, and so on - https://safing.io/features/

- Secure DNS (DoT/DoH resolver) - https://safing.io/features/

- "SPN": Optional paid VPN alternative similar to Tor, our source of revenue - https://safing.io/spn/


I'm pretty sure you can actually configure the windows firewall the same way, but you would have to it up front, instead of having it prompt you.


explorer.exe is also responsible for the Windows "shell" (Start menu, taskbar, system tray, desktop background), at least historically. I think more of this started to be done by Metro and UWP subprocesses since Windows 8. (But explorer.exe is ultimately still important—if you kill its process, you lose everything but alt-tab and control-shift-escape). So I'm not too surprised that it would request network access given how much it's doing.


> Its job is to open, view, edit, and save local files

That might have been the case 20 years ago (and even then Office had functionality to self-update).

Now, with OneDrive, cloud storage, Exchange, SharePoint, etc, people expect that Word, Excel, PowerPoint, etc should work seamlessly with multiple users simultaneously editing documents.

Even IDEs and code editors have ‘network access’ now—VS Code can download and update itself and any extensions, connect to remote SSH hosts and GitHub Codespaces, use extensions that themselves connect to the Internet (like Copilot), etc.

People have come to expect some form of self-updating mechanism now even for the smallest programs (consider Rufus, an ISO burning program which can update itself, download ISOs to burn to USB drives, etc), and it’s counterproductive to just blanket-ban everything from accessing the Internet, as things are likely to stop working as expected.


> Now, with OneDrive, cloud storage, Exchange, SharePoint, etc, people expect that Word, Excel, PowerPoint, etc should work seamlessly with multiple users simultaneously editing documents.

How many people do actually use these features in these programs? I myself have always seen them as nothing but bloat, a symptom of the IT industry utterly lacking a notion of a project being finished and not needing any further work. Maybe these features should come as plugins that you can optionally install. At least that's how I'd do it.

Usually, when someone wants to collaboratively edit a document or a spreadsheet, they use Google Docs. It being web-first also helps.

> Even IDEs and code editors have ‘network access’ now

And as an Android developer, I despise how Android Studio, or the Gradle Android plugin, or both of them, can just shamelessly download 100-something megabytes of some crap without asking, expecting that you have a network connection capable of that, sometimes not even showing the fact that they're accessing the network in the UI, and refusing to operate if that download fails. Eclipse didn't do that. Though it was terrible in many other ways.

> People have come to expect some form of self-updating mechanism now even for the smallest programs

Honestly, I expect smallest programs to be complete and not need any updating.


Wouldn't that make things worse? Those applications usually expect to be able to make these calls. So now, instead of lagging once in a while when the home base is having troubles, it will lag all the time.


It shouldn't, because any network requests would fail early and instantly, somewhere around opening the socket.


> Wouldn't that make things worse? Those applications usually expect to be able to make these calls. So now, instead of lagging once in a while when the home base is having troubles, it will lag all the time.

Not necessarily. The lag may be waiting for the remote server to respond to a request, and the app may move on quickly if it can't open a connection at all. It's not totally uncommon to work totally offline (e.g. on an airplane), so there's a decent chance the test that scenario.


In my experience, each time a firewall is blocking a connection, you experience it as a timeout, so the app tries to connect and finally times out.

Which would take longer. I haven't tried though


It depends entirely on how the firewall is set up.

If you are getting timeouts then the folks who set up the firewall hate you.


No, it usually results in an immediate connection refused.


it won't wait for a timeout if the connection is explicitly dropped by a blocking rule


It can be the case that an immediate, explicit failure is faster than waiting for success (or worse, timing out).


This is actually one of the things that I appreciate from React. Because the view is synchronous you need to explicitly bail out on loading states (`return <ProgressSpinner/>`). In general you are presented the option to do something while the async work is running and other parts of the UI almost always work.


The option exists in C# / WPF, too, so not handling it and just blocking the main thread is bad programming.


General question for the class... Is there any way to stop this? Is there some entries we can add to the hosts file so that Windows and Office will instantly return as failed, rather than timing out?


Hosts file would be your first way assuming you trust MS to honor that convention. You can always consider using a way that is not reliant on Windows goodwill ( for example, Pihole would allow you to limit various unwanted IPs based on your custom list; technically, your router should be able to do it too, but it varies wildly by mfctr/model ). That said, I am not that familiar with that functionality in Excel and it is not a given that it would fail gracefully if it is actually stopped from calling mothership.


I've been running a PiHole for a couple of years now and love it. It's hard to go on anyone else's network.


I use W10Privacy. It blocks all MS servers except those needed to get updates and antivirus definitions.


That looks like exactly what I was looking for, cheers. Windows auto-identifies the download as a virus, but I see the author has a page about this frustration on the website.


If you want to put in the effort you can sniff the hostname lookups and if it's done halfway dedicated name, as an entry for 0.0.0.0 to the hosts file.


That exchange with the Microsoft support account is just such a facepalm.


happens a bunch on mobile for me too. if I'm on unreliable wifi / cellular, it's easier to go into airplane mode than wait for Spotify to try to complete a remote call when searching my library


The worst thing about the Windows Start Menu search is that it changes the top result without any user input, and it feels like it happens almost every time I use Windows.

I'll type the first few characters of a program installed on the machine, and the top result is the program I want.

But just as I hit Enter, the top result switches out to a web search, so instead of the program I wanted to start, I'm staring at a page of useless Bing results.

Just infuriating, and makes me so glad that I'm using Rofi/Wofi, which never changes the results without user input, and responds to keypresses with no perceptible delay, even when searching across every file in my home directory (via fzf).


It has been said that some companies that need to show positive stats will do this slight delay, because all the misclicks show that they are popular. This is why they are top, because everyone uses this feature with an artificial delay!

But that's surely just a conspiracy theory, no company would possibly manipulate their users because that's how you get promoted, or with stack ranking, not fired.


There is a registry key that turns off web search in win10, it makes it much nicer.


For posterity,

HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Explorer

DisableSearchBoxSuggestions DWORD

Set its value to 1.

Should work for Windows 11 and 10


I don't see an Explorer folder under that path on my installation.


Me, neither. The other one I see on Google is HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search, and that doesn't exist either.


That's a Windows registry path, you can use regedit to edit the values. Microsoft has a reasonable guide for it: https://learn.microsoft.com/en-us/troubleshoot/windows-serve...


No, I know - thank you - but I mean there is no Explorer at that path in regedit for me.


This happens to me every time I'm trying to open Notepad or Notepad++. I will type in "notepad" intending to open classic Windows notepad, see the top result I want, and then a new result will appear above it just as I hit enter.


Sorry to be that guy, but this is why XFCE is so good!

Them random delays when doing simple things in windows is so frustrating.

A desktop should get out of your way, and be so quick you don't notice it. Window switches, minimizing, maximising, launching, closing etc. Or my personal favourite, type and the letters take their time to appear.

Only after you have worked with a system that never ever lags on these everyday actions do you see how frustrating it is to work every day with these laggy things.

I saw some Mac users comment on the lack of lag on their laptops! I'm sure they can identify with how nice it is.


I honestly don't know what they're talking about, I had a mac until recently and very often I'd get up to 500ms delay in writing in a Chrome text box.


Anything more than roughly 10ms from the key being depressed to the display updating is not normal on a Mac.

If you’re seeing 500ms that’s either something specific to Chrome (the timing is slow enough I’d believe a network call for something like spell checking or suggestions) or some kind of extension interfering with the normal system behavior. I’ve heard about that with some security software so it can be useful to report those as bugs.


It's not specific to chrome, it's just worse in chrome. Iterm doesn't have this problem, but pretty much everything else I use does: intellij, slack, chrome, Firefox. We use crowdstrike, but even before that I had this problem.

My mac is just painfully slow, if I start docker it becomes almost unusable. This is a 2019 Intel one, btw, it might not be so bad on m1s, but when I got the job (and the mac) , only the original one external monitor m1s were available.


Interesting, there's definitely something abnormal about that system — the old 2012 Mac Book Air I used to use still has an order of magnitude better latency than what you're reporting.

If I owned that I'd run a full hardware diagnostic[1] and would strongly consider doing a clean wipe and reinstall. One easy thing to try would be booting in recovery mode[2] and seeing what the latency is like in the built-in applications there after it starts up. If that's normal speed, you could create a new user and see if that's affected to see whether it's something like a problem with the spelling dictionary, etc. (it's possible that this has nothing to do with text input and is just a general problem, too, but that's the first thing which came to mind).

1. https://support.apple.com/en-us/HT202731

2. https://support.apple.com/guide/mac-help/use-macos-recovery-...


The XFCE whisker menu is an excellent start menu.


I don't use it much, but yes, when I do it's quick and self organised! I like ALT+F2 to bring up the nice little launcher. Usually have to type two letters to get the app I want.

... With no lag ;)


Great article. I love Windows deep dives—both because of the supposed inaccessibility of Windows (clearly not true), and because Windows is something I've daily-driven for 23 years, and I've come to really appreciate.

If only MS could get its act straight, clean up its UI framework mess (WinUI, WPF, WinForms, Win32, WinRT, MAUI... sheesh) and stop applying stupid regressive updates and dark patterns.


> because of the supposed inaccessibility of Windows (clearly not true)

It's a mixed bag and it's far from not true. You get great tools for performance debugging, you get some system symbols, got get system wide tracing... Unless you don't get the symbols. And even then, you often find the element which doesn't work properly and... that's all. Now you know what fails, but not why and you can't do anything about it anyway.

I keep getting disappointed like that by windows over and over. I find what fails and it doesn't actually change anything.


The debugging tools and symbols are mostly available, but that we can't verify why these bugs happen or fix them is down to the closed-source nature of Windows, then, isn't it?

Another pipe dream to add to the pile: open-source Windows.


I am 100% sure it will happen someday.


It's been in the process of happening, albeit very slowly, since 1996: https://reactos.org/


I've heard of ReactOS, and it's not what I meant—the 'pipe dream' was Microsoft itself open-sourcing Windows and all its components, from the NT kernel to every single tiny program in Windows, like the various MMC plug-ins, Aero shell, Explorer, Task Manager, etc.

It's highly unlikely, ergo 'pipe dream'.


The new terminal, and more importantly conhost [0] are open sourced, that's why I believe some day far in the future it will happen.

[0] https://github.com/microsoft/terminal


> Now you know what fails, but not why and you can't do anything about it anyway.

Binary patching is kind of a pain to do on system files these days, but it is possible. Usually not worth the trouble to dig in even more to do Microsoft's job for them, but sometimes it might be.


> WinUI, WPF, WinForms, Win32, WinRT, MAUI Literally the reason why I retired from developing rich/native windows apps. I also got burned when they pulled the rug out from under Silverlight.

Is MFC still a thing? Don't forget to add that to the list!


MS desperately needs a strong QA department back, but they seem uninterested in doing so.


Across 2 different machines, 100% repo, the start button on my keyboard only opens the start menu every other time I push it. It has been that way for 4+ years, it went away for a bit after an update, then came back again.

Microsoft never has recovered from their dismantling of their test organizations.


I also have this issue. It's not 100% repo for me, be it's pretty frequent. I'm on a relatively recently fresh installed Windows 11.

I've also have an issue where sometimes the start menu doesn't let me type in the search on the first open until I close and reopen again.


Do you have a gaming keyboard? Weird keyboard glitches on Windows were happening to me due to switches on the keyboard, but from a UX perspective it always seemed like Windows was the issue.


I also figured this was related to the keyboard. I sometimes use Windows at work, where I have a wireless MS (heh) keyboard.

I swear it basically always misses the first key I press if I haven't typed in a while. Sure, it could be the keyboard going to sleep to save power or whatever.

But that same keyboard never had any kind of issue on my other computers, including under Windows, nor on that very same computer running Linux.


Well it repos on my laptop, so no. :-D

I have seen it across multiple machines, different keyboards, different video cards. Super annoying, but at least it is consistent so I can get used to it...


Replugging after booting into Windows solved it for one such model.


works every time for me...


There's many other problems with the start menu - specifically search

1) Anything not found opens in Edge™ and not your default browser (WTF?)

2) It loads lazily - so sometimes you hit enter and the highlighted item has already changed

3) Partial searches don't work very well.

At this point, I'm wondering if there's a start menu replacement app


About 1), I'm using MSEdgeRedirect [1] to forward "microsoft-edge:" URIs to my default browser. Other browsers were planning to support Edge's URI scheme as well so users could change the default browser for it, but Microsoft updated that option away during Windows 10.

[1]: https://github.com/rcmaehl/MSEdgeRedirect/


Excellent, thanks!


> At this point, I'm wondering if there's a start menu replacement app

Not using Windows for like a decade now, but I always go for a third-party launcher on Linux/macOS. They're fast(er) and more importantly extensible.

Instead of trying to index everything all the time, they function via triggers. If I start my query with "em", it searches emojis, if I start it with "=" it does calculations, if with "tr" it translates stuff for me, if with "fs" it does a file search. If there's no trigger at the start it searches apps on my system, and if no app is found it points me to my search engine (and respects my default browser choice).

Instead of using a default launcher that's trying to guess what I want and makes everything slow as hell, limiting the scope of my search like this just makes things much faster. There must be some launcher for Windows that's comparable to Alfred (macOS) or uLauncher (Linux) and once you try it, you'll never go back.


Launchers have replaced start menu search for me. They do more, they do it faster. It's frustrating that the start menu doesn't do basic stuff like open bookmarks from Edge, or do simple calculations. Having this functionality would actually enhance the functionality of Windows... but M$ doesn't seems more interested in putting ads in the start menu search.


While I agree with your point I found Ulauncher particularly slow when I tried it a year ago compared to the regularly recommended rofi


It just depends on what you're after. rofi is faster as an application launcher and I'm sure I could script my way into doing other things with it as well, but I'm willing to sacrifice a bit of speed for the convenience of extensions being easy to install and configure. In most cases it's a matter of browsing them (https://ext.ulauncher.io/), copy-pasting a GitHub link, and configuring a trigger. Sometimes there's also some system-level package I need to install and/or an API key I need to enter.

In any case, alternative launchers always beat the hell out of default ones. Once you get into them you're going to be reaching for a mouse/touchpad far less frequently and do a whole lot more with them than just launching apps.


I used Launchy before but got tired of it after a while. Maybe it's time to try it again.


I've installed OpenShell as a start menu replacement since Windows 8.


Looks cool, will try it out.


I think 1 is due to some MS protocols which the browser needs to support to open these items. Brave supports them already apparently (just did a quick search out of curiosity).


It probably hasn't been addressed because user experience is depressingly low priority for microsoft...

And i wonder if you could actually convince them that letting the start menu hang while a report gets uploaded is actually a bug, rather than a valued feature.


I'd say the reality is even more ironic - they collect so much data and reports, pretending this is to help to improve the user experience, but in the end it makes the experience so much worse.


It still irks me to no end when a Microsoft product asks me to rate my experience. Teams is constantly badgering me to rate the call quality. Is there a threshold percentage of users indicating good/bad that would lead to any change?


I've been giving it one star consistently since it was introduced. It's still shit. I'd love to know what happens to that feedback.

I once had a teams bug wherein I couldn't join a call whenever Google Chrome updated as it would fail the version number check and give me an error telling me I needed to use Google Chrome. I took a screenshot of this patent insanity and sent it to Microsoft support. A bit of discussion later and the response was something like "we know that Teams is continually evolving software and is not perfect at this time".


The Microsoft 365 admin panel still asks you how likely you are to recommend it to a friend or colleague.

"Hey Steve, I recommend the Microsoft 365 admin panel. Of all the one admin panels for 365, it's definitely the best!"


What I love about the O365 admin panel, is that it lets me administrate O365.


Normally the upload is in the background but here clearly the crashed process was considered so vital that the UI had to wait for it, which in turn meant it had to wait for the last instance to quit (after it was dumped). So the lesson here I think isn't that there should never be synchronous waiting for crash dump uploads the problem as I see it is

1) The fact that a process that important could crash.

2) That the upload was synchronous AND silent. Pick one. Just show me a tray message saying "Process blah crashed and we are uploading the crash dump click here to configure your preferences for automatic crash dump uploads".


> clearly the crashed process was considered so vital that the UI had to wait for it

This is not a case of it being important enough, this is the case for every single application:

https://devblogs.microsoft.com/oldnewthing/20120611-00/?p=74...


I mean that RuntimeBroker.exe was considered so important that the UI process (Explorer.exe?) couldn't proceed to show the start menu while it wasn't running, and instead had to wait for it to run.

That RuntimeBroker couldn't restart until the last instance was dumped is what's true for all processes. But that doesn't explain why the UI block waiting for it and not show the start menu.

RuntimeBroker may be required to show the complete/correct start menu because it relates to app permissions for store apps and similar, but Microsoft (again) likely overestimated the importance of their app store.


Meanwhile, an Amiga with a half meg of RAM and a 7 to 25 MHz processor never fails to respond instantly to user input unless it's totally hosed.

We seem to have forgotten this very fundamental principle: the user's desires, expressed through input, are paramount for a desktop OS, which means that the OS must be designed from the ground up to respond to input at a very high priority. Mainframe operating systems like Unix (incl. Linux) and NT do not have this critical bit of forethought. Haiku probably does, and I think macOS might, especially on Apple Silicon.


Terrible comparison, Windows is still catching every one of those inputs and handling them. The diff is the amiga is doing maybe three things total.

This isn't even apples to oranges, it's apples to radish farm.


The comparison might not be equal in terms of how much they’re doing, but the Amiga was doing it on a single core CPU, so it could quite literally only do one thing at a time.

A modern OS running on a multi-core CPU has even less reason to hang - one of the cores should always be available to immediately switch context to handle UI events, even if the other cores are running a million processes. There’s no -technical- reason for it to hang, just poor programming.

Edit: Upvoted because despite disagreeing, your comment seems to have sparked a ton of discussion, and that's always great. :)


One important difference was that AmigaOS bumped the priority of threads that dealt with user input - the user always had priority over other tasks.

Somehow this simple trick seems to have been forgotten or is ignored in modern OS development - or if modern operating systems still do this, their process schedulers seem to be pretty terrible at handling priorities.


Eh. I disagree and agree at the same time.

<< The diff is the amiga is doing maybe three things total.

This is indeed the crux of the problem. Windows Start is trying to do everything at once including guessing what the user may be thinking of wanting including, but not limited to semi-random bing searches. Some would argue that less is more.

However, this is not a popular opinion these days. User is assumed to be an idiot and to not know what they want. As a result, MS menu does 3000 things as opposed to 3 Amiga did.


doesn't seem all that different to me, the user. how many things am i doing at once, really?


Why not run an amiga as your daily driver, then?


It's not comparing 'the things it's doing' it's comparing the UX. That's apples to apples. Begone radish farm.



The way this is implemented in Windows seems to be fundamentally broken though, because when my laptop is busy compiling in Visual Studio, I cannot even scroll UI views with the touchpad - exactly this would never happen on an Amiga, no matter how many things it does at the same time (my uneducated guess is that the touchpad driver - or any other thread related to input processing - isn't priority-boosted as well).


To be fair Linux DE's all seem to have this problem too, so it's at least decently hard. I really wish it had some interest in the desktop space: no matter how loaded up my system gets, with what type of storage subsystem. there should never be a reason that my environment stops responding to user inputs.

As it is, it seems like a ton of stuff is done in the "yeah we'll just mmap and let the kernel sort it out" which is absolutely the wrong approach for UI.


Fucsia's kernel (Zircon) is hard real-time I think, which is what you want if you value predictability and low latency over all else.

Though you don't need an RTOS to make a responsive app, of course. It's just there's such a tendency for systems to bloat and become a tangled mess of RPCs and process activations, while using an RTOS tends to tie your hands and keep you from getting into such a mess.


The thing that's a bummer with deprioritizing performance is it makes people less willing to experiment/try things/dabble. With immediate response times there's no cost to saying hell with it and searching for other possibilities in the start menu (as an example related to this). Instead we just do what we've always done because we have to wait for far too long.


I really wish BeOS has taken off. Personal computing has taken a real hit over the years.


The desires of the user cease to matter by the time they have purchased the product. After someone has purchased a computer, wishing it were faster is a very expensive item to action.


> Mainframe operating systems like Unix (incl. Linux) and NT do not

> I think macOS might

macOS is Unix. Specifically, it's a derivative of BSD.


MacOS has a system for adjusting process priority based on what the user is doing. Whatever program is in the foreground is high-priority, and any programs that it calls with blocking mach-port-based IPC are temporarily promoted to the same priority. This helps quite a bit with responsiveness!


And if it's randomascii hitting these issues and still not able to resolve them, holy hell, you're not going to get a bigger power user big analysis than this, MS, step to it!


They just fired 5% of their workforce. The times got tougher (maybe due to interest rates). I wouldn't hold my breath.


From an IT support & admin point of view The Windows 10+ XML based start menu stuff has been bit of a dumpster fire the whole time. Start menus would randomly not work at all and need the users whole profile nuking to resolve. Who wants to see results from Bing in their start menu? Anyone? Controling start menu and taskbar for the org by policy is way more complicated now. Yes you can make it work eventually but it could be so much easier if anyone at Microsoft gave a crap about users and admins any more.


I've always kind of wondered if this is working as intended. Occasionally I type the name of an installed program, but the result loads slowly for whatever reason, but in the meantime there's almost instantly a search link which, if I press <Enter> thinking my result was found, opens up Edge (a browser I never launch otherwise) and inevitably shows me a variety of advertisements, rather than launching the program I already have on my computer.

This reminds me a lot of news websites that scroll articles away as you're about to click on them, and in their place right as your thumb hits the touchscreen is a giant advertisement.


It sounds like a good idea to preemptively disable Windows Error Reporting. I usually do it (and kill all other telemetry I can find) on all Windows machines I set up.

Microsoft’s going to need to try harder than this to convince me to keep it enabled.


Windows Start Menu has been broken for me sometimes (typing does nothing, have to re-click the menu to toggle it a few times and then it works), over the last few months. Last few weeks has been ok.

And recently completely-finished browser downloads have to wait extra long (beyond when the browser says it's done) plus an F5 in Explorer, for Windows to not complain about a "missing file at path" when trying to use the completely-downloaded file. This could be an interaction with a virus-scanner (ESET) putting the file in quarantine or whatever real quick before putting it back out but nothing has changed on my end in the last ~4 years.

I appreciate that the author here is actually profiling stuff.


ESET is rubbish. Had to do the obligatory support round for family over the holidays. One machine would sporadically not finish sending and email via Outlook, and even rebooting doesn't fix that issue. You just had to wait about a day and it would be ok again. You couldn't send any mail during that time. I tracked it down to the Outlook plugin of ESET. I saw it also has other features like a browser plugin, and intercept for TLS encrypted traffic.

These kinds of security products always make your system less secure, not more. All those complex components that hook into every part of your system are buggy and contain vulnerabilities that malware can target. Use Windows Defender and nothing more.


Thanks for your response. I liked it because its lower resource usage than Defender, and mostly stayed out of the way. I'll have to take stock of Defender and see how it is again.


I've long thought that Windows NT might make a pretty good OS if it weren't married to the Microsoft Windows interface. I know I'm abusing the terminology here, but only because the concept of a replaceable graphical shell is utterly foreign to an OS which began as one of many replaceable graphical shells for MS-DOS.


1. You can replace the graphical shell for NT. Wikipedia even lists a few popular shells: https://en.m.wikipedia.org/wiki/List_of_alternative_shells_f...

2. NT did not begin of as a shell for DOS. You’re thinking of the other Windows desktop lineage that ended with Windows ME.

3. Even Windows 3.x and 9x (the OSs that did use DOS as a bootloader) supported alternative shells. It was literally just a one line change in a config file. I authored one such shell for Win95.


Strictly speaking, I don't think there's any technological reason why you couldn't replace the shell, although practically I'd bet the boot chain will refuse to load e.g. a replacement compositor that's not signed by Microsoft, not to mention the lack of API documentation at that level. I mention it since sometimes I daydream about trying to force a newer Windows runtime/kernel to load an older shell...

Still, in a manner of speaking, this is encouraged for the Server SKUs, which IIRC Microsoft is trying to push the "GUI-less" version which you do all configuration on remotely with powershell and DCOM and the other half dozen RPC interfaces in Windows. It's not a replacement shell, but it is an example of running WinNT with the UI front-end hacked off.


Getting rid of Explorer and using a different shell is much easier than you're thinking, just hold control+shift and right-click the taskbar, then close Explorer. However, you're still running dwm.exe at that point, which gives you window management, alt+tab, and access to Task Manager. Replacing that part of Windows would be harder.


There are still some alternative shells that exist, even for Windows 10 and 11, including xoblite (inspired by blackbox I believe) [1] and Cairo Shell [2].

[1] https://xoblite.net/docs/

[2] https://cairoshell.com/


Oof, I must still have my xoblite config from 2006-2007 somewhere on a hard drive backup, thanks for the nostalgia


Friend of mine says he used to use Windows 2k, but with cmd.exe as the shell and launch module his module tracker from there.


I disabled windows search indexing. I just use voidtools Everything. It just works. You get access to any file on your system in milliseconds instead of 30+seconds of windows search.


This. First thing I do on a new windows installation is to install everything.

I never use the start menu, windows search or whatever anymore. When I need to run a program that isn't on my desktop or on my quick run taskbar I press ctrl+alt+s and then a few characters of the name. Pick the result I want with the arrow keys and press enter. Done.


Before Everything I used to remember my filesystem. Like wheres what to rapidly access stuff. This was 12-14 years ago. I now just remember the file name. Everything remembers everything else.


with an app launcher you wouldn't need to touch the arrow keys as the apps would get a) sorted by frecency and b) have a more convenient shortcut


On Windows 11 the start menu is simply unusable; there is no way at all to disable network requests (group policy, registry, etc.). Every single keystroke makes a new network requests, even with web search disabled.

I just bought Start11.


Why the hell does windows think it's ok to secretly phone home with crash reports by default, especially when sending those makes the problem worse by slowing down the crash recovery? In this case the problem would probably have been insignificant if not for super slow, blocking, error telemetry. At least store these and send them later, sheesh.


They only send crash reports if you opt-in to the customer experience improvement program (or whatever it's called), I believe. In general I think that sending crash dumps is _great_. Sending crash dumps is the number one reason why software is more reliable now than it was twenty or thirty years ago.

But, synchronously sending a crash dump together with not telling the user that you are synchronously sending a crash dump - that is problematic.

But, I can see how they got to this state.

But, if they are going to upload crash dumps they need to promptly address the crashes and I'd love to know why that did not happen.


Woah woah woah, who said this is "secret"? Were you expecting a big red skull and crossbones to take over your screen whenever a phone home occurs?


I've switched to using PowerToys Run (in the Microsoft PowerToys apps family). It's good to have access to everything in one place (including open windows, settings, ..) and access them without touching the mouse, however the lag can sometimes get annoying. On the plus side it's open source and continuously improved.


While the ETW is helpful with a deep dive into problem analysis, a look into the Event Viewer can give some initial hint about crashing processes and other system/app faults.

Sometimes I page through the Event Viewer entries, trying to find something interesting what went wrong in the last weeks/months.


Overly obvious question, but: Why TF is there nobody on the Windows team who does exactly this type of work? Why are these things even slipping through QA over and over again? The user-facing layer of Windows is so full of similar problems, yet nothing ever improves, it only ever gets worse.


Pretty much every engineer on the Windows team does this type of work. When you have 1+ billion computers with an infinite combination of peripherals and environments (what language, what apps are running, etc.), it becomes a game of statistics and prioritization.


I don't think that is true. If they had that many developers burning down performance issues then bugs like this would (IMHO) be getting fixed earlier. Anecdotally it sounds like a lot of customers are hitting this bug and I'd love to know whether it is known, being investigated, or just noticed now.

I'm sure it has been showing up in their start-menu telemetry.

I also wonder why they haven't fixed this issue: https://twitter.com/BruceDawson0xB/status/160716343915961139... And why this was ever allowed to ship: https://randomascii.wordpress.com/2022/09/29/why-modern-soft... And why this was ever allowed to ship: https://randomascii.wordpress.com/2022/07/11/slower-memory-z...


The Windows team probably has laptops with high-speed SSDs, and tons of RAM, a fast CPU, and a fast internet connection. So now already with that, 13 seconds is probably down to 3 seconds, and they are probably also okay with (sometimes) waiting 3 seconds while the search box opens after pressing the windows key.


This is exactly why I use OSS whenever possible. Once you've gone through all the trouble of the post, you can spend a little more time to submit a patch.


I just use Everything by voidtools and assign a taskbar icon to it so it can be launched windows + 3. Other applications I often use are in the taskbar so windows + <number> (0-9) work for opening them. Beats using the Start Menu.


Swichting to custom launchers (ueli or Flow Launcher for e.g.) has worked wonders for me.

That being said, it was really fun to read the article. The amount of work and knowledge that went into this has to be immense. Thanks for sharing!


> I tend to launch most programs on my Windows 10 laptop by typing the <Win> key, then a few letters of the program name, and then hitting enter.

That's the mistake right there, use a proper app launcher (like https://keypirinha.com/) to avoid the freeze and many other issues (like having to move your focus off screen center) with this neglected core OS functionality. While you're at it, you could also rebind it to something more ergonomic like CapsLock tap (but not hold)


> That's the mistake right there, use a proper app launcher (like https://keypirinha.com/) to avoid the freeze and many other issues

Sorry, no! I am not going to install a whole new application only to launch programs - the most fundamental operation that an OS should be able to do on its own. If the OS cannot launch programs using the Win key, it needs to be analyzed and fixed. The OP article does half of that very well!


Don't get it, if it's the most fundamental operation, supposedly you want to be able to do that in the most excellent way, no? Waiting years for the OS fix doesn't help you in the interim


When I use GNOME on Linux, I can launch my apps like this very quickly, boot back into Windows occasionally and it's a disaster.

I'm going to try some of the recommendations, but can't believe the start menu of all things can be broken this badly.


Hitting the <Win> key works better than the app launchers I have tried.


For me it is a pet peeve that the start menu regularly takes a vacation.

It's particularly bad when the machine is starting, it seems the machine would rather listen to the music in its head than take commands from me. I wish it would put a priority on getting the start menu up and running even if it meant caching the state of it ahead of time so it can resume quickly -- I mean, there are just a few commands that I type in 90%+ of the time if it had those ready to go and took another second or to look up something obscure I could forgive it.


> It's particularly bad when the machine is starting

For me, this can be several minutes after boot. Windows takes forever to actually finish starting up on my work computer, presumably in part because many persistent background apps, even ones that run with elevated permissions, are GUI apps that don't start until the user session.


I use Win-Key and type stuff to launch programs in GNOME and it works very well, doing this in Windows hasn't worked well in the time I can remember using it - at best the search is slow, but a lot of the time it just doesn't find the thing I want - it feels janky.


The lagging inputs in Windows reminds me of the concept of a “Windows Minute”

Definition: A reference to time where the culculated period bears no connection to the reality of that time span. Used to understate the significance of accurate measurement.

Origin: Microsoft Windows' inability to convey an accurate file download, or transfer, time.

https://www.urbandictionary.com/define.php?term=Windows%20mi...

The lag in Windows is what made me switch to Mac, Using Finder and Spotlight and managing applications in the Applications folder made me never want to experience Windows again.


It looks like Windows phones home every time you hit the start button, and when web search crashes, it arbitrarily waits for the crash dump to be reported to the mother ship before launching again.

The most useful information is at the bottom of the comments:

"I had some of the same issues – just with start menu being too slow. I disabled web search for start menu, and it works, is fast, only finds apps (and other local stuff; documents, folder, settings – but only when you navigate to that specified search target). Bottomline – turning off web search in start menu = speed

regedit/use at own discretion: HKCU\Software\Policies\Microsoft\Windows\Explorer “DisableSearchBoxSuggestions”=dword:00000001"


I _really_ recommend Keypirinha [1] for any sane use of Windows. This little tool has rocketed my productivity (I also prefer it above Microsoft PowerToys Run).

[1]: https://keypirinha.com/


Its integration with Everything is also very good (arguably the fastest search tool on Windows to my knowledge).

https://www.voidtools.com/support/everything/

Honestly, I find the less software/features I use written by Microsoft the better for productivity on Windows. Windows has become shockingly slow and buggy since Windows 7 even though I keep upgrading my hardware.


I stopped using windows search a while ago.

It is unreasonably slow. Everything (the app) indexes every file on all of your drives in seconds, then filters the list instantly as you type.

When I start typing an application name that has a shortcut in the start menu, it shouldn't take seconds to find, period. There is no excuse. I'm shocked how bad windows search is every time I have to use it on another machine.

After trying multiple application launchers, I've settled with UELI. It does a lot of things (much more than windows search), instantly.


Is there a tool for Linux that can do something similar? i.e. give you somewhere to start to debug random UI hangs?


Source availability.


Can confirm that start menu random lag happens on Windows 11 too.

I don't know if this is a good solution but I keep shortcuts to my most used programs on desktop. I don't necessarily click on them to open the apps, but if I hit Windows key, the text completion is faster for those shortcuts on desktop.


I sometimes encounter a slightly different situation: when I type something in the start menu, it finds it quickly. But then, when I press enter, nothing happens. There's the "select" animation, but the menu stays on-screen, and the app doesn't start. I will then proceed to press enter multiple times in frustration, each producing just the animation and no other discernible effect. Then, after a while, I'll get X times the app started all of a sudden. This also happens on the settings menu coming up when clicking on the network icon in the taskbar: if I click the gear to open the settings app, it will animate, but nothing else would happen. Click X times, and X settings apps pop up after a while.

This is on a newish computer, 11th gen i7, fast-ish NVMe, etc. It was reinstalled when 11 22h2 came out. I also don't have much junk installed (nothing apart from intellij, teams and the rust build chain).


This sounds like exactly my symptoms. Check for crashes.


Reading the comments here makes me wonder why any of you use MS Windows. Is there something that all of you must have that only runs on Windows?


I can't get my gf to use a Mac (she does it if she has to). It's just familiarity, there's no other reason. Macs have a million arbitrary and pointless differences to Windows due to their long history that are grains of sand in the eyes of someone who doesn't care about computers, they just get in the way and frustrate people.

I use Macs though and much prefer it. Apple still has a relatively disciplined and competent engineering org. Everything in Windows is kinda broken/unreliable and it seems to be getting worse over time. Their insistence on using C++ for everything even in 2023 is killing them - bugs like heap corruption in search services shouldn't be happening but stuff like that is everywhere. Windows 10 is indeed abandonware like the article asks, they only really improve 11 now.


Switching is a huge hassle, with uncertainty about whether things will actually be better or not, or if I will just hit different problems. Windows is actually excellent in many ways (see the tools I used to analyze this) so I would definitely be missing some things.

So, momentum plus uncertainty about whether other environments are actually better or just different. Plus my job.


And another case of a good Bruce Dawson article spoiled by completely useless and irrelevant hackernews comments.


What? The comments here are very on-topic as far as I can tell.


I’m so glad I switched away from windows.


> I have a good understanding of the problem, but I do not have a solution

REALLY

Just don't call background services, unless the user explicitly requested a remote service! My Linux installs and (to a lesser degree) my Windows LTSB/LTSC installs don't have these issues, you know?


Wrong vibe, friend!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: