6 ms·
IMHO every desktop environment (yes, looking at you, macOS) should aggressively block focus stealing. The only conditions under which focus should change: - I'
by rollcat 1y ago
IMHO every desktop environment (yes, looking at you, macOS) should aggressively block focus stealing. The only conditions under which focus should change:
- I've just launched the application
- I've clicked on a window
- I've clicked the window's icon in the dock
- I've cmd-tabbed (or equivalent) to this window
- The currently focused window has produced a modal dialog, that prevents all input events from going into the original window. (Whether and when modal dialogs are OK is debatable.)
Matthew 5:37, "anything more comes from evil".
- phkahler 1y agoI would add "I've just opened this file" which is close to "just launched the app". That requires a bit of plumbing though since it's user interaction with another app which then tells the system to open the file (and hence launch the app for it). It sounds like that's what KDE is doing here, passing the user permission (granted by double click) on to whatever opens the file. In general I agree that most system access should only be allowed if its an actual user intent through the GUI or whatever. Obviously certain things might be granted exceptions, but the norm should be more restrictive.
- ghusto 1y ago> I've just launched the application I'd even have a special sub-criterion under this: The application may only take focus once it is _ready to actually use_. Slack is a prime example of how apps steal focus multiple times during startup: I start the app, cmd+tab to something else whilst I'm waiting, and it steals focus again at least 3 times before it's actually loaded and usable. You can have focus once I can actually do something, not to show me "HEY LOOK I'VE LOADED YET ANOTHER BLOATED COMPONENT!"
- zuminator 1y agoDetermining when an app is fully ready to actually use sounds like it might have Halting Problem issues?
- eliaspro 1y agoThe very fundamental problem is just, that the fact that the process/application/service has a PID/displays a window does not equal to the fact, that the service/application is ready to serve requests/the user. This is why there are protocols like sd_notify [1] or readinessProbe [2] to determine the actual state of the launched service/process/application. [1] https://www.freedesktop.org/software/systemd/man/254/sd_notify.html https://www.freedesktop.org/software/systemd/man/254/sd_noti... [2] https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#readiness-probe https://kubernetes.io/docs/concepts/configuration/liveness-r...
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- dagw 1y agoI've just launched the application Honestly even this is questionable. If a running app gets focus between me asking for the new app to launch and that app actually launching, I probably want the existing app that has focus to keep focus until I actively click on the window of the new app.
- nottorp 1y agoPowe user ish thing i guess, but i do start multiple applications without waiting for any launch to finish, and I'd love for the one I actually want to stay focused.
- ben0x539 1y agoI bet there's concerns with users who don't have a robust mental model of what applications/windows are currently alive or starting up or whatever just losing track of a window completely if it doesn't grab focus, and getting annoyed at programs seemingly failing to start up at all (because they only create a window hidden behind a newly focused window). One-size-fits-all woes I guess.
- carlosjobim 1y agoThere's a bounce animation with the application icon in the dock, and then there's a dot next to the icon to show that the application is open. That should be enough for all users.
- jackvalentine 1y agoBring back splash screens! If your application takes ages to open, throw up a nice little title card.
- eviks 1y agoCorrect, so the launch token should get invalidated when the user breaks the figurative focus queue by changing focus
- mrob 1y agoI think it's unreasonable for any app to be so slow to launch that this matters. Modern SSDs have 7000MB/s or more read speeds. Assuming a ridiculously bloated app of 100MB, that's enough to load the whole thing into RAM in less than a frame at the most common monitor refresh rate. The only explanation for slow load times on modern hardware is bad software.
- deleted 1y ago[deleted]