Bad prefs that I'm planning on dropping

Mike Hearn mike at
Mon Sep 15 07:58:31 CDT 2003

OK, so here is a basic list of settings that I can't be bothered doing
UI for in winecfg.

Before I start, I think I should make one thing clear - ultimately I
believe winecfg should be removed entirely. Looking at the settings in
the wine configuration really rams home how many simply should not be
configurable by the user at all.

Back during the 90s when the only people using Wine were happy and
comfortable with computers, it was A-OK to have settings like "Use XSHM
extension" and assume the users knew what it meant, or if they didn't,
that they wouldn't fiddle with it to see what it did.

But, Linux is changing, and we can't assume that sort of thing anymore.
Worse, a lot of these settings could simply be autodetected, or are so
obscure that the defaults would always suffice (we can auto detect the
presence of XSHM, so why would you need to disable it?).

Unfortunately, writing auto detect code is quite hard, a bit boring etc,
so for now that'd have to be a long term project. Ultimately there's no
reason why Wine should have to be configured at all - in the ideal world
it would just get on with it, and the user doesn't have to think about
it, maybe they don't even have to know what Wine is, in much the same
way that users don't have to know what glibc or XFree is in order to use
the latest distros.

So, here's a quick hit list for now:

* XSHM - can be autodetected, 99.9% of Wines users use XFree, which
supports it.

* Use DGA - enabling it apparently breaks wines keyboard input,
rendering most games useless (and it's usually used for games).
Difficult to know when to enable it short of trying.

* Perfect Graphics - controls the use of optimized raster ops. What
difference it makes in practice appears to be unknown.

* Allocated system colors - in fact we still have UI for this in the
latest version of the code, but I'm not sure what it's for, or what the
best value is, I chose a default of 100 because that is what I happened
to have in my config file

* Private Color Map - the description for this setting is not helpful,
"Use a private color map". I have no idea what this does, or what effect
it'd have, so end users are probably just as clueless.

* Synchronous mode - would this be better implemented as a command line
switch? For most people who cannot debug problems in the Wine x11drv, it
would just slow things down for no apparent reason. For those who can,
it's easy to tell people to run wine with the --sync option, for
instance, or do "export WINE_SYNCHRONOUS=1"

* TextCP - description is "Code page used for captions in managed mode",
which is fine, the problem is that there are no pointers to available
codes and what they mean, other than zero meaning ANSI. Why can't this
be auto detected? How do we explain how to set it?

* XVideoPort - wow, this one is obscure. What is a video port when it's
at home? Isn't that something X should take care of?

* Use XRender/antialias control - this stuff should be controlled by
fontconfig, there's no need to dupe settings here.

All of them. The defaults seem sane enough:

;These are all booleans.  Y/y/T/t/1 are true, N/n/F/f/0 are false.
;Defaults are read all, write to Home
; Where to find the global registries
;"GlobalRegistryDir" = "/etc";
; Global registries (stored in /etc)
"LoadGlobalRegistryFiles" = "Y"
; Home registries (stored in ~user/.wine/)
"LoadHomeRegistryFiles" = "Y"
; Load Windows registries from the Windows directory
"LoadWindowsRegistryFiles" = "Y"
; TRY to write all changes to home registries
"WritetoHomeRegistryFiles" = "Y"
; Registry periodic save timeout in seconds
; "PeriodicSave" = "600"
; Save only modified keys
"SaveOnlyUpdatedKeys" = "Y"

Is there ever a reason why a user would want to change these? The last
one in particular seems rather arcane - why would anybody want Wine to
flush unchanged keys? Some of the global vs home stuff might be useful
for administrators or packagers, but they should be OK with using a
premade registry file and merging it in.

I played around with these when I first started using Wine, and couldn't
really figure out what they changed. Does this affect app compatability?
Why would a user not want the latest layout?

>From the names it's only vaguely clear what they do - the defaults have
always worked well for me, can anybody provide good use cases for when
they need to be altered?

That leaves the following things as user configurable, though really
they probably shouldn't be one day:

* Drive setup - I want to write some autodetect code for this, but I
doubt people will want to have always autodetected anytime soon.

* DSound - I can't understand any of these settings, but apparently they
can't be easily autodetected???

* Ports setup - I don't know anything about these. They feel like we
should be able to autodetect them, but I don't know how.

* Debug - obviously, this has to be set by a human. But is a gui the
best place? Perhaps have a switch to winecfg that enables the tab for
"developer mode"?

* Windows version. Well, real Windows users don't get to choose this :)
Unfortunately while Wine is still imperfect, sometimes altering this can
make things come good, so it's optional only in theory.

* DLL overrides - ditto. Smarter defaults can't hurt here, for instance
we have MSI only as stubs but we default to them anyway, which is dumb.
As it is, some programs that saw the lack of MSI before and offered to
helpfully install it, now crash :(

* Desktop/managed mode. Well, desktop mode is maybe a pref for strange
people (*cough*lionel*cough* ;), and managed mode is something that
still must be sometimes tweaked for each app. Long term this could
probably be made automatic so the user can just stick with
managed/no-desktop by default and we select the right one as needed.

I've probably missed some. Also, you may feel that a setting I marked as
unnecessary, may actually be needed. If so, please tell me why *with
reasoned arguments*, not just "well I happen to like tweaking that" or
"application X needs it to be set". If a whole load of applications need
it to be tweaked one way or the other then maybe, but really that's a
bug and we should fix it....

thanks -mike

More information about the wine-devel mailing list