Useful Registry Keys

Users should never have to play with the registry. That said, sometimes there's no other way to do what you need to do...

For a description of the registry, see the Wine User Guide or Wikipedia.

Here you'll find useful registry keys that cannot be changed in winecfg. You should edit the registry using regedit. In older Wine versions (pre 1.0), wineprefixcreate needs to be run after updating Wine, in order to update the registry as well.

{i} If a key or value does not exist, create it. All values are strings (REG_SZ) unless stated otherwise.

To create a new key if it does not exist:

  1. In a terminal, type wine regedit and hit enter

  2. Open the tree on the left to the section where you need to add it (e.g., HKEY_CURRENT_USER\Software\Wine)
  3. Select the section you are going to add the new key to (e.g., Wine)
  4. Right click and select New->Key

  5. Type the name of the new key (taken from the list below)
  6. Hit enter

I'll try to keep this list accurate but you might want to check it against current Wine source code (for Wine related keys that is): $ find . -exec grep "@@" {} \; | grep registry

In the following +- means key and +-> means value.

HKEY_CURRENT_USER (a.k.a HKCU)

|
+-Software
   |
   +-Wine
      |
      +-AppDefaults
      |  |
      |  +-*<app.exe>
      |       [Application specific defaults. Replace app.exe with the name of the
      |        application you want to override defaults for. And use the same subtrees
      |        as the Wine subtree (i.e. DllOverrides, X11 Driver, etc.).]
      |
      +-Debug
      |  |
      |  +->RelayExclude
      |  |   [Use this key to exclude some calls from the (overwhelming) +relay debug logging. Example:
      |  |    "RelayExclude"="ntdll.RtlEnterCriticalSection;ntdll.RtlLeaveCriticalSection"]
      |  |
      |  +->RelayFromExclude
      |  |   [Exclude calls made from listed dlls in the the +relay debug log. Example:
      |  |    "RelayFromExclude"="kernel32" - omit all calls made from kernel32.dll]
      |  |
      |  +->SpyExclude
      |  |   [Exclude listed messages from the +message debug log. Example:
      |  |    "SpyExclude"="WM_TIMER;WM_MOUSEMOVE;WM_PAINT"]
      |  |
      |  +->SpyInclude
      |      [Include only listed messages in the +message debug log. Example:
      |       "SpyInclude"="WM_CREATE"]
      |
      +-Direct3D
      |  |
      |  +->AlwaysOffscreen
      |  |   [Use offscreen rendering for all render targets. The main effect this has is
      |  |    avoiding the depth buffer copy between offscreen and onscreen targets, which
      |  |    introduces fallbacks in some drivers and exposes bugs in others. There may be a
      |  |    performance hit depending on the specific driver.  Enabled by default since wine-1.5.10; set to "disabled" to disable.]
      |  |
      |  +->DirectDrawRenderer
      |  |   [Select what backend to use for ddraw. Valid options are:
      |  |        gdi - Use GDI to draw on the screen
      |  |        opengl - Use OpenGL (default)
      |  |    The "gdi" option mostly exists for legacy reasons. Aside from bugs in the GL
      |  |    renderer, only change this if you have a setup without OpenGL. Installing a software
      |  |    GL implementation is the preferred solution in that case though.]
      |  |
      |  +->MaxShaderModelGS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for geometry shaders.
      |  |    Set to 0 to disable support for geometry shaders.]
      |  |
      |  +->MaxShaderModelPS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for pixel shaders.
      |  |    Set to 0 to disable support for pixel shaders.]
      |  |
      |  +->MaxShaderModelVS
      |  |   [DWORD Value (REG_DWORD): Limit the maximum supported shader model for vertex shaders.
      |  |    Set to 0 to disable support for vertex shaders.]
      |  |
      |  +->Multisampling
      |  |   [Set to "disabled" to prevent applications from seeing Wine's multisampling support.
      |  |    This is another legacy option that will most likely disappear at some point. There
      |  |    should be no reason to set this.]
      |  |
      |  +->OffscreenRenderingMode
      |  |   [Select the offscreen rendering implementation.
      |  |        backbuffer - Render offscreen render targets in the backbuffer
      |  |        fbo - Use framebuffer objects for offscreen rendering (default)]
      |  |
      |  +->RenderTargetLockMode
      |  |   [Selects which mode is used for mapping onscreen render targets.
      |  |        disabled - Effectively disables render target locking
      |  |        readdraw - Uses glReadPixels for reading, glDrawPixels for writing
      |  |        readtex - Reading with glReadPixels, writing by drawing a textured quad (default)]
      |  |
      |  +->StrictDrawOrdering
      |  |   [This option ensures any pending drawing operations are submitted to the driver, but at
      |  |    a significant performance cost. Set to "enabled" to enable.]
      |  |
      |  +->UseGLSL
      |  |   [When set to "disabled", this disables the use of GLSL for shaders.
      |  |    In general disabling GLSL is not recommended, only use this for debugging purposes.]
      |  |
      |  +->VideoMemorySize
      |  |   [Sets the amount of reported video memory (in megabytes). The default is a simple
      |  |    auto-detection based on the card type guessed from OpenGL capabilities.]
      |  |
      |  +->VideoPciDeviceID
      |  |   [DWORD Value (REG_DWORD): sets the pci device id of the video card. See next value.]
      |  |
      |  +->VideoPciVendorID
      |      [DWORD Value (REG_DWORD): sets the pci vendor id of the video card. By default Wine estimates
      |       these values based on OpenGL info but this doesn't work well in all cases. If you want to
      |       override our estimates check the output of e.g. lspci -n on Linux. For a video card this
      |       could show 05:00.0 0300: 10de:0402 (rev a1). In this result 0x10de (Nvidia) is the pci vendor
      |       id and '0x0402' (Geforce 8600GT) is the pci device id. The '0x0300' means video card.]
      |
      +-DirectInput
      |  |
      |  +->MouseWarpOverride
      |  |   [Override default mouse pointer warping behavior:
      |  |    enable:  (default) warp pointer when mouse exclusively acquired
      |  |    disable: never warp the mouse pointer
      |  |    force:   always warp the pointer]
      |  |
      |  +->*<joystick name> = <axes mapping>
      |  |   [This maps axes of joystick "joystick name". The "axes mapping" is
      |  |    comma-separated list of "axis type"s - one for each joystick axis (hat-pov uses 2 axes).
      |  |    "axis type" is one of: X, Y, Z, Rx, Ry, Rz, Slider1, Slider2, POV1, POV2, POV3, POV4.
      |  |    To find the joystick name run
      |  |    'WINEDEBUG=+dinput wine game.exe 2>&1 | grep joydev_enum_device'
      |  |    Example output: trace:dinput:joydev_enum_deviceW Enumerating the linux Joystick device: /dev/input/js0 (Logitech Logitech Dual Action)
      |  |    Example registry entry: "Logitech Logitech Dual Action"="X,Y,Rz,Slider1,POV1". (two "Logitech"s not a typo)]
      |  |
      |  +->DefaultDeadZone
      |  |   [Sets a default value for every joystick axis dead zone. Should be a value between 0 and 10000.
      |  |    The value represents the percentage of the axis which will seen as dead (applications will think of it as being centered).
      |  |    For example 3000 will extend the dead zone to only the first 30% of the axis, while 0 will use the whole axis extension.]
      |  |
      +-DirectSound
      |  |
      |  +->HelBuflen
      |  |
      |  |  Hel buffer length - default is 65536
      |  |
      |  +->SndQueueMax
      |  |
      |  |  Maximum sound queue - default is 10
      |  |
      |  +->DefaultSampleRate
      |  |
      |  |  Sampling rate to use. Default is 44100
      |  |
      |  +->DefaultBitsPerSample
      |   
      |     How many bits to use per sample. Default is 16.
      |
      +-Drivers
      |  |
      |  +->Audio
      |  |    Which audio backend to use. Should be a string such as "alsa" or "oss" or "coreaudio".
      |  |    Set to the empty string to disable audio entirely. Given a comma-separated list of
      |  |    drivers, Wine will attempt to make the most appropriate choice.
      |  |
      |  +-winealsa.drv
      |  |  |
      |  |  +->ALSAOutputDevices (REG_MULTI_SZ, "Multi String Value")
      |  |  |    A list of auxiliary output devices, not enumerated by ALSA's hardware enumeration
      |  |  |    methods. For example, you might put software devices here.
      |  |  |
      |  |  +->ALSAInputDevices (REG_MULTI_SZ, "Multi String Value")
      |  |       A list of auxiliary input devices, not enumerated by ALSA's hardware enumeration
      |  |       methods.
      |  |
      |  +->Graphics
      |       Which graphic driver to use. Currently only useful on Mac.
      |       mac: Use the native quartz driver (default)
      |       x11: Use the X11 driver
      |
      +-Explorer
      |  |
      |  +->Desktop
      |  |    The name of the Desktop to use. Should be a string such as "Default".
      |  |    You also can choose a Desktop giving it's name to the explorer.exe command line.
      |  |
      |  +-Desktops
      |     |
      |     +->*
      |          Should be a string such as "1024x768" or "1400x1050" that specifies the size of the virtual Desktop
      |
      +-Fonts
      |  |
      |  +-Replacements
      |  |  |
      |  |  +->*<font name> = <replacement font name>
      |  |      ["Wingdings"="Winedings" would enumerate the Winedings font both as Winedings and
      |  |       Wingdings. However if a real Wingdings font is present the replacement does not
      |  |       take place.]
      |  |
      |  +-ExternalFonts
      |     |
      |     +->*<font name>
      |         [ExternalFonts has a list of font names whose
      |          values are the name of the actual font]
      |
      +-Mac Driver
      |  |
      |  +->AllowVerticalSync
      |  |   [Set to "n" to disable vsync support.]
      |  |
      |  +->CaptureDisplaysForFullscreen
      |  |   [Set to "y" to capture the displays when a full-screen window is presented even if
      |  |    the resolution hasn't been changed. Capturing the displays disables hot corners.]
      |  |
      |  +->UsePreciseScrolling
      |  |   [Set to "n" to emulate a "clicky" mouse wheel. Some programs react badly, usually
      |  |    by scrolling too far, when they get many small scroll wheel events.]
      |  |
      |  +->WindowsFloatWhenInactive
      |      [Controls whether Win32 "TOPMOST" windows stay in front of other apps even when the
      |       Wine process is in the background. Set to "none" to prevent windows from floating
      |       when in the background. Set to "all" to have all TOPMOST windows float. Set to
      |       "nonfullscreen" (the default) to let TOPMOST windows float unless they cover the screen.]
      |
      +-MSHTML
      |  |
      |  +->GeckoPath
      |  |   [Path to the where Gecko engine is installed. Example: "c:\Program Files\wine_gecko".]
      |  |
      |  +->GeckoUrl
      |      [This is the url to the Wine Gecko required by MSHTML.
      |       Default is http://source.winehq.org/winegecko.php.
      |       You can change it to a local file like file://Z:\path\to\wine_gecko.cab
      |       so you don't need to redownload it each time you create a new wineprefix.]
      |
      +-Network
      |  |
      |  +->UseDnsComputerName
      |      [Set to N if you need a persistent NetBIOS ComputerName that possibly
      |       differs from the Unix host name. You'll need to set ComputerName in
      |       HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName]
      |
      +-OpenGL
      |  |
      |  +->DisabledExtensions
      |      [Space separated list of OpenGL extensions that are not reported to applications.
      |       Example: "GL_ARB_vertex_buffer_object GL_ATI_fragment_shader".]
      |
      +-Printing
      |  |
      |  +->PPD Files
      |  |  |  [When CUPS does not find any printers (Wine compiled without CUPS,
      |  |  |   libcups not loadable or required functions not found in libcups),
      |  |  |   then this key must exist to use your printers from "/etc/printcap"]
      |  |  |
      |  |  +->*<printer name> = <PPD File with full Unix path>
      |  |  |    [If no value with the name "PPD file" is found in the registry in
      |  |  |     the settings for a printer ("<printer name>\\PrinterDriverData"),
      |  |  |     then this key is tried next.]
      |  |  |
      |  |  +->"generic" = <the default PPD file with full Unix path>
      |  |        [This PPD file is used when every other key has failed.
      |  |         "wineps.drv" needs a PPD file for every printer.]
      |  |
      |  +->Spooler
      |     |  [You can redirect any printer port to a Unix file or pipe it to a
      |     |   Unix application. This is also useful when a Windows program has
      |     |   disabled the "Redirect to File" option in the Print dialog.]
      |     |
      |     +->*<portname> = <unixfile or "|unix_application">
      |         [All printers with the given portname can be redirected.
      |          Example of unixfile: "LPT1:" = "/tmp/printer_data.ps"
      |          Example of pipe: "LPR:Print with KDE" = "|kprinter" ]
      |
      +->Version
      |   [This is the version of Windows Wine will report.
      |    Values: vista, win2003, winxp, win2k, winnt, winme, win98, win95, win31.]
      |
      +-VDM
      |  |
      |  +-ppdev
      |     |
      |     +->*<port_number> = </dev/parportN>
      |         [This sets mapping between port_number and /dev/parportN device.
      |           For example  "378  /dev/parport0".]
      |
      +-WineBrowser
      |  |
      |  +->Browsers
      |  |   [List of browsers that Wine will attempt to launch when running winebrowser
      |  |    command or clicking on a link in a Windows application. Default value is
      |  |    xdg-open,firefox,konqueror,mozilla,netscape,galeon,opera,dillo]
      |  |
      |  +->Mailers
      |      [List of mail clients that Wine will attempt to launch when running winebrowser
      |       Default value is xdg-email,mozilla-thunderbird,thunderbird,evolution]
      |
      +-WineDbg
      |  |
      |  +->BreakOnFirstChance
      |  |   [DWORD value. Set this to "0" to let applications handle exceptions themselves.
      |  |    winedbg then only catches exceptions that are not handled by the app,
      |  |    which makes debugging a bit easier.
      |  |    Default value is "1" (enabled)]
      |  |
      |  +->ShowCrashDialog
      |      [DWORD value. Set this to "0" to disable the GUI crash dialog.
      |       Default value is "1" (enabled)]
      |
      +-X11 Driver
         |
         +->ClientSideGraphics
         |   [Set this to "N" if you don't want to use the Dib engine to render client side windows]
         |
         +->ClientSideWithRender
         |   [Set this to "N" if you don't want to use the Render extension to render client side fonts]
         |
         +->ClientSideAntiAliasWithRender
         |   [Set this to "N" to disable font anti-aliasing when X-Render extension is present]
         |
         +->ClientSideAntiAliasWithCore
         |   [Set this to "N" to disable font anti-aliasing when X-Render extension is not present
         |    or disabled]
         |
         +->Desktop (removed as of 2012-10-22. see Explorer->Desktops)
         |   [This key is set to the size (resolution) when you are using the
         |    "Emulate a virtual desktop"-option in winecfg.
         |     The value is used as is (if not "n", "f" or "0") for the X11 geometry.]
         |
         +->GrabFullscreen
         |   [Set this to "Y" to force full-screen windows to capture the mouse.]
         |
         +->GrabPointer
         |   [Set this to "N" to disallow mouse capture.]
         |
         +->Managed
         |   [Set this to "N" to disallow the window manager to control created windows.]
         |
         +->Decorated
         |   [Set this to "N" to disallow the window manager to decorate created windows.]
         |
         +->Synchronous (removed as of 2006-02-24. use "synchronous" debug channel instead)
         |   [In case of X errors it sometimes helps to set it to "Y".]
         |
         +->UseXRandR
         |   [Set this to "N" to prevent wine from switching the resolution using XRandr extension.]
         |
         +->UseXVidMode
             [Set this to "Y" to allow wine switch the resolution using XVidMode extension.]

HKEY_LOCAL_MACHINE (a.k.a HKLM)

|
+-Software
|  |
|  +-Microsoft
|     |
|     +-DirectDraw
|     |  |
|     |  +->ForceRefreshRate      (added in Wine 0.9.58)
|     |      [DWORD value (REG_DWORD): Set this to the refresh rate you wish to
|     |       force for DirectX games.  This is analogous to forcing the refresh
|     |       rate in Windows using dxdiag as described in KB315614 (main article),
|     |       KB230002, and KB217348.  If this key does not exist, the default
|     |       refresh rate will be used.]
|     |
|     +-Internet Explorer
|     |  |
|     |  +->Version
|     |  +->W2kVersion
|     |  |   [Useful to make application believe that you have Internet Explorer
|     |  |   installed (if you set it manually, you might need some IE-provided
|     |  |   dlls). Set them to "6.0.2800.1106" for IE6SP1.]
|     |  |
|     |  +->Build
|     |     [Same as above. Set it to "62800.1106" for IE6SP1.]
|     |
|     |
|     +-Windows
|     |  |
|     |  +-CurrentVersion
|     |     |
|     |     +-Add Paths
|     |        |
|     |        +-IExplore.exe
|     |           [this key explains where to find iexplore.exe.
|     |            It is needed if you install the gecko engine.
|     |            Default: "C:\Program Files\Internet Explorer\iexplore.exe"
|     |            "Path": "C:\Program Files\Internet Explorer;"]
|     |
|     +-Windows NT
|        |
|        +-CurrentVersion
|           |
|           +->FontSubstitutes
|           |   [Define font substitutes.
|           |    For example: "Tahoma"="Arial" will substitute 'Tahoma' font with 'Arial' font.]
|           |
|           +-AeDebug
|              |
|              +->Debugger
|                  [Command to execute on unhandled exception. The environment
|                   variable WINEDEBUG is cleared before execution.
|                   Default: "winedbg --auto %ld %ld"]
|
|
|
--System
   |
   +-CurrentControlSet
      |
      +-Control
      |  |
      |  +-Windows
      |  |  |
      |  |  +->CSDVersion
      |  |      [Current service pack version.
      |  |       On Windows XP, SP2 is 0x00000200 and SP3 is 0x00000300]
      |  |
      |  +-ComputerName
      |  |  |
      |  |  +->ComputerName
      |  |      [Current computer name.
      |  |       Updated automatically from Unix host name unless UseDnsComputerName=N]
      |  |
      |  +-Session Manager
      |     |
      |     +->GlobalFlag
      |     |   [DWORD. Used to enable various internal diagnostics, such as heap checking.]
      |     |
      |     +-Environment
      |        |
      |        +->ComSpec
      |        |   [Location of the system's command prompt.
      |        |    Default: c:\windows\system32\cmd.exe]
      |        |
      |        +->PATH
      |        |   [Path environment variable for searching programs.
      |        |    Default: c:\windows\system32;c:\windows]
      |        |
      |        +->ProgramFiles
      |        |   [Location of the Program Files directory and ProgramFiles environment variable.
      |        |    Default for English: C:\Program Files]
      |        |
      |        +->SYSTEMROOT
      |        |   [Location of the windows system root and SYSTEMROOT environment variable.
      |        |    Default: c:\windows]
      |        |
      |        +->TEMP
      |        |   [Location of the temporary files directory and TEMP environment variable.
      |        |    Default: c:\windows\temp
      |        |
      |        +->TMP
      |        |   [Same as above.]
      |        |
      |        +->USERPROFILE
      |        |   [Location of the user's profile directory and USERPROFILE environment variable.
      |        |    Default: c:\windows\Profiles\<unix username>]
      |        |
      |        +->windir
      |        |   [Location of the windows system root
      |        |    Default: c:\windows]
      |        |
      |        +->winsysdir
      |            [Location of the system libraries directory
      |             Default: c:\windows\system32]
      |
      +-Hardware Profiles
         |
         +-Current
            |
            +-Software
               |
               +-Fonts
                  |
                  +->LogPixels
                      [DWORD value (REG_DWORD): Sets current DPI (font size).
                       Some dialogs resize themselves according to this value.
                       Default: 96 (decimal).]

See also

  • winecfg -- The Wine configuration tool

  • regedit -- The Wine registry editor

  • DirectDraw -- Discussion of performance-related issues (relevant to some registry settings listed here)

  • DebugChannels -- How to turn on and off debug channels (i.e. relay)

  • Wine Man Page -- Documents environment variables which could be an alternative to editing the registry.

UsefulRegistryKeys (last edited 2014-05-20 16:43:23 by VincentPovirk)