https://bugs.winehq.org/show_bug.cgi?id=49674
Bug ID: 49674 Summary: Feature Request: Restoring previous resolution upon an app crashing Product: Wine Version: unspecified Hardware: Other OS: other Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: s.maddox@lantizia.me.uk
So this has been a bit of a bug of mine with Wine for a while, but you may think it's not really a problem Wine should deal with - which may be a fair point.
But I couldn't find anything clearly asking for this as a feature request... so lets see how well it fairs.
# The problem
Lets say you open up a Windows executable which changes your screens resolution (e.g. a game) and it either... a) freezes b) is broken enough that its UI (if any appears) can't be used to nicely ask it to quit c) crashes and quits differently to how it'd normally do so upon user request
With a) and b) you likely need to kill that process, which ultimately leaves you in the same situation as c).
But however it happens... you're likely to find your resolution now stuck to whatever it set. If that is an incredibly low resolution (like 320x240 or 640x480)... then with the desktop environment of today (especially with HiDPI) you're likely going to struggle finding the proper option to fix it. Worse you might resort to a terminal (or switch TTY) and mess around with the xrandr command for a stupid amount of time trying to find the names of screens and such.
# Expected Behaviour
Well I'm not sure what actually does this. But in actual Windows (e.g Windows 10), when this same circumstance occurs... the resolution is always restored back to what it was. This leaves me to believe that Windows itself has something for this eventuality.
# Research
Well I've been searching around for solutions to this one for years and the best I always come across... is someone saying you're better off with a script (usually calling xrandr) mapped to a hot key or something for this eventuality. Which is fine if the number of displays you've got connected and their resolutions are always consistent... but often for laptop users moving between docks and such - it isn't.
A quick chat on the #winehq IRC channel had someone mention that Proton can now scale games to the resolution you're already using instead (when the app requests a resolution change)... and pointed out these patches...
https://github.com/GloriousEggroll/proton-ge-custom/blob/master/patches/prot... https://github.com/GloriousEggroll/proton-ge-custom/blob/master/patches/prot...
That's fine, and it's a welcome feature. But I do wonder if this is a universal fix for any request for any resolution change... regardless the age (and compatibility with which version of Windows it was meant for) of the game and the way it draws on the screen (e.g. SDL, OpenGL, DirectDraw, Vulkan, etc...).
However it *may* give some hope for people wanting to run older windowed-mode games from the early Win 3.1/95 era which refuse to be re-sized/re-scaled... but that's a topic for another feature request :)
# Conclusion
I've not got any.
Should this be the job of Wine to restore the prior resolution if the app/game fails to? Like Windows somehow does? Or is this something the OS (whatever that may be, Linux/macOS or even Windows) should be doing separately from Wine for any process?
Also if this is a dupe, feel free to mark it as such... I've looked and couldn't find anything that is quite so specific - at least with the points raised here.
Thoughts?