2 <title>Running Wine</title>
5 This chapter will describe all aspects of running Wine, like e.g.
6 basic Wine invocation, command line parameters of various Wine
10 <sect1 id="basic-usage">
11 <title>Basic usage: applications and control panel applets</title>
13 Assuming you are using a fake Windows installation, you install
14 applications into Wine in the same way you would in Windows: by
15 running the installer. You can just accept the defaults for
16 where to install, most installers will default to "C:\Program
17 Files", which is fine. If the application installer requests it,
18 you may find that Wine creates icons on your desktop and in your
19 app menu. If that happens, you can start the app by clicking on
24 The standard way to uninstall things is for the application to
25 provide an uninstaller, usually registered with the "Add/Remove
26 Programs" control panel applet.
27 To access the Wine equivalent, run the <command>uninstaller</command>
28 program (it is located in the
29 <filename>programs/uninstaller/</filename> directory in a Wine
30 source directory) in a <glossterm>terminal</glossterm>:
34 <prompt>$</prompt> <userinput>uninstaller</userinput>
38 Some programs install associated control panel applets, examples
39 of this would be Internet Explorer and QuickTime. You can access
40 the Wine control panel by running in a
41 <glossterm>terminal</glossterm>:
45 <prompt>$</prompt> <userinput>wine control</userinput>
49 which will open a window with the installed control panel
50 applets in it, as in Windows.
54 If the application doesn't install menu or desktop items, you'll
55 need to run the app from the command line. Remembering where you
56 installed to, something like:
60 <prompt>$</prompt> <userinput>wine "c:\program files\appname\appname.exe"</userinput>
64 will probably do the trick. The path isn't case sensitive, but
65 remember to include the double quotes. Some programs don't
66 always use obvious naming for their directories and EXE files,
67 so you might have to look inside the program files directory to
68 see what was put where.
72 <sect1 id="running-wine">
73 <title>How to run Wine</title>
76 You can invoke the <command>wine --help</command> command to
77 get a listing of all Wine's command-line parameters:
81 Usage: ./wine [options] program_name [arguments]
84 --debugmsg name Turn debugging-messages on or off
85 --help,-h Show this help message
86 --version,-v Display the Wine version
91 You can specify as many options as you want, if any.
92 Typically, you will want to have your configuration file set
93 up with a sensible set of defaults; in this case, you can run
94 <command>wine</command> without explicitly listing any
95 options. In rare cases, you might want to override certain
96 parameters on the command line.
99 After the options, you should put the name of the file you
100 want <command>wine</command> to execute. If the executable is
101 in the <parameter>Path</parameter> parameter in the
102 configuration file, you can simply give the executable file
103 name. However, if the executable is not in
104 <parameter>Path</parameter>, you must give the full path to
105 the executable (in Windows format, not UNIX format!). For
106 example, given a <parameter>Path</parameter> of the following:
110 "Path"="c:\\windows;c:\\windows\\system;e:\\;e:\\test;f:\\"
113 You could run the file
114 <filename>c:\windows\system\foo.exe</filename> with:
117 <prompt>$</prompt> <userinput>wine foo.exe</userinput>
120 However, you would have to run the file
121 <filename>c:\myapps\foo.exe</filename> with this command:
124 <prompt>$</prompt> <userinput>wine c:\\myapps\\foo.exe</userinput>
127 (note the backslash-escaped "\" !)
130 For details on running text mode (CUI) executables, read the
131 <link linkend="CUI-programs">section</link> below.
135 <sect1 id="explorer-like-wine">
136 <title>Explorer-like graphical Wine environments</title>
139 If you prefer using a graphical interface to manage your
140 files you might want to consider using Winefile. This Winelib
141 application comes with Wine and can be found with the other
142 Wine programs. It is a useful way to view your drive configuration
143 and locate files, plus you can execute programs directly from
144 Winefile. Please note, many functions are not yet implemented.
148 <sect1 id="command-line-options">
149 <title>Wine Command Line Options</title>
151 <sect2 id="config-parameter">
152 <title>--debugmsg [channels]</title>
154 Wine isn't perfect, and many Windows applications still
155 don't run without bugs under Wine (but then, a lot of programs
156 don't run without bugs under native Windows either!). To
157 make it easier for people to track down the causes behind
158 each bug, Wine provides a number of <firstterm>debug
159 channels</firstterm> that you can tap into.
162 Each debug channel, when activated, will trigger logging
163 messages to be displayed to the console where you invoked
164 <command>wine</command>. From there you can redirect the
165 messages to a file and examine it at your leisure. But be
166 forewarned! Some debug channels can generate incredible
167 volumes of log messages. Among the most prolific offenders
168 are <parameter>relay</parameter> which spits out a log
169 message every time a win32 function is called,
170 <parameter>win</parameter> which tracks windows message
171 passing, and of course <parameter>all</parameter> which is
172 an alias for every single debug channel that exists. For a
173 complex application, your debug logs can easily top 1 MB and
174 higher. A <parameter>relay</parameter> trace can often
175 generate more than 10 MB of log messages, depending on how
176 long you run the application. (As described in the
177 <link linkend = "config-debug-etc">Debug</link>
178 section of configuring wine you can
179 modify what the <parameter>relay</parameter> trace reports).
180 Logging does slow down Wine
181 quite a bit, so don't use <parameter>--debugmsg</parameter>
182 unless you really do want log files.
185 Within each debug channel, you can further specify a
186 <firstterm>message class</firstterm>, to filter out the
187 different severities of errors. The four message classes
189 <simplelist type="inline">
190 <member><parameter>trace</parameter></member>
191 <member><parameter>fixme</parameter></member>
192 <member><parameter>warn</parameter></member>
193 <member><parameter>err</parameter></member>
197 To turn on a debug channel, use the form
198 <parameter>class+channel</parameter>. To turn it off, use
199 <parameter>class-channel</parameter>. To list more than one
200 channel in the same <parameter>--debugmsg</parameter>
201 option, separate them with commas. For example, to request
202 <parameter>warn</parameter> class messages in the
203 <parameter>heap</parameter> debug channel, you could invoke
204 <command>wine</command> like this:
207 <prompt>$</prompt> <userinput>wine --debugmsg warn+heap <replaceable>program_name</replaceable></userinput>
210 If you leave off the message class, <command>wine</command>
211 will display messages from all four classes for that channel:
214 <prompt>$</prompt> <userinput>wine --debugmsg +heap <replaceable>program_name</replaceable></userinput>
217 If you wanted to see log messages for everything except the
218 relay channel, you might do something like this:
221 <prompt>$</prompt> <userinput>wine --debugmsg +all,-relay <replaceable>program_name</replaceable></userinput>
224 Here is a list of the debug channels and classes in Wine.
225 More channels will be added to (or subtracted from) later
229 <table frame="none"><title>Debug Channels</title>
230 <tgroup cols=5 align="left">
232 <row> <entry>accel</entry> <entry>adpcm</entry> <entry>advapi</entry> <entry>animate</entry> <entry>aspi</entry> </row>
233 <row> <entry>atom</entry> <entry>avicap</entry> <entry>avifile</entry> <entry>bidi</entry> <entry>bitblt</entry> </row>
234 <row> <entry>bitmap</entry> <entry>cabinet</entry> <entry>capi</entry> <entry>caret</entry> <entry>cdrom</entry> </row>
235 <row> <entry>cfgmgr32</entry> <entry>class</entry> <entry>clipboard</entry> <entry>clipping</entry> <entry>combo</entry> </row>
236 <row> <entry>comboex</entry> <entry>comm</entry> <entry>commctrl</entry> <entry>commdlg</entry> <entry>computername</entry> </row>
237 <row> <entry>console</entry> <entry>crtdll</entry> <entry>crypt</entry> <entry>curses</entry> <entry>cursor</entry> </row>
238 <row> <entry>d3d</entry> <entry>d3d_shader</entry> <entry>d3d_surface</entry> <entry>datetime</entry> <entry>dc</entry> </row>
239 <row> <entry>ddeml</entry> <entry>ddraw</entry> <entry>ddraw_fps</entry> <entry>ddraw_geom</entry> <entry>ddraw_tex</entry> </row>
240 <row> <entry>debugstr</entry> <entry>devenum</entry> <entry>dialog</entry> <entry>dinput</entry> <entry>dll</entry> </row>
241 <row> <entry>dma</entry> <entry>dmband</entry> <entry>dmcompos</entry> <entry>dmfile</entry> <entry>dmfiledat</entry> </row>
242 <row> <entry>dmime</entry> <entry>dmloader</entry> <entry>dmscript</entry> <entry>dmstyle</entry> <entry>dmsynth</entry> </row>
243 <row> <entry>dmusic</entry> <entry>dosfs</entry> <entry>dosmem</entry> <entry>dplay</entry> <entry>dplayx</entry> </row>
244 <row> <entry>dpnhpast</entry> <entry>driver</entry> <entry>dsound</entry> <entry>dsound3d</entry> <entry>edit</entry> </row>
245 <row> <entry>enhmetafile</entry> <entry>environ</entry> <entry>event</entry> <entry>eventlog</entry> <entry>exec</entry> </row>
246 <row> <entry>file</entry> <entry>fixup</entry> <entry>font</entry> <entry>fps</entry> <entry>g711</entry> </row>
247 <row> <entry>gdi</entry> <entry>global</entry> <entry>glu</entry> <entry>graphics</entry> <entry>header</entry> </row>
248 <row> <entry>heap</entry> <entry>hook</entry> <entry>hotkey</entry> <entry>icmp</entry> <entry>icon</entry> </row>
249 <row> <entry>imagehlp</entry> <entry>imagelist</entry> <entry>imm</entry> <entry>int</entry> <entry>int21</entry> </row>
250 <row> <entry>int31</entry> <entry>io</entry> <entry>ipaddress</entry> <entry>iphlpapi</entry> <entry>jack</entry> </row>
251 <row> <entry>joystick</entry> <entry>key</entry> <entry>keyboard</entry> <entry>listbox</entry> <entry>listview</entry> </row>
252 <row> <entry>loaddll</entry> <entry>local</entry> <entry>mapi</entry> <entry>mci</entry> <entry>mcianim</entry> </row>
253 <row> <entry>mciavi</entry> <entry>mcicda</entry> <entry>mcimidi</entry> <entry>mciwave</entry> <entry>mdi</entry> </row>
254 <row> <entry>menu</entry> <entry>menubuilder</entry> <entry>message</entry> <entry>metafile</entry> <entry>midi</entry> </row>
255 <row> <entry>mmaux</entry> <entry>mmio</entry> <entry>mmsys</entry> <entry>mmtime</entry> <entry>module</entry> </row>
256 <row> <entry>monthcal</entry> <entry>mpeg3</entry> <entry>mpr</entry> <entry>msacm</entry> <entry>msdmo</entry> </row>
257 <row> <entry>msg</entry> <entry>mshtml</entry> <entry>msi</entry> <entry>msimg32</entry> <entry>msisys</entry> </row>
258 <row> <entry>msrle32</entry> <entry>msvcrt</entry> <entry>msvideo</entry> <entry>mswsock</entry> <entry>nativefont</entry> </row>
259 <row> <entry>netapi32</entry> <entry>netbios</entry> <entry>nls</entry> <entry>nonclient</entry> <entry>ntdll</entry> </row>
260 <row> <entry>odbc</entry> <entry>ole</entry> <entry>oledlg</entry> <entry>olerelay</entry> <entry>opengl</entry> </row>
261 <row> <entry>pager</entry> <entry>palette</entry> <entry>pidl</entry> <entry>powermgnt</entry> <entry>print</entry> </row>
262 <row> <entry>process</entry> <entry>profile</entry> <entry>progress</entry> <entry>propsheet</entry> <entry>psapi</entry> </row>
263 <row> <entry>psdrv</entry> <entry>qcap</entry> <entry>quartz</entry> <entry>ras</entry> <entry>rebar</entry> </row>
264 <row> <entry>reg</entry> <entry>region</entry> <entry>relay</entry> <entry>resource</entry> <entry>richedit</entry> </row>
265 <row> <entry>rundll32</entry> <entry>sblaster</entry> <entry>scroll</entry> <entry>seh</entry> <entry>selector</entry> </row>
266 <row> <entry>server</entry> <entry>setupapi</entry> <entry>shdocvw</entry> <entry>shell</entry> <entry>shlctrl</entry> </row>
267 <row> <entry>snmpapi</entry> <entry>snoop</entry> <entry>sound</entry> <entry>static</entry> <entry>statusbar</entry> </row>
268 <row> <entry>storage</entry> <entry>stress</entry> <entry>string</entry> <entry>syscolor</entry> <entry>system</entry> </row>
269 <row> <entry>tab</entry> <entry>tape</entry> <entry>tapi</entry> <entry>task</entry> <entry>text</entry> </row>
270 <row> <entry>thread</entry> <entry>thunk</entry> <entry>tid</entry> <entry>timer</entry> <entry>toolbar</entry> </row>
271 <row> <entry>toolhelp</entry> <entry>tooltips</entry> <entry>trackbar</entry> <entry>treeview</entry> <entry>ttydrv</entry> </row>
272 <row> <entry>twain</entry> <entry>typelib</entry> <entry>uninstaller</entry> <entry>updown</entry> <entry>urlmon</entry> </row>
273 <row> <entry>uxtheme</entry> <entry>ver</entry> <entry>virtual</entry> <entry>vxd</entry> <entry>wave</entry> </row>
274 <row> <entry>wc_font</entry> <entry>win</entry> <entry>win32</entry> <entry>wineboot</entry> <entry>winecfg</entry> </row>
275 <row> <entry>wineconsole</entry> <entry>wine_d3d</entry> <entry>winevdm</entry> <entry>wing</entry> <entry>winhelp</entry> </row>
276 <row> <entry>wininet</entry> <entry>winmm</entry> <entry>winsock</entry> <entry>winspool</entry> <entry>wintab</entry> </row>
277 <row> <entry>wintab32</entry> <entry>wnet</entry> <entry>x11drv</entry> <entry>x11settings</entry> <entry>xdnd</entry> </row>
278 <row> <entry>xrandr</entry> <entry>xrender</entry> <entry>xvidmode</entry> </row>
284 For more details about debug channels, check out the
285 <ulink url="http://wine.codeweavers.com/docs/wine-devel/">
286 The Wine Developer's Guide</ulink>.
291 <title>--help</title>
293 Shows a small command line help page.
298 <title>--version</title>
300 Shows the Wine version string. Useful to verify your installation.
305 <sect1 id="wineserver-command-line-options">
306 <title>wineserver Command Line Options</title>
309 wineserver usually gets started automatically by Wine whenever
310 the first wine process gets started.
311 However, wineserver has some useful command line options that
312 you can add if you start it up manually, e.g. via a user login
316 <sect2 id="wineserver-config-parameter">
317 <title>-d<n></title>
319 Sets the debug level for debug output in the terminal that
320 wineserver got started in at level <n>.
321 In other words: everything greater than 0 will enable
322 wineserver specific debugging output (not to confuse with Wine's wineserver logging channel, --debugmsg +server, though!).
329 Display wineserver command line options help message.
336 Kill the current wineserver, optionally with signal n.
343 This parameter makes wineserver persistent, optionally for n
344 seconds. It will prevent wineserver from shutting down immediately.
347 Usually, wineserver quits almost immediately after the last
348 wine process using this wineserver terminated.
349 However, since wineserver loads a lot of things on startup
350 (such as the whole Windows registry data), its startup might
351 be so slow that it's very useful to keep it from exiting after
352 the end of all Wine sessions, by making it persistent.
359 This parameter makes a newly started wineserver wait until the
360 currently active wineserver instance terminates.
365 <sect1 id="environment-variables">
366 <title>Setting Windows/DOS environment variables</title>
368 Your program might require some environment variable to be set
369 properly in order to run successfully.
370 In this case you need to set this environment variable in the
371 Linux shell, since Wine will pass on the entire shell environment
372 variable settings to the Windows environment variable space.
373 Example for the bash shell (other shells may have a different syntax
376 export MYENVIRONMENTVAR=myenvironmentvarsetting
378 This will make sure your Windows program can access the
379 MYENVIRONMENTVAR environment variable once you start your program
381 If you want to have MYENVIRONMENTVAR set permanently, then you can
382 place the setting into /etc/profile, or also ~/.bashrc in the case of
386 Note however that there is an exception to the rule:
387 If you want to change the PATH environment variable, then of
388 course you can't modify it that way, since this will alter the
389 Unix PATH environment setting. Instead, you should set the
390 WINEPATH environment variable. An alternative way to
391 indicate the content of the DOS PATH environment variable would
392 be to change the "path" setting in the wine config file's <link
393 linkend="config-wine">[wine]</link> section.
398 <sect1 id="CUI-programs">
399 <title>Text mode programs (CUI: Console User Interface)</title>
400 <para>Text mode programs are program which output is only made
401 out of text (surprise!). In Windows terminology, they are
402 called CUI (Console User Interface) executables, by opposition
403 to GUI (Graphical User Interface) executables. Win32 API
404 provide a complete set of APIs to handle this situation, which
405 goes from basic features like text printing, up to high level
406 functionalities (like full screen editing, color support,
407 cursor motion, mouse support), going through features like
408 line editing or raw/cooked input stream support
411 Given the wide scope of features above, and the current usage
412 in Un*x world, Wine comes out with three different ways for
413 running a console program (aka a CUI executable):
422 wineconsole with user backend
427 wineconsole with curses backend
432 <para>The names here are a bit obscure. "bare streams" means
433 that no extra support of wine is provide to map between the
434 unix console access and Windows console access. The two other
435 ways require the use of a specific Wine program (wineconsole)
436 which provide extended facilities. The following table
437 describes what you can do (and cannot do) with those three
440 <title>Basic differences in consoles</title>
441 <tgroup cols="4" align="left">
444 <entry>Function</entry>
445 <entry>Bare streams</entry>
446 <entry>Wineconsole & user backend</entry>
447 <entry>Wineconsole & curses backend</entry>
452 <entry>How to run (assuming executable is called foo.exe)</entry>
454 <screen><prompt>$</prompt> <userinput>wine foo.exe</userinput></screen>
457 <screen><prompt>$</prompt> <userinput>wineconsole -- --backend=user foo.exe</userinput></screen>
460 <screen><prompt>$</prompt> <userinput>wineconsole foo.exe</userinput></screen>
461 </msgtext>You can also use --backend=curses as an option</entry>
464 <entry>Good support for line oriented CUI applications
465 (which print information line after line)
472 <entry>Good support for full screen CUI
473 applications (including but not limited to color
474 support, mouse support...)</entry>
480 <entry>Can be run even if X11 is not running</entry>
486 <entry>Implementation</entry>
487 <entry>Maps the standard Windows streams to the
488 standard Unix streams (stdin/stdout/stderr)
491 Wineconsole will create a new Window (hence
492 requiring the USER32 DLL is available) where all
493 information will be displayed
496 Wineconsole will use existing unix console
497 (from which the program is run) and with the help of
498 the (n)curses library take control of all the terminal
499 surface for interacting with the user
503 <entry>Known limitations</entry>
507 Will produce strange behavior if two (or more)
508 Windows consoles are used on the same Un*x terminal.
515 <sect2 id="CUI-programs-config">
516 <title>Configuration of CUI executables</title>
518 When wineconsole is used, several configuration options are
519 available. Wine (as Windows do) stores, on a per application
520 basis, several options in the registry. This let a user, for
521 example, define the default screen-buffer size he would like
522 to have for a given application.
525 As of today, only the USER backend allows you to edit those
526 options (we don't recommend editing by hand the registry
527 contents). This edition is fired when a user right click in
528 the console (this popups a menu), where you can either
533 Default: this will edit the settings shared by all
534 applications which haven't been configured yet. So,
535 when an application is first run (on your machine,
536 under your account) in wineconsole, wineconsole will
537 inherit this default settings for the
538 application. Afterwards, the application will have its
539 own settings, that you'll be able to modify at your will.
542 Properties: this will edit the application's
543 settings. When you're done, with the edition, you'll
544 be prompted whether you want to:
548 Keep these modified settings only for this
549 session (next time you run the application, you
550 will not see the modification you've just made).
555 Use the settings for this session and save them
556 as well, so that next you run your application,
557 you'll use these new settings again.
566 Here's the list of the items you can configure, and their
569 <title>Wineconsole configuration options</title>
570 <tgroup cols="2" align="left">
573 <entry>Configuration option</entry>
574 <entry>Meaning</entry>
579 <entry>Cursor's size</entry>
581 Defines the size of the cursor. Three options are
582 available: small (33% of character height), medium
583 (66%) and large (100%)
587 <entry>Popup menu</entry>
589 It's been said earlier that wineconsole
590 configuration popup was triggered using a right
591 click in the console's window. However, this can
592 be an issue when the application you run inside
593 wineconsole expects the right click events to be
594 sent to it. By ticking control or shift you select
595 additional modifiers on the right click for
596 opening the popup. For example, ticking shift will
597 send events to the application when you right
598 click the window without shift being hold down,
599 and open the window when you right-click while
600 shift being hold down.
604 <entry>Quick edit</entry>
606 This tick box lets you decide whether left-click
607 mouse events shall be interpreted as events to be
608 sent to the underlying application (tick off) or
609 as a selection of rectangular part of the screen
610 to be later on copied onto the clipboard (tick on).
614 <entry>History</entry>
616 This lets you pick up how many commands you want
617 the console to recall. You can also drive whether
618 you want, when entering several times the same
619 command - potentially intertwined with others -
620 whether you want to store all of them (tick off)
621 or only the last one (tick on).
625 <entry>Police</entry>
627 The Police property sheet allows you to pick the
628 default font for the console (font file, size,
629 background and foreground color).
633 <entry>Screenbuffer & window size</entry>
635 The console as you see it is made of two different
636 parts. On one hand there's the screenbuffer which
637 contains all the information your application puts
638 on the screen, and the window which displays a
639 given area of this screen buffer. Note that the
640 window is always smaller or of the same size than
641 the screen buffer. Having a stricly smaller window
642 size will put on scrollbars on the window so that
643 you can see the whole screenbuffer's content.
647 <entry>Close on exit</entry>
649 If it's ticked, then the wineconsole will exit
650 when the application within terminates. Otherwise,
651 it'll remain opened until the user manually closes
652 it: this allows seeing the latest information of a
653 program after it has terminated.
657 <entry>Edition mode</entry>
661 When the user enter commands, he or she can
662 choose between several edition modes:
666 Emacs: the same keybindings as under
667 emacs are available. For example, Ctrl-A
668 will bring the cursor to the beginning
669 of the edition line. See your emacs
670 manual for the details of the commands.
675 Win32: this are the standard Windows
676 console key-bindings (mainly using
693 <!-- Keep this comment at the end of the file
696 sgml-parent-document:("wine-user.sgml" "set" "book" "chapter" "")