Future of .wine/config

Mike Hearn m.hearn at signal.qinetiq.com
Thu Aug 12 05:18:44 CDT 2004

> Although this increases simplicity, it also narrows the user in his
> possiblities to adjust wine to his needs.

How many options in the config file do you adjust? I mean, really, 
options like:

* PerfectGraphics: what does this do? Hands up anybody who can tell me 
without grepping the source. How many people set it?

* DesktopDoubleBuffer: This is "necessary" only until the WM rewrite is 
complete, at that point we can make the right choice on the fly 
depending on the applications requests instead of requiring the user to 
somehow know what it is and how to set it.

* UseTakeFocus: I never did find out what this is :)

etc etc. There are a lot of options in there that are "bogus" options, 
the user cannot know how to set them correctly without a god-like 
understanding of the Wine/Windows/X11 internals. These are what I am 
referring to when I say we are removing them.

Options like your drive mappings, what Windows version to emulate (as 
our heuristics often get this wrong) and whether to use desktop mode are 
being left in. Though actually the plan for desktop mode is to 
(eventually, I hope) integrate AJ Pasydns patch to make it a separate 
app so you can run "winedesktop foobar.exe" if you want to swallow it in 
a desktop.

> To take away configuration options from the user seems to be a trend within
> the wine developers' community ;-) Why do you do this? Wine users are Linux
> users (although they run Windows applications). They _want_ to be able to
> configure their software to the limit (while at the same time being able to
> install a package and start working - but this is no contradiction!).

It's a trend within the whole open source community really, because 
people woke up and realised that our software was full of stupid options 
  where the cost outweighed the gain (or as is the case with Wine, where 
even the developers no longer knew what they did!).

> In fact I try to do as much work as I can within a terminal. If I have the
> (reasonable) choice between GUI and TUI, I choose TUI (and I'm not an old
> Linux guru). 

That's fine, so edit the reg files with emacs or whatever.

> 1. It has to be written. While a developer writes winecfg, he could also
> hack wine and improve it.

Yes, but ease of use does take time ....

> 2. It has to maintained. Whenever there is a new option, winecfg has to be
> updated.

No. Whenever there is a new option it should have a smart default and 
really Wine is not something users should interact with directly. It 
should Just Work and be invisible in the background.

They interact with their applications. Very, very few options should be 
exposed to the user - most of our current options are covering up for 
the fact that Wine sometimes doesn't have enough information to make the 
right decision on a per-app basis (or that we can't know at runtime). 
With smart coding most of these bugs can be fixed so Wine makes the 
decision for the user (and is always right).

> 3. It has to be documented as well as config file has to be documented. So
> this is no pro for winecfg.

Most config file options are currently undocumented anyway, and many are 
very tricky to explain even if they were documented.

> 4. It narrows choices. If the user wants some unusual config, he will have
> to edit the registry files manually. This problem already appears at the
> very beginning with wineinstall: If I don't want to install wine in
> /usr/local but in /home/addy/wine (because wine changes so often that it's
> easier and more secure not to have to be root every time I update it), I
> have to edit wineinstall. (wineinstall is just an example of the overall
> trend)

Well you can always use the graphical regedit tool. This was a 
requirement for 0.9 for exactly this reason.

Wineinstall is not meant for users like you, it's meant to be a single 
"install me" command. If you want to control the defaults just do what 
you'd normally do:

./configure --prefix=/whatever && make depend && make install

That's all there is to it these days.

> It has 
> one BIG advantage also, namely that we can write a graphical editor for 
> it! It's really hard to do that with the current config file even though 
> they have the same syntax.
> Why (just curious)?

The code to load/save/lock/read registry files is already written and is 
well tested. That's why the config file is internally accessed via the 
registry APIs in Wine (though I sometimes wish it wasn't, the win32 
registry API is very awkward).

To do that for the config file whilst preserving comments, whitespace 
etc would be very difficult and require separate code.

> First you have to find all places containing wine's configuration. Then you
> have to copy/paste all those pieces and hope you didn't forget one ;-).

Not really, it's all under one branch. And you can use the graphical 
regedit tool (shipped as part of Wine) to do the export if you really want.

>>Importing becomes "regedit myconfig.reg".
> So you have to start wine in order to setup the configuration in order to
> start wine. Do you think this is a good way?

Sure. Like I said, I have been running with no config file for some 
months now -> no problem :)

Wine should not require configuration. Therefore if it needs a config 
file, we're doing something wrong!

More information about the wine-devel mailing list