.\" -*- nroff -*-
.TH WINE.CONF 5 "April 2004" "Version 20040408" "Wine Configuration File"
.SH NAME
wine.conf \- Wine configuration file
.SH DESCRIPTION
.B wine
expects a configuration file (
.I $WINEPREFIX/config
(~/.wine/config)
), which should conform to the following rules.
A sample configuration file is available as
.I documentation/samples/config
in the Wine source distribution.
.SH CONFIGURATION FILE FORMAT
The config file needs to start with the header line
.br
.I WINE REGISTRY Version 2
.br
to be recognized by
.B Wine.
.PP
All entries (excepting the header) are grouped in sections; a section
begins with the line
.br
.I [section name]
.br
and continues until the next section starts. Individual entries
consist of lines of the form
.br
.I """entry""=""value"""
.br
The entry and value can be any text strings, included in double
quotes; it can also contain references to environment variables
surrounded by
.I %
signs.
Inside the double quotes, special characters, backslashes and quotes
must be escaped with backslashes. Supported section names and entries
are listed below.
.PP
.B [wine]
.br
.I format: """GraphicsDriver""=""<x11drv|ttydrv>"""
.br
default: "x11drv"
.br
Tells Wine which graphics driver to use. Normally you'd want to use
x11drv (for X11). In case you want to run programs as text console/TTY only
without having Wine rely on X11 support, then use ttydrv.
.PP
.I format: """ShowDirSymlinks""=""<0|1>"""
.br
default: "0"
.br
Wine doesn't pass directory symlinks to Windows programs by default.
Enabling this may crash some programs that do recursive lookups of a whole
subdir tree in case of a symlink pointing back to itself.
.PP
.I format: """ShowDotFiles""=""<0|1>"""
.br
default: "0"
.br
Under Unix, files starting with a dot, are considered hidden,
and should not be shown in directory listing (unless explicitly asked for),
just like DOS-style hidden files. If you want them treated as regular
files, set this value to 1.
.PP
.B [Version]
.br
.I format: """Windows""=""<version string>"""
.br
default: none; chosen by semi-intelligent detection mechanism based on DLL environment
.br
Used to specify which Windows version to return to programs (forced value,
overrides standard detection mechanism !).
Valid settings are e.g. "win31", "win95", "win98", "win2k", "winxp".
Also valid as an AppDefaults setting (recommended/preferred use).
.PP
.I format: """DOS""=""<version string>"""
.br
default: "<Windows version specific>"
.br
Used to specify the DOS version that should be returned to programs.
Only takes effect in case Wine acts as "win31" Windows version !
Common DOS version settings include 6.22, 6.20, 6.00, 5.00, 4.00, 3.30, 3.10.
Also valid as an AppDefaults setting (recommended/preferred use).
.PP
.B [DllOverrides]
.br
.I format: """modulename""=""native,builtin"""
.br
.I modulename
can be any valid DLL module name. If no extension is specified .dll is
assumed. The specified value is a comma separated list of module-types
to try to load in that specific order. Case is not important and only
the first letter of each type is enough to identify the type n[ative]
or b[uiltin]. Also whitespace is ignored. See also the description of
the
.I WINEDLLOVERRIDES
environment variable in
.BR wine (1)
for details about the allowed types.
.br
The wildcard entry
.I """*"""
specifies the load order to use for modules not explicitly
mentioned. If the wildcard entry is not found, then the order
"native,builtin" is used.
.br
Examples:
.br
.I """kernel32""=""builtin"""
.br
.I """comdlg32""=""native,builtin"""
.br
.I """*""=""builtin,native"""
.br
When the specified module name does not contain a path, it matches
only dlls loaded from the Windows system directory. If the application
explicitly loads a dll from a different directory, it has to be
configured separately. This can be done either by specifying the full
path in the module name, or by using a path wildcard of the form
.I """*modulename""".
.br
For instance, the following will load the native shell32 when loaded
from C:\\Program Files, and the builtin when loaded from any other
directory:
.br
.I """C:\\\\\\\\Program Files\\\\\\\\shell32"" = ""native"""
.br
.I """*shell32"" = ""builtin"""
.br
Changing the load order of low-level dlls like kernel32, gdi32 or
user32 to anything other than builtin will cause wine to fail because
wine cannot use native versions for these libraries.
.br
Always make sure that you have some kind of strategy in mind when you start
fiddling with the current defaults and needless to say that you must know
what you are doing.
WINEDEBUG=loaddll might come in handy for experimenting with that stuff.
.PP
.B [Debug]
.br
.I format: """SpyExclude""=""<message names separated by semicolons>"""
.br
default: none
.br
Used to specify which messages will be excluded from the logfile.
.PP
.I format: """SpyInclude""=""<message names separated by semicolons>"""
.br
default: none
.br Used to specify which messages will be included in the logfile.
.PP
.I format: """RelayFromExclude""=""<module names separated by semicolons>"""
.br
default: none
.br
Used to specify a set of modules whose calls are excluded from a relay debug log.
.PP
.I format: """RelayFromInclude""=""<module names separated by semicolons>"""
.br
default: include all modules
.br 
Used to specify the set of modules whose calls are included in a relay debug log.
.PP
.I format: """RelayExclude""=""<functions or dll.functions separated by semicolons>"""
.br
default: none
.br
Used to specify which functions will be excluded from a relay debug log.
.PP
.I format: """RelayInclude""=""<functions or dll.functions separated by semicolons>"""
.br
default: include all functions
.br 
Used to specify which functions will be included in a relay debug log.
.PP
.I format: """SnoopExclude""=""<functions or dll.functions separated by semicolons>"""
.br
default: none
.br 
Used to specify which functions will be excluded from the snoop debug log.
.PP
.I format: """SnoopInclude""=""<functions or dll.functions separated by semicolons>"""
.br
default: include all functions
.br 
Used to specify which functions will be included in the snoop debug log.
.PP
For Relay and Snoop <dllname>.* includes or excludes the whole dll. Exclude
entries have priority over Include entries.
.PP
.B [Network]
.br
.I format: """UseDnsComputerName""=""<boolean>"""
.br
If Y, always override the registry setting for ComputerName
with the Unix hostname.
.PP
.B [AppDefaults\\\\\\\\<appname>\\\\\\\\...]
.PP
This section allows specifying application-specific values for
the other sections described above.
.I <appname>
is the name of the application exe file, without path. The "..."
should be replaced by the name of one of the above configuration
sections.
.br
Example:
.br
.I [AppDefaults\\\\\\\\sol.exe\\\\\\\\DllOverrides]
.br
.I """shell32""" = """native"""
.br
means that Solitaire will use "native" load order for the shell32
dll. All other applications will continue to use what was specified in
the general
.I DllOverrides
section.
.br
The only sections that support application-specific information at the
moment are
.I DllOverrides, dsound, Version
and
.I x11drv.
.br
Make sure to use double backslashes in the section name.
.PP
.SH SAMPLE CONFIGURATION FILE
A sample configuration file is distributed as
.B documentation/samples/config
in the Wine source distribution.
.SH ENVIRONMENT VARIABLES
.TP
.I WINEPREFIX
Specifies the directory that contains the per-user
.I config
file, the registry files, and the DOS device mappings. The default is
.I $HOME/.wine.
.SH FILES
.TP
.I $WINEPREFIX/config
User-specific configuration file
.SH "SEE ALSO"
.BR wine (1)
