  <chapter id="running">
    <title>Running Wine</title>

    <para>
      Written by &name-john-sheets; <email>&email-john-sheets;</email>
    </para>

    <sect1 id="running-wine">
      <title>How to run Wine</title>
      <para>
        Wine is a very complicated piece of software with many ways to
        adjust how it runs.  With very few exceptions, you can
        activate the same set of features through the <link
        linkend="configuring">configuration file </link> as you can
        with command-line parameters.  In this chapter, we'll briefly
        discuss these parameters, and match them up with their
        corresponding configuration variables.
      </para>

      <para>
        You can invoke the <command>wine --help</command> command to
        get a listing of all Wine's command-line parameters:
      </para>
      <para>
        <screen>
Usage: ./wine [options] program_name [arguments]

Options:
   --config name    Specify config file to use
   --debugmsg name  Turn debugging-messages on or off
   --desktop geom   Use a desktop window of the given geometry
   --display name   Use the specified display
   --dll name       Enable or disable built-in DLLs
   --dosver x.xx    DOS version to imitate (e.g. 6.22)
                    Only valid with --winver win31
   --help,-h        Show this help message
   --language xx    Set the language (one of Br,Ca,Cs,Cy,Da,De,En,Eo,Es,Fi,Fr,Ga,Gd,Gv,
                    Hr,Hu,It,Ja,Ko,Kw,Nl,No,Pl,Pt,Sk,Sv,Ru,Wa)
   --managed        Allow the window manager to manage created windows
   --synchronous    Turn on synchronous display mode
   --version,-v     Display the Wine version
   --winver         Version to imitate (win95,nt40,win31,nt2k,win98,nt351,win30,win20)
        </screen>
      </para>

      <para>
        You can specify as many options as you want, if any.
        Typically, you will want to have your configuration file set
        up with a sensible set of defaults; in this case, you can run
        <command>wine</command> without explicitly listing any
        options.  In rare cases, you might want to override certain
        parameters on the command line.  If you find yourself using
        the same long set of command options with certain
        applications, you might find it easier to work with multiple
        config files, using the <link
        linkend="config-parameter"><parameter>--config</parameter>
        parameter</link> to specify a non-default configuration.
      </para>
      <para>
        After the options, you should put the name of the file you
        want <command>wine</command> to execute.  If the executable is
        in the <parameter>Path</parameter> parameter in the
        configuration file, you can simply give the executable file
        name.  However, if the executable is not in
        <parameter>Path</parameter>, you must give the full path to
        the executable (in Windows format, not UNIX format!).  For
        example, given a <parameter>Path</parameter> of the following:
      </para>
      <screen>
[wine]
"Path"="c:\windows;c:\windows\system;e:\;e:\test;f:\"
      </screen>
      <para>
        You could run the file
        <filename>c:\windows\system\foo.exe</filename> with:
      </para>
      <screen>
<prompt>$</prompt> <userinput>wine foo.exe</userinput>
      </screen>
      <para>
        However, you would have to run the file
        <filename>c:\myapps\foo.exe</filename> with this command:
      </para>
      <screen>
<prompt>$</prompt> <userinput>wine c:\myapps\foo.exe</userinput>
      </screen>
      <para>
        Finally, if you want to pass any parameters to your windows
        application, you can list them at the end, just after the
        executable name.  Thus, to run the imaginary
        <command>foo.exe</command> Windows application with its
        <parameter>/advanced</parameter> mode parameter, while
        invoking Wine in <link
        linkend="managed-parameter"><parameter>--managed</parameter>
        mode</link>, you would do something like this:
      </para>
      <screen>
<prompt>$</prompt> <userinput>wine --managed foo.exe /advanced</userinput>
      </screen>
      <para>
        In other words, options that affect Wine should come
        <emphasis>before</emphasis> the Windows program name, while
        options that affect the Windows program should come
        <emphasis>after</emphasis> it.
      </para>
    </sect1>

    <sect1 id="command-line-options">
      <title>Command-Line Options</title>
      <sect2 id="config-parameter">
        <title>--config</title>
        <para>
          The <parameter>--config</parameter> parameter allows you to
          specify which configuration file you want to use for the
          current invocation of <command>wine</command>.  For example,
          if you like to run a specific application or set of
          applications with a different array of options than your
          normal defaults, you might set up a different config file
          for them, and use the <parameter>--config</parameter> option
          to make use of it.
        </para>
        <para>
          The default value of <parameter>--config</parameter> is
          <filename>~/.winerc</filename>.  This value is hardwired
          into the Wine source code.  In future versions of Wine, the
          default may change to <filename>~/.wine/conf</filename>.
        </para>
      </sect2>

      <sect2>
        <title>--debugmsg [channels]</title>
        <para>
          Wine isn't perfect, and many Windows applications still
          don't run without bugs under Wine (but then, many of them
          don't run without bugs under native Windows either!).  To
          make it easier for people to track down the causes behind
          each bug, Wine provides a number of <firstterm>debug
          channels</firstterm> that you can tap into.
        </para>
        <para>
          Each debug channel, when activated, will trigger logging
          messages to be displayed to the console where you invoked
          <command>wine</command>.  From there you can redirect the
          messages to a file and examine it at your leisure.  But be
          forewarned!  Some debug channels can generate incredible
          volumes of log messages.  Among the most prolific offenders
          are <parameter>relay</parameter> which spits out a log
          message every time a win32 function is called,
          <parameter>win</parameter> which tracks windows message
          passing, and of course <parameter>all</parameter> which is
          an alias for every single debug channel that exists.  For a
          complex application, your debug logs can easily top 1 MB and
          higher.  A <parameter>relay</parameter> trace can often
          generate more than 10 MB of log messages, depending on how
          long you run the application.  Logging does slow down Wine
          quite a bit, so don't use <parameter>--debugmsg</parameter>
          unless you really do want log files.
        </para>
        <para>
          Within each debug channel, you can further specify a
          <firstterm>message class</firstterm>, to filter out the
          different severities of errors.  The four message classes
          are:
          <simplelist type="inline">
            <member><parameter>trace</parameter></member>
            <member><parameter>fixme</parameter></member>
            <member><parameter>warn</parameter></member>
            <member><parameter>err</parameter></member>
          </simplelist>.
        </para>
        <para>
          To turn on a debug channel, use the form
          <parameter>class+channel</parameter>.  To turn it off, use
          <parameter>class-channel</parameter>.  To list more than one
          channel in the same <parameter>--debugmsg</parameter>
          option, separate them with commas.  For example, to request
          <parameter>warn</parameter> class messages in the
          <parameter>heap</parameter> debug channel, you could invoke
          <command>wine</command> like this:
        </para>
        <screen>
<prompt>$</prompt> <userinput>wine --debugmsg warn+heap <replaceable>program_name</replaceable></userinput>
        </screen>
        <para>
          If you leave off the message class, <command>wine</command>
          will display messages from all four classes for that channel:
        </para>
        <screen>
<prompt>$</prompt> <userinput>wine --debugmsg +heap <replaceable>program_name</replaceable></userinput>
        </screen>
        <para>
          If you wanted to see log messages for everything except the
          relay channel, you might do something like this:
        </para>
        <screen>
<prompt>$</prompt> <userinput>wine --debugmsg +all,-relay <replaceable>program_name</replaceable></userinput>
        </screen>
        <para>
          Here is a master list of all the debug channels and classes
          in Wine.  More channels might be added to (or subtracted
          from) later versions.
        </para>
        <screen>
all       accel     advapi    animate   aspi      atom      avifile   bitblt   
bitmap    caret     cdrom     class     clipboard clipping  combo     comboex  
comm      commctrl  commdlg   console   crtdll    cursor    datetime  dc       
ddeml     ddraw     debug     debugstr  delayhlp  dialog    dinput    dll      
dosfs     dosmem    dplay     driver    dsound    edit      elfdll    enhmetafile
event     exec      file      fixup     font      gdi       global    graphics 
header    heap      hook      hotkey    icmp      icon      imagehlp  imagelist
imm       int       int10     int16     int17     int19     int21     int31    
io        ipaddress joystick  key       keyboard  ldt       listbox   listview 
local     mci       mcianim   mciavi    mcicda    mcimidi   mciwave   mdi      
menu      message   metafile  midi      mmaux     mmio      mmsys     mmtime   
module    monthcal  mpr       msacm     msg       msvideo   nativefont nonclient
ntdll     odbc      ole       opengl    pager     palette   pidl      print    
process   profile   progress  prop      propsheet psapi     psdrv     ras      
rebar     reg       region    relay     resource  richedit  scroll    segment  
seh       selector  sendmsg   server    setupapi  setupx    shell     snoop    
sound     static    statusbar storage   stress    string    syscolor  system   
tab       tape      tapi      task      text      thread    thunk     timer    
toolbar   toolhelp  tooltips  trackbar  treeview  ttydrv    tweak     typelib  
updown    ver       virtual   vxd       wave      win       win16drv  win32    
wing      wininet   winsock   winspool  wnet      x11       x11drv    
        </screen>
        <para>
          For more details about debug channels, check out the
          <ulink url="http://wine.codeweavers.com/docs/wine-devel/">
            The Wine Developer's Guide</ulink>.
        </para>
      </sect2>

      <sect2>
        <title>--desktop [geometry]</title>
        <para>
          By default, <command>wine</command> runs applications on
          your regular desktop.  Wine application windows intermingle
          with native X11 applications.  Windows overlap each other,
          and you can resize them in relation to each other.
          Normally, when you minimize Wine windows, they collapse into
          a small icon at the lower left corner of your desktop,
          circumventing the behavior of your other non-Wine windows.
          However, if you're running in <link linkend="managed-parameter">
          --managed mode</link>, your Wine applications will minimize
          just like your other windows.
        </para>
        <para>
          Sometimes, you may want to restrict Wine windows to a
          smaller area of your desktop.  This is what the
          <parameter>--desktop</parameter> option controls.  Whenever
          you pass this option to <command>wine</command>, it will
          create a window of that size and use that as Wine's desktop
          instead of borrowing the regular desktop space.  Wine will
          then place the application window inside the new desktop
          window.  If you minimize the application, it will iconize to
          the bottom left corner of its own desktop window.
        </para>
        <para>
          The <parameter>--desktop</parameter> option geometry info in
          the standard X11 geometry format, e.g., "640x480" for a
          desktop window 640 pixels wide and 480 pixels high.  You can
          also in theory specify the coordinates of the upper left
          corner of the desktop window, but your window manager may
          choose to override that request.  The following invocation
          would open a new 640 x 480 desktop window at coordinates
          (10, 25):
          <screen>
<prompt>$</prompt> <userinput>wine --desktop 640x480+10+25 foo.exe</userinput>
          </screen>
        </para>
        <para>
          More commonly, you'll leave off the starting coordinates,
          and only use the height and width:
          <screen>
<prompt>$</prompt> <userinput>wine --desktop 640x480 foo.exe</userinput>
          </screen>
        </para>
      </sect2>

      <sect2>
        <title>--display</title>
        <para>
          By default, wine will display its windows on whichever X
          Display you have in the <envar>$DISPLAY</envar> environment
          variable.  Often, <envar>$DISPLAY</envar> is set to
          <literal>:0</literal>, which sends all windows to the
          primary video monitor on the current host machine.
        </para>
        <para>
          To send windows to a different monitor on the same system,
          you could change <literal>:0</literal> to a different
          number, for example <literal>:1</literal> to send output to
          the second monitor.  You can also specify other systems.  If
          you were logged into the system <systemitem
          class="systemname">alpha</systemitem>, but wanted wine to
          run on another system on the network, <systemitem
          class="systemname">beta</systemitem>, you might use a
          <envar>$DISPLAY</envar> of <literal>beta:0</literal>.
        </para>
        <para>
          You can also declare display values on the wine command
          line, using the <parameter>--display</parameter> option.
          The last example above might look like this:
        </para>
        <programlisting>
<prompt>$</prompt> wine --display="beta:0" foo.exe
        </programlisting>
      </sect2>

      <sect2>
        <title>--dll</title>
        <para>
          
        </para>
      </sect2>

      <sect2>
        <title>--dosver</title>
        <para>
          
        </para>
      </sect2>

      <sect2>
        <title>--help</title>
        <para>
          
        </para>
      </sect2>

      <sect2>
        <title>--language</title>
        <para>
          
        </para>
      </sect2>

      <sect2 id="managed-parameter">
        <title>--managed</title>
        <para>
          
        </para>
      </sect2>

      <sect2>
        <title>--synchronous</title>
        <para>
          
        </para>
      </sect2>

      <sect2>
        <title>--version</title>
        <para>
          
        </para>
      </sect2>

      <sect2>
        <title>--winver</title>
        <para>
          
        </para>
      </sect2>
    </sect1>
  </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-doc.sgml" "set" "book" "chapter" "")
End:
-->
