Wine
Wine is a compatibility layer capable of running Microsoft Windows applications on GNU/Linux and other POSIX compatible operating systems. Windows programs running in Wine act as native programs would, running without the performance or memory usage penalties of an emulator, with a similar look and feel to other applications on your desktop environment.
Contents
Installation
Wine is constantly updated and available in the [community] repository for i686 and in [multilib] for x86_64:
# pacman -S wine
x86_64
If you are running on a x86-64 system, you will also want to install other lib32 packages if the Windows application needs it, such as lib32-mpg123 for mp3 support:
# pacman -S lib32-mpg123 lib32-libxml2 lib32-openal lib32-libpng
Missing Alsa driver
If Wine as found in the official repositories lacks the Alsa driver, try the alternative bin32-wine-suse package from the AUR. After its installation open winecfg, the driver should now be selectable. Reopen winecfg once more and the sound test ought to work as well.
Running Windows Applications
To run a 32-bit windows application:
$ wine <path to exe>
To run a 64-bit windows application on a x86-64 system:
$ wine64 <path to exe>
To install using an MSI installer, use the included msiexec utility:
$ msiexec installername.msi
Configuration
Winecfg
To create configuration files run:
$ winecfg
Review the settings and click OK to save. Some options are not present in winecfg, however they are accessible in the Wine registry. To change the Wine registry via a graphical editor:
$ regedit
Also you can import/export text data into/from the Wine registry. In the graphical editor do "File/Import registry file…" and "File/Export registry file…". In command line there is a bunch of commands, see:
$ regedit /?
The wine directory with config files resides in
~/.wine
and by default C:\ will be mapped to
~/.wine/drive_c
You've done the basic configuration. Now try to run something using:
$ wine /path/to/something.exe
If you're having trouble getting DirectX applications to run properly, try append the -opengl flag:
$ wine /path/to/3d_game.exe -opengl
Using WINEARCH
If you are using wine from [multilib], you will notice that winecfg will get you a 64-bit wine environment by default. You can change this behavior using the WINEARCH environment variable. Rename your ~/.wine directory and create a new wine environment by running:
$ WINEARCH=win32 winecfg
This will get you a 32-bit wine environment. Using WINEARCH as win64 will get you a 64-bit one, which is the default if no WINEARCH is provided.
You can combine this with WINEPREFIX to make a separate win32 and win64 environment:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg $ WINEARCH=win64 WINEPREFIX=~/win64 winecfg
32-bit Graphics Card Drivers
You should install these if you don't want crippled 3D performance on a x86-64 system. Note that you need to have [multilib] repository enabled if you want to install them using pacman. You can also try to search the AUR.
- NVIDIA:
# pacman -S lib32-nvidia-utils
For older lib32-nvidia-utils (e.g. nvidia-96xx drivers), see here. If you still have graphic problems with NVIDIA cards, you should try to install all lib32 packages by "pacman -S lib32", this fixes some issues. - Intel:
# pacman -S lib32-intel-dri
Run Wine withLIBGL_DRIVERS_PATH=/usr/lib32/xorg/modules/dri
- AMD/ATI:
# pacman -S lib32-ati-dri
Sound
By default sound issues may arise when running Wine applications. Ensure only one sound device is selected in winecfg. Currently, the alsa driver is the most supported.
Fonts
If wine applications are not showing easily readable fonts, you may not have Microsoft's Truetype fonts installed. See MS Fonts.
After running such programs, kill all wine servers and run winecfg; fonts should be legible now.
If the fonts look somehow smeared, import the following text file into the Wine registry:
[HKEY_CURRENT_USER\Software\Wine\X11 Driver] "ClientSideWithRender"="N"
Sub-Menu
After installation of wine, there will likely be no menu in your desktop environment. After installing a program using Wine, it will create a menu with your installed applications automatically. If you wish to add on to the menu to create an Ubuntu-like Wine sub-menu, then follow these instructions:
Creating Menu Entries
First, install a Windows program using Wine to create the base menu. After the base menu is created, you can start to add the menu entries. In GNOME, right-click on the desktop and select "Create Launcher...". The steps might be different for KDE/Xfce. Make three launchers using these settings:
Type: Application Name: Configuration Command: winecfg Comment: Configure the general settings for Wine
Type: Application Name: Uninstall Programs Command: wine uninstaller Comment: Uninstall Windows programs under Wine properly
Type: Application Name: Browse C:\ Drive Command: wine winebrowser c:\\ Comment: Browse the files in the virtual Wine C:\ drive
Now that you have these three launchers on your desktop, it is time to put them into the menu. But, first you should change the launchers to dynamically change icons when a new icon set is installed. To do this, open the launchers that you just made in your favorite text editor. Change the following settings to these new values: Configuration launcher:
Icon[en_US]=wine-winecfg Icon=wine-winecfg
Uninstall Programs launcher:
Icon[en_US]=wine-uninstaller Icon=wine-uninstaller
Browse C:\ Drive launcher:
Icon[en_US]=wine-winefile Icon=wine-winefile
If these settings produce a ugly/non-existent icon, it means that there are no icons for these launchers in the icon set that you have enabled. You should replace the icon settings with the explicit location of the icon that you want. Clicking the icon in the launcher's properties menu will have the same effect. A great icon set that supports these shortcuts is GNOME-colors.
Now that you have the launchers fully configured, now it is time to put them in the menu. Plop them into "~/.local/share/applications/wine/" using a terminal or file browser.
Wait a second, they aren't in the menu yet! There is one last step. Copy the following text into a text file named "~/.config/menus/applications-merged/wine-utilities.menu".
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> <Menu> <Name>Applications</Name> <Menu> <Name>wine-wine</Name> <Directory>wine-wine.directory</Directory> <Include> <Filename>wine-Configuration.desktop</Filename> </Include> <Include> <Filename>wine-Browse C:\ Drive.desktop</Filename> </Include> <Include> <Filename>wine-Uninstall Programs.desktop</Filename> </Include> </Menu> </Menu>
Go check in the menu and there should be the minty fresh options waiting to be used!
KDE 4 Menu Fix[1]
The Wine menu items may appear in "Lost & Found" instead of the Wine menu for KDE 4. This is because kde-applications.menu is missing the MergeDir option.
Edit /etc/xdg/menus/kde-applications.menu
At the end of the file add <MergeDir>applications-merged</MergeDir>
after <DefaultMergeDirs/>
, it should look like this:
<Include> <And> <Category>KDE</Category> <Category>Core</Category> </And> </Include> <DefaultMergeDirs/> <MergeDir>applications-merged</MergeDir> <MergeFile>applications-kmenuedit.menu</MergeFile> </Menu>
Alternatively you can create a symlink to a folder that KDE does see:
ln -s ~/.config/menus/applications-merged ~/.config/menus/kde-applications-merged
This has the added bonus that an update to KDE won't change it, but is per user instead of system wide.
Tips and tricks
These tools will assist in the installation of typical Windows components. In most cases they should be used as a last effort, as it may severely alter your wine configuration.
Winetricks
Winetricks is a quick script that allows one to install base requirements needed to run some Windows programs. Installable components includes DirectX 9.x, msxml (required by Microsoft Office 2007 and Internet Explorer), visual runtime libraries and many more.
You can install winetricks via pacman.
# pacman -S winetricks
Then run winetricks as a normal user:
$ winetricks
WineTools assistant
Winetools is a script that facilitates in the installation of some core components for wine in order to install other programs. Note this is not necessary for wine, but does help if you want to get Internet Explorer running.
You can download the PKGBUILD script and see AUR for instructions to build and install.
PlayOnLinux
PlayOnLinux is a graphical Windows and DOS program manager. It contains many scripts to assist the configuration and running of progams. You can find the PKGBUILD in AUR.
PlayOnLinux can also manage multiple Wine versions and use a specific version for each executable because of regressions. If you need to know what Wine version works best for a certain game, try the Wine Application Database.
Using Wine as an interpreter for Win16/Win32 binaries
It is also possible to tell the kernel to use wine as an interpreter for all Win16/Win32 binaries. First mount the binfmt_misc filesystem:
# mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
Or you can add this line to your Template:Filename:
none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0
Then, tell the kernel how to interpret Win16 and Win32 binaries:
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
You can add this line to Template:Filename to make this setting permanent. In this case you may want to ignore stderr to avoid error messages when changing runlevels:
{ echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register; } 2>/dev/null
Now try to run a Windows program:
chmod 755 exefile.exe ./exefile.exe
Wineconsole
Often you may need to run .exes to patch game files, for example a widescreen mod for an old game, and running the .exe normally through wine might yield nothing happening. In this case, you can open a terminal and run the following command:
$ wineconsole cmd
Then navigate to the directory and run the .exe file from there.
Alternatives to Win16 / Win32 binaries
- Cedega - Aimed at gamers
- Codeweavers - Codeweavers' Crossover Office; Aimed at Office Users