.\" -*- nroff -*-
.TH WINE.CONF 5 "December 5, 2000" "Version 20001202" "Wine Configuration File"
.SH NAME
wine.conf \- Wine configuration file
.SH DESCRIPTION
.B wine
expects a configuration file (
.I @sysconfdir@/wine.conf
), which should conform to the following rules. Common locations are
/usr/local/etc/wine.conf or (in some distributions)
/etc/wine.conf. The actual directory where that file resides may be
specified during the execution of the
.B configure
script with the --sysconfdir option. Alternatively, you may have a
file named
.I config
in this format in your ~/.wine directory or in the directory named in
the
.B WINEPREFIX
environment variable.  A sample configuration file is available as
.I documentation/samples/config
in the Wine source distribution.
.SH CONFIGURATION FILE FORMAT
All entries 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 ${}.
Inside the double quotes, special characters, backslashes and quotes
must be escaped with backslashes. Supported section names and entries
are listed below.
.PP
.B [Drive X]
.br
This section is used to specify the root directory and type of each
.B DOS
drive, since most Windows applications require a DOS/MS-Windows based 
disk drive & directory scheme. There is one such section for every
drive you want to configure.
.PP
.I format: """Path""=""<rootdirectory>"""
.br
default: none
.br
If you mounted your dos partition as 
.I /dos
and installed Microsoft Windows in 
C:\\WINDOWS then you should specify 
.I """Path""=""/dos"""
in the
.I [Drive C]
section.
.PP
.I format: """Type""=""<type>"""
.br
default: "hd"
.br
Used to specify the drive type this drive appears as in Windows
or DOS programs; supported types are "floppy", "hd", "cdrom"
and "network".
.PP
.I format: """Label""=""<label>"""
.br
default: "Drive X"
.br
Used to specify the drive label; limited to 11 characters.
.PP
.I format: """Serial""=""<serial>"""
.br
default: "12345678"
.br
Used to specify the drive serial number, as an 8-character hexadecimal
number.
.PP
.I format: """Filesystem""=""<fstype>"""
.br
default: "win95"
.br
Used to specify the type of the file system Wine should emulate on a given
directory structure/underlying file system.
.br
Supported types are "msdos" (or "fat"), "win95" (or "vfat"), "unix".
.br
Recommended:
.br
  "win95" for ext2fs, VFAT and FAT32
.br
  "msdos" for FAT16 (ugly)
.br
You definitely do not want to use "unix" unless you intend to port
programs using Winelib.  Always try to avoid using FAT16. Use the
VFAT/FAT32 OS file system driver instead.
.PP
.I format: """FailReadOnly""=""<boolean>"""
.br
Read-only files may not be opened in write mode (the default is to
allow opening read-only files for writing, because most Windows
programs always request read-write access, even on CD-ROM drives...).
.PP
.B [wine]
.br
.I format: """windows""=""<directory>"""
.br
default: "C:\\\\WINDOWS"
.br
Used to specify a different Windows directory; make sure to double the
backslashes.
.PP
.I format: """system""=""<directory>"""
.br
default: "C:\\\\WINDOWS\\\\SYSTEM"
.br
Used to specify a different system directory; make sure to double the
backslashes.
.PP
.I format: """temp""=""<directory>"""
.br
default: "C:\\\\TEMP"
.br
Used to specify a directory where Windows applications can store 
temporary files.
.PP
.I format: """profile""=""<directory>"""
.br
default: nothing
.br
Used to specify a directory where Windows stores special folders and
the user-registry files (user.dat or ntuser.dat).  Mapped to
environment variable %USERPROFILE%.  Set this value when running with
a native NT or a native win95 directory with per-user settings.
.PP
.I format: """path""=""<directories separated by semi-colons>"""
.br
default: "C:\\\\WINDOWS;C:\\\\WINDOWS\\\\SYSTEM"
.br
Used to specify the path which will be used to find executables and
dlls. Make sure to double all the backslashes.
.PP
.B [DllDefaults]
.br
.I format: """EXTRA_LD_LIBRARY_PATH""=""@prefix@/lib/wine[:/more/path/to/search[:...]]"""
.br
The path will be appended to any existing LD_LIBRARY_PATH from the 
environment for the search of .so libraries.
.PP
.I format: """DefaultLoadOrder""=""native,so,builtin"""
.br
A comma separated list of module-types to try to load in that specific
order. The DefaultLoadOrder key is used as a fallback when a module is
not specified explicitely. If the DefaultLoadOrder key is not found, 
then the order "native,builtin,so" is used.
.br
Case is not important and only the first letter of each type is enough
to identify the type n[ative], s[o], b[uiltin]. Also whitespace is
ignored. See also commandline option
.I --dll
for details about the allowable types.
.PP
.B [DllOverrides]
.br
There are no explicit keys defined other than module/library names. A
module namd is followed by an assignment of the load order for this
specific module. See above for possible types. You should not specify
an extension.
.br
Examples:
.br
.I """kernel32""=""builtin"""
.br
.I """kernel""=""builtin"""
.br
.I """comdlg32""=""native, builtin"""
.br
.I """commdlg""=""native, builtin"""
.br
Changing the load order of kernel/kernel32 and gdi/gdi32 to
anything other than builtin will cause wine to fail because wine cannot
use native versions for these libraries (gdi[32] might work native someday,
but kernel[32] will never work native).
Note that using the native versions of user[32] isn't recommended right now,
as these modules face nearly the same problems as kernel/gdi and we only
just managed to make them work partially. But trying to use it might get
your program running.
.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.
.PP
.B [serialports]
.br
.I format: """com[12345678]""=""<devicename>"""
.br
default: none
.br
Used to specify the devices which are used as COM1 - COM8.
.PP
.B [parallelports]
.br
.I format: """lpt[12345678]""=""<devicename>"""
.br
default: none
.br
Used to specify the devices which are used as LPT1 - LPT8.
.PP
.B [spy]
.br
.I format: """exclude""=""<message names separated by semicolons>"""
.br
default: none
.br
Used to specify which messages will be excluded from the logfile.
.PP
.I format: """include""=""<message names separated by semicolons>"""
.br
default: none
.br Used to specify which messages will be included in the logfile.
.PP
.B [Tweak.Layout]
.br
.I format: """WineLook""=""<Win31|Win95|Win98>"""
.br
default: "Win31"
.br 
Use Win95-like window displays or Win3.1-like window displays.
.PP
.B [Registry]
.br
.I format: """LoadGlobalRegistryFiles""=""<boolean>"""
.br
Global registries (stored in /etc)
.PP
.I format: """LoadHomeRegistryFiles""=""<boolean>"""
.br
Home registries (stored in ~user/.wine/)
.PP
.I format: """WritetoHomeRegistryFiles""=""<boolean>"""
.br
TRY to write all changes to the home registry files
.PP
.I format: """LoadWindowsRegistryFiles""=""<boolean>"""
.br
Load Windows registry from the current Windows directory. 
.PP
booleans: Y/y/T/t/1 are true, N/n/F/f/0 are false.
.br
Defaults are read all, write to home files.
.PP
.SH SAMPLE CONFIGURATION FILE
A sample configuration file is distributed as
.B documentation/samples/config
in the Wine source distribution.
.SH FILES
.TP
.I @sysconfdir@/wine.conf
Global configuration file for wine.
.TP
.I ~/.wine/config
User-specific configuration file
.SH ENVIRONMENT VARIABLES
.TP 
.I WINEPREFIX
Specifies the directory that contains the per-user
.I config
file, the registry files, and the wineserver socket. The default is
.I $HOME/.wine.
.SH "SEE ALSO"
.BR wine (1)
