The complete guide to Wine: from installation to advanced usage

Table of contents

1. Why Wine

2. Features and limitations of Wine

3. 64-bit or 32-bit Wine?

4. How to install Wine

4.1 Installing Wine on Debian, Kali Linux, Linux Mint, Ubuntu, and their derivatives

4.2 Installing Wine on Arch Linux

5. How to run a program in Wine

5.1 Launch by double clicking on the executable file

5.2 Run on command line

5.3 Using wine start

5.4 Passing Windows Command Line Arguments

5.5 Running .msi files

5.6 Wine Explorer style graphical environment (Wine File Manager)

5.7 How to run a .bat file in Wine

6. How to install a program in Wine and create a shortcut

7. Built-in programs in Wine

8. How to uninstall a program from Wine

9. Wine file system

10. WINEPREFIX (prefixes)

11. How to make Wine run an application in a virtual desktop

12. Assistants in installing programs and libraries in Wine

12.1 PlayOnLinux

12.2 Winetricks

12.3 Which is better, PlayOnLinux or Winetricks?

13. Using the Registry and Regedit


Why Wine

This guide will tell you about using Wine. These usage tips apply to both Kali Linux and any other Linux distribution.

With Wine, you can run Windows programs directly on Linux without using virtual machines. If we talk about Kali Linux, then one of the interesting examples is the Router Scan by Stas'M program, which works fine through Wine (finds and hacks routers, but functions related to using a Wi-Fi adapter do not work).

So, Wine is a set of programs and libraries that allow you to run Windows applications on Linux without using virtualization. Of course, Windows programs can be run on Linux using VirtualBox, but this option will require the launch of a full-fledged operating system with the corresponding resource costs, especially RAM – Windows requires several gigabytes of memory to run, as well as disk space for installation – several tens of gigabytes. However, an important requirement for running VirtualBox and similar virtual machines is that your CPU supports virtualization.

Wine allows you to bypass all these limitations – you do not need to install this operating system to run Windows programs, and applications require only a few tens of megabytes of RAM to run.

But Wine also has disadvantages – not all applications work well or work at all. However, a huge number of Windows programs run and work just fine on Linux thanks to Wine.

Remember that many free programs are cross-platform, and you can install them from your distribution's standard repositories. These programs do not require Wine. Examples of popular cross-platform programs: LibreOffice, Google Chrome, Firefox, Double Commander, VirtualBox, Etcher, VLC, DeadBeef, GIMP, OBS Studio, Viber, Wireshark, Apache, PHP, MySQL, Caliber, Netbeans, Burp Suite, Visual Studio Code, KeePass , KeePassXC, OpenShot Dropbox, Python, Ruby, Perl, PowerShell, SSH, Vuse BitTorrent Client, FileZilla, Tor Browser, JDownloader and many more. All of these programs do not need Wine, as they have native Linux installation packages.

Before trying to install and run a program through Wine, look for it using your package manager, for example:

apt search OpenShot

Features and limitations of Wine

The program is able to run 64-bit, 32-bit, 16-bit programs and libraries of Windows 9x/NT/2000/XP/Vista/7/8/10/11 and Windows 3.x

Win32 API support:

  • Support for DirectX based games and applications (Direct3D support up to DirectX 12)
  • Support for OpenGL and Vulkan based games and applications
  • DirectShow support with use of GStreamer for codecs
  • Direct2D, DirectWrite support
  • MMDevice API, XAudio, WinMM, DirectSound audio APIs are supported
  • Printing via PostScript driver to the host printing system (usually CUPS)
  • Enhanced Metafile (EMF) and Windows Metafile (WMF) driver
  • Desktop-in-a-box or mixable windows

Allows Windows program to interface with:

  • X11-based graphics which allow remote display to any X terminal
  • macOS and Android based graphics
  • X11, TrueType (.ttf/.ttc) and Windows Bitmap (.fon) fonts
  • Sound devices via ALSA, OSS, PulseAudio, Core Audio, etc.
  • Multi-lingual keyboards and CJK input method support via XIM
  • Modems, serial devices
  • Networks (TCP/IP and IPX)
  • ASPI Scanners
  • Windows Tablets via XInput (eg. Wacom)
  • Video capture devices via v4l2
  • HID devices via IOHid (MacOS), evdev (Linux), hidraw (Linux), SDL2

As you can see, the list is impressive and allows you to, for example, run games that require DirectX and still output sound. Applications from Wine can work with the network and even have access to some hardware features (printers, scanners).

If the application requires additional libraries, for example, Visual C++ Redistributable for Visual Studio, then it is possible to install them in Wine and run the application in an environment with this library installed.

At the same time, you need to remember such a limitation as the inability to work with devices directly, for example, if a device requires a driver, then it makes no sense to install a Windows driver in Wine – you need to find the Linux version of the driver and install it.

64-bit or 32-bit Wine?

In this guide for installing Wine, we will enable repositories support for 32-bit platforms (i386) in order to download the necessary libraries. The question may arise, is there a 64-bit Wine, and if it exists, why do we need to enable repositories for i386 and download the 32-bit version?

Yes. 64-bit Wine has been available on Linux since version 1.2. WineHQ binary packages are available for 64-bit versions and most major distributions package them for users. Generally, installation should be as simple as installing the Wine package for your distribution through the package manager.

But there are a few very important notes:

  • 32-bit Wine runs on both 32-bit and 64-bit versions of Linux/Unix. It will run 16-bit and 32-bit Windows applications.
  • 64-bit Wine only works on 64-bit installations and has only been extensively tested on Linux so far. To run 32-bit Windows applications, the installation of 32-bit libraries is required. Both 32-bit and 64-bit Windows applications (should) work with it; however, there are many more errors.
  • The current Wine includes support for 64-bit Wine on Mac OS X; however, this has not been thoroughly tested and some applications may never work due to ABI incompatibility between Win64 and OS X.

The main thing that follows from this is that even when installing 64-bit Wine, you need to activate 32-bit repositories, since many Windows applications are still 32-bit and in any case you need to install 32-bit libraries, otherwise many programs just will not work.

You can explicitly select the wine64 package during installation, but even if you install “wine”, it will be the 64-bit version if you run a 64-bit Linux.

How to install Wine

Installing Wine on Debian, Kali Linux, Linux Mint, Ubuntu, and their derivatives

Run the following commands:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine winbind

After installation, start Wine – it may offer to download the necessary fonts and other components:

winecfg

To check the Wine version run the command:

wine --version

Installing Wine on Arch Linux

Open the /etc/pacman.conf text file:

sudo gedit /etc/pacman.conf

In it, find and uncomment the lines (be sure to uncomment both lines, otherwise the changes will not take effect):

[multilib]
Include = /etc/pacman.d/mirrorlist

Update package cache:

sudo pacman -Sy

Install Wine:

sudo pacman -S wine wine_gecko wine-mono
sudo pacman -S lib32-mpg123 lib32-gnutls

How to run a program in Wine

Launch by double clicking on the executable file

To launch Windows applications on Linux, it is usually enough to double-click on them. But it may be that the .exe file will be opened by an archive manager or another application (usually an archive manager).

In this case, right-click on the file, select “Open with” and select “Wine”.

If you do not have Wine in the context menu, then do this:

  • right click on the application you want to launch
  • select “Open with” and then “Other

  • check the “Custom command” box and where the input line is, enter “wine”. Check the box “Save association” and “Set selected application as default action”, click OK. Now all .exe files will be opened by double clicking.

Pay attention to how economically the RAM is used – only 1 megabyte of RAM is needed to run Router Scan by Stas'M in Kali Linux. If we installed Windows in a virtual machine to run this program, it would take several gigabytes for the OS to work. In addition, when using Wine, it is not necessary that the processor supports virtualization – unlike VirtualBox and other similar ways to run virtual computers.

Run on command line

Since Windows programs often look for files relative to where they were launched from, when using the command line you must launch them in a very specific way: “change directory” to the folder where the program is located and run the .exe file using only its filename. For example:

cd '.wine/drive_c/Games/Tron'
wine tron.exe

Using wine start

In some cases, you may need to specify the full path to the executable. For example, if you need to install a program from multiple CDs, entering a directory in the terminal will prevent you from ejecting the CD.

You need to use wine start if you provide the full path to the .exe, because this allows Wine to set the working directory for the program if it needs one.

You can give Wine a DOS or Windows style path in single quotes, like so:

wine start 'C:\Games\Tron\tron.exe'

You can also use double quotes, but you need two backslashes instead of one:

wine start "C:\\Games\\Tron\\tron.exe"

If you prefer to use a Unix-style path, use the /unix option to start, like so:

wine start /unix "$HOME/installers/TronSetup.exe"

Passing Windows Command Line Arguments

If you are using a program with arguments on Windows, for example:

quake.exe -map e1m1

Then you can do the same in Wine by running:

wine quake.exe -map e1m1

That is, the command line is identical except for wine in front of it. Note, however, that you may need to escape some special characters with a backslash due to how they are handled in the Linux shell. For example:

quake.exe -map C:\Quake\e1m1.bsp

becomes:

wine quake.exe -map C:\\Quake\\e1m1.bsp

Running .msi files

MSI files cannot be run directly; you need to either use the Wine program msiexec or run Wine from a terminal:

wine msiexec /i whatever.msi

or:

wine start whatever.msi

Wine Explorer style graphical environment (Wine File Manager)

If you prefer to use a GUI to manage your files, you might want to consider using winefile. This Winelib application comes with Wine and can be found with other Wine programs. This is a useful way to view your disk configuration and find files, and you can also run programs directly from Winefile. Please note that many features are not implemented yet.

To open it run:

winefile

How to set up Favorites in Wine File Manager and add folders

Wine File Manager is similar to Windows Explorer. It can be opened with the command

 

winefile

There you can see several labels and drives.

Among the labels you will find:

  • My Computer
  • Documents
  • Trash
  • / (Linux file system root)

My Computer contains all disks connected to Linux. The “C:” drive is what is located in the ~/.wine/drive_c/ folder. The “Z:” drive is the root drive of the Linux file system. Other letters are flash drives and disks plugged to Linux.

The root element of shortcuts is Desktop, that is, the desktop. This refers to the Linux desktop, not Windows.

That is, if you want a new folder to be visible in the Wine File Manager, then create it on your Linux desktop, for example:

mkdir ~/Desktop/Favorites/

You can copy any files to this folder for quick access.

You can also create shortcuts in this folder to files and programs both in the Wine file system and outside it.

Command to create a shortcut:

ln -s TARGET DIRECTORY

For example, the following command will create a link to ~/.wine/drive_c/windows/notepad.exe in the ~/Desktop/Favorites/ folder:

ln -s ~/.wine/drive_c/windows/notepad.exe ~/Desktop/Favorites/

To add the Downloads, Videos, Music folders next to the Documents folder in the Explorer folder tree, you can create the appropriate links:

ln -s ~/Downloads/ ~/Desktop/
ln -s ~/Music/ ~/Desktop/
ln -s ~/Videos/ ~/Desktop/

If you want to change drive letters, then run Wine configuration:

winecfg

And go to the Drives tab to customize the display of drives in the Wine File Manager:

How to run a .bat file in Wine

You can run the .bat file in many ways:

1. Run the command

winefile

Find the .bat file and double click on it.

2. Run the command

wine explorer

And find the file you need in the Explorer window.

Either do:

wine explorer /PATH/TO/FOLDERS

to immediately get to the desired folder.

When you find the .bat file, double click on it.

3. You can run the .bat file on the command line using a construct like:

wine start /PATH/TO/FILE.bat

If you are using a path to a file on the Linux file system, you must specify the /unix option.

How to install a program in Wine and create a shortcut

If the program is portable, then you can place it anywhere on the disk – not necessarily in the Wine folder. By the way, the default C: drive in Wine is ~/.wine/drive_c/.

As already mentioned, you do not have to put the files with the program there. You can run portable programs in the ways shown above.

If the program is distributed as an installer, then simply run this installer using Wine. In most cases, everything will go as in Windows, the usual installation will be performed on your Linux desktop and a shortcut will appear in the menu to launch the program.

For a portable program, you can also make a shortcut. To do this, right-click on the desktop and select “Create a new launcher here” (in Cinnamon), “Create Launcher” (in XFCE), or similar.

There is usually an option to set an icon, including icons for programs ever run in Wine.

Even if the “Create launcher” wizard allows you to specify a working directory, it's best not to rely on it. As a launch command, specify a command of the form:

bash -c 'cd /PATH/TO/FOLDER/WITH/FILE/; wine ./FILE.exe'

That is, the command to be executed includes two subcommands – switching to the desired directory and launching the executable file.

For example, if the executable file is located in /home/mial/.wine/drive_c/Program Files (x86)/foobar2000/ and is called foobar2000.exe, then the run command is:

bash -c 'cd "/home/mial/.wine/drive_c/Program Files (x86)/foobar2000/"; wine ./foobar2000.exe'

Note that:

  • specified absolute, not relative path to the folder
  • if the path contains spaces or other shell-specific characters (such as brackets), they must be escaped, or the path must be enclosed in quotation marks.

Another example, when the file is not on the Wine drive: you need to create a shortcut to run the file /mnt/disk_d/Share/Conses/ConsFed/cons.exe, then the run command is as follows:

bash -c 'cd /mnt/disk_d/Share/Conses/ConsFed/; wine ./cons.exe'

If the program requires a special version of Wine or additional components, then you can find scripts that simplify their installation, they will be discussed later in the sections on PlayOnLinux and winetricks.

Built-in programs in Wine

Wine has several built-in “standard Windows programs”.

Notebook

Launch:

notepad

or

wine notepad

Registry Editor

Launch:

regedit

or

wine regedit

More details about the registry and the registry editor will be below.

File Explorer

To open File Explorer, run the command:

wine explorer

In Explorer, you can open “My Computer” – there will be links to all drives in Linux. The “C:” drive is what is located in the ~/.wine/drive_c/ folder. The “Z:” drive is the root drive of the Linux file system. Other drives are Linux-attached flash drives and disks.

In Explorer, you can run .bat files by double-clicking, as well as manage files (move, create, delete them) in a graphical interface.

Task Manager

To open the Task Manager, run the command:

wine taskmgr

Minesweeper game

Launch:

winemine

Internet Explorer browser

Actually, it's not real IE – it's a browser based on Firefox.

Launch:

wine iexplore

You can install older versions of Internet Explorer if you wish, but even Windows has ditched IE in recent versions and switched to a Chrome-based web browser.

Windows command line

Run:

wine cmd

CMD built-in commands are:

ASSOC           Show or modify file extension associations
ATTRIB          Show or change DOS file attributes
CALL            Invoke a batch file from inside another
CD (CHDIR)      Change current default directory
CHOICE          Wait for an keypress from a selectable list
CLS             Clear the console screen
COPY            Copy file
CTTY            Change input/output device
DATE            Show or change the system date
DEL (ERASE)     Delete a file or set of files
DIR             List the contents of a directory
ECHO            Copy text directly to the console output
ENDLOCAL        End localization of environment changes in a batch file
FTYPE           Show or modify open commands associated with file types
HELP            Show brief help details on a topic
MD (MKDIR)      Create a subdirectory
MKLINK  Create a symbolic link
MORE            Display output in pages
MOVE            Move a file, set of files or directory tree
PATH            Set or show the search path
PAUSE           Suspend execution of a batch file
POPD            Restore the directory to the last one saved with PUSHD
PROMPT          Change the command prompt
PUSHD           Change to a new directory, saving the current one
REN (RENAME)    Rename a file
RD (RMDIR)      Delete a subdirectory
SET             Set or show environment variables
SETLOCAL        Start localization of environment changes in a batch file
START           Start a program, or open a document in the associated program
TIME            Set or show the current system time
TITLE           Set the window title for the CMD session
TYPE            Type the contents of a text file
VER             Show the current version of CMD
VOL             Show the volume label of a disk device
XCOPY           Copy source files or directory trees to a destination
EXIT            Close down CMD

Enter

HELP COMMAND

for further information on any of the above commands.

MSI Installer

This program is mentioned above in section “5.5 Running .msi Files”.

Run command:

msiexec

Control Panel

Run:

wine control

Program to view .chm files in Linux

Wine has a built-in hh.exe program that can open .chm files.

.chm files, also called MS Windows HtmlHelp Data, are usually files with help on using the program with which they are distributed.

After installing Wine, you can open the CHM file by double-clicking. Another way to open a CHM file is to use the command line:

wine hh.exe '/PATH/TO/FILE.chm'

For example:

wine hh.exe '/home/mial/Downloads/VeraCrypt User Guide.chm'

How to uninstall a program from Wine

To uninstall a program from Wine, go to the “Add/Remove Programs” settings, to do this, run:

wine uninstaller

Next, select the program to uninstall and click the “Modify/Remove” button. Shortcuts created during installation will be removed automatically.

Wine file system

By default, the files are physically located in the ~/.wine folder. That is, if you want to “reinstall Windows”, that is, completely remove all settings and installed programs, you can delete this folder. But remember that the shortcuts made in the menu and on the desktop will remain, because they are located in other places.

When using WINEPREFIX (more on that later), a different folder will be used to store files.

In explorer

wine explorer

you can open “My Computer” – there will be links to all drives in Linux. The “C:” drive is what is located in the ~/.wine/drive_c/ folder. The “Z:” drive is the root drive of the Linux file system. Other drives are Linux-attached flash drives and disks.

You can change this by opening “Wine Settings” and going to the “Disks” tab:

winecfg

WINEPREFIX (prefixes)

By default, Wine stores configuration files and installed Windows applications in the ~/.wine directory. This directory is called the Wine prefix. It is created and updated automatically as needed when running Windows programs and Wine setup programs such as winecfg. The prefix directory also contains the standard Windows root directory structure, which appears to Windows programs as the C: drive.

You can change the location of the prefix by creating a WINEPREFIX environment variable with a new path. This is useful when you need to use different environments for different Windows applications. When starting a Windows application, a new prefix will be automatically created at the location specified in WINEPREFIX, if it did not exist before.

For example, if you run one application with

env WINEPREFIX=~/.win-a wine program-a.exe

and the other with

env WINEPREFIX=~/.win-b wine program-b.exe

each program will have its own C: drive, respectively, its own copy of all settings and the registry. Thus, both programs will run in completely isolated environments from each other.

Note: However, Wine prefixes are not sandboxed. Programs running in Wine can also access the rest of the system (eg partition Z: usually corresponds to the root of the file system, i.e. /).

To create a prefix without running any Wine configuration tools or Windows applications, you can use the command:

env WINEPREFIX=~/.customprefix wineboot -u

You can change the prefix that Wine uses by changing the WINEPREFIX environment variable (outside of Wine). To do this, run something like the following in a terminal:

export WINEPREFIX=~/.wine-new
wine winecfg

To use the default prefix, use the command

unset WINEPREFIX

Or just set WINEPREFIX to ~/.wine.

Alternatively, you can prefix wine on each command, e.g.

WINEPREFIX=ПУТЬ_ДО_wineprefix wine winecfg

You can rename, move, copy and delete prefixes without affecting others, and each prefix has its own wineserver instance.

How to create a 32-bit Wine prefix on a 64-bit system?

Currently, there are a number of serious bugs that prevent many 32-bit applications from working with the 64-bit Wine prefix. To work around this, you can create a new 32-bit Wine prefix using the WINEARCH environment variable. In terminal enter:

WINEARCH=win32 WINEPREFIX=PATH_TO_wineprefix winecfg

Use the actual path to WINEPREFIX. Don't use an existing directory for the new wineprefix: Wine has to create it for you.

After creating a 32-bit wineprefix, you no longer need to specify WINEARCH on the command line to use it, as the architecture of an existing wineprefix cannot be changed. Note that if you want to use a wineprefix other than the default one (~/.wine), then you need to specify the WINEPREFIX variable when installing anything (including winetricks):

WINEPREFIX=PATH_TO_wineprefix wine start /unix PATH_TO_INSTALLER

How to run two programs as if they were on different computers?

Example: you have server and client programs. And one will not work in the presence of the other.

This is where using different wineprefixes will help, as they essentially mimic two Windows machines.

Run the first program as usual:

wine first-program.exe

The second one needs to be run with a different prefix, so we need to change the WINEPREFIX environment variable:

WINEPREFIX="$HOME/.wine-second" wine second-program.exe

First-program.exe and second-program.exe can be two copies of the same program.

How to make Wine run an application in a virtual desktop

You can do this with winecfg. Add the app in the Applications tab, and then in the Graphics tab, enable Emulate a virtual desktop.

You can also use the following command:

wine explorer /desktop=name,1024x768 program.exe

Replace program.exe with the name of your program and change the resolution to the virtual desktop size you need. For example:

wine explorer /desktop=HackWare.ru,1024x768 '/home/mial/.wine/drive_c/Program Files (x86)/foobar2000/foobar2000.exe'

Changing the name allows you to open multiple desktops at the same time.

Assistants in installing programs and libraries in Wine

PlayOnLinux

PlayOnLinux is a program with a graphical interface that contains a database of high-quality and up-to-date scripts that help you install Windows programs in just a few clicks. At its core, PlayOnLinux is a wrapper for Wine that facilitates and automates the installation of programs, especially those requiring dependencies.

The PlayOnLinux scripts make heavy use of WINEPREFIX and each application installs its own WINEPREFIX. This means that the work of different programs does not affect each other, and you can easily remove any of them without affecting the others.

PlayOnLinux has a set of native functions that can be called from scripts. These functions allow you to install the necessary libraries, dll files, runtimes, and more.

In its work, the program creates WINEPREFIX from different versions of Wine. That is, if a certain version of Wine is recommended for the program to work, then this version will be used.

Advantages of PlayOnLinux:

  • very convenient graphical interface, you do not need to enter commands to install programs, just click the mouse
  • easy to use – select the desired game or program with the mouse and install it
  • high-quality and extensive base of games and programs for installation
  • good relevance of installation scripts, actively supported by the community
  • accessing Wine settings not present in its GUI
  • the ability to change the version of Wine for already installed programs
  • the ability to install programs and games from a local installer, disk or download an installer
  • automatic download of free software installers

The peculiarity of this program is that the Wine version is explicitly specified in the PlayOnLinux scripts. This applies even to problem-free programs that work fine on any version of Wine. But since the Wine version must be specified explicitly, the latest version is specified at the time the script was written. As a result, when installing different programs, PlayOnLinux will load different versions of Wine. Each version of Wine plus the prefix takes up quite a lot of space.

This means that if you want to install some simple application that doesn't require you to install additional software, install it using Wine without using PlayOnLinux – this will save you several hundred megabytes of disk space.

Installing PlayOnLinux on Debian, Kali Linux, Linux Mint Ubuntu and their derivatives:

sudo apt install playonlinux

Installing PlayOnLinux on Arch Linux, BlackArch and their derivatives:

sudo pacman -S playonlinux

To install the program in PlayOnLinux, click the “Install” button.

Select the category and the program or game in it that you want to install and click the “Install” button again (at the bottom of the window).

Next, a window with important recommendations will be displayed:

  • if the program allows you to choose the installation location, always install to the C: drive and do not change the default installation location at all
  • if the installer asks “Do you want to run the program now?”, then always choose “No”
  • if the program asks “Do you want to restart your computer now?” you can choose “Yes”, but this does not mean that you need to reboot the host system (shortly speaking – you can answer whatever you like and do nothing)

Information about the selected program to install.

And here is what was mentioned above – the 7-Zip installation file is less than 2 megabytes in size and the program itself after installation takes about the same amount. But for it, the version of Wine specified in the script is downloaded, which occupies almost 300 megabytes, plus the expanded prefix will also take up space.

If the program is free, then you can choose to download from the network or specify an installer on your computer if you have downloaded the program beforehand.

For some programs, it is suggested to install from a disk or from Steam.

The normal installer of the selected program starts.

After installation, the shortcut of the selected program is added to the menu, to the desktop, and also to PlayOnLinux.

For each installed program, you can make fine adjustments. For example, choose a different version of Wine.

You can perform standard actions for a given prefix in the PlayOnLinux GUI.

If necessary, you can install additional components – all sorts of runtimes, missing DLLs, Windows programs, and much more.

You can change the display settings – as far as I understand, in Wine this can only be done directly by editing the Windows registry.

On the last settings tab, you can select an arbitrary .exe file to execute on the given virtual disk (prefix).

Winetricks

Winetricks is an easy way to solve various problems in Wine related to installing programs and games and configuring Wine.

Winetricks is a helper script for downloading and installing various redistributable runtime libraries required to run some programs in Wine. These may include replacing Wine components using closed source libraries.

Winetricks has a graphical menu of supported games/applications for which it can perform sequential actions. It also allows you to install missing DLLs and configure various Wine options. You can choose the prefix where you want to install the application or change the setting.

Installing Winetricks on Debian, Kali Linux, Linux Mint Ubuntu and derivatives:

sudo apt install winetricks

Installing Winetricks on Arch Linux, BlackArch and their derivatives:

sudo pacman -S winetricks

If you don't have Winetricks in your distribution's repository, or if you want the latest version, then all you need to do to install and run it is to run the following commands:

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
./winetricks

The program has a graphical interface. In the window that opens, you can immediately perform actions in the default prefix or create a new prefix:

An example of actions after choosing a prefix:

Creating a new prefix – just select its version (32-bit or 64-bit) and name.

A new prefix has been added to the list and now you can select it to install programs and perform other actions:

An example of the settings you can change for the selected prefix:

Example programs for installation:

In Winetricks, the installation steps are called verbs. Each verb installs an application or changes settings.

Usage:

./winetricks [options] [command|verb|path-to-verb] ...

Executes given verbs. Each verb installs an application or changes a setting.

Options:

    --country=CC      Set country code to CC and don't detect your IP address
-f, --force           Don't check whether packages were already installed
    --gui             Show gui diagnostics even when driven by commandline
    --gui=OPT         Set OPT to kdialog or zenity to override GUI engine
    --isolate         Install each app or game in its own bottle (WINEPREFIX)
    --self-update     Update this application to the last version
    --update-rollback Rollback the last self update
-k, --keep_isos       Cache isos (allows later installation without disc)
    --no-clean        Don't delete temp directories (useful during debugging)
-q, --unattended      Don't ask any questions, just install automatically
-r, --ddrescue        Retry hard when caching scratched discs
-t  --torify          Run downloads under torify, if available
    --verify          Run (automated) GUI tests for verbs, if available
-v, --verbose         Echo all commands as they are executed
-h, --help            Display this message and exit
-V, --version         Display version and exit

Commands:
list                  list categories
list-all              list all categories and their verbs
apps list             list verbs in category 'applications'
benchmarks list       list verbs in category 'benchmarks'
dlls list             list verbs in category 'dlls'
fonts list            list verbs in category 'fonts'
games list            list verbs in category 'games'
settings list         list verbs in category 'settings'
list-cached           list cached-and-ready-to-install verbs
list-download         list verbs which download automatically
list-manual-download  list verbs which download with some help from the user
list-installed        list already-installed verbs
arch=32|64            create wineprefix with 32 or 64 bit, this option must be
                      given before prefix=foobar and will not work in case of
                      the default wineprefix.
prefix=foobar         select WINEPREFIX=/home/mial/.local/share/wineprefixes/foobar
annihilate            Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX

When run without options, winetricks displays a GUI with a list of available packages. If you know the names of the packages you want to install, you can add them to the winetricks command and the installation process will begin immediately. For example, the command

winetricks corefonts vcrun6

will install corefonts and vcrun6 packages.

Like all Wine commands, winetricks is aware of the WINEPREFIX environment variable. This is useful for using winetricks with different Wine prefix locations. For example,

env WINEPREFIX=~/.winetest sh winetricks mfc40

installs the mfc40 package in the ~/.winetest folder.

Users with more than one version of Wine on their system (for example, an installed package and an uninstalled Wine built from git) can specify which version of Winetricks should be used. For example,

env WINE=~/wine-git/wine winetricks mfc40

installs the mfc40 package using Wine to the ~/wine-git directory.

Which is better, PlayOnLinux or Winetricks?

Some actions of PlayOnLinux and Winetricks intersect, that is, the same program can be installed both through PlayOnLinux and through Winetricks, what should I choose?

First, if it's an easy-to-install program on Linux that doesn't require dependencies, like foobar2000 or 7-Zip, then don't use either of those programs – install it directly, because PlayOnLinux will create a new virtual disk and load the new version of Wine (a lot of disk space), and Winetricks will almost certainly download the old version (although the script is updated almost every day, many links in it have time to become outdated).

Secondly, if you need to install a dependency or a program that requires additional components, then I would recommend PlayOnLinux simply as an easier option. But if you want to install a component not to a new prefix, but to an existing prefix, then it is more convenient to use Winetricks, since it does not have the obligatory stage of creating a new virtual disk.

Using the Registry and Regedit

All settings you change in winecfg, with the exception of disk settings, are eventually stored in the registry. On Windows, this is the central repository for application and operating system configuration. Similarly, Wine implements the registry, and some settings that are not in Winecfg can be changed in it.

Registry structure

The Windows Registry is a complex tree structure, and even most Windows programmers are not fully aware of how the Registry works with its various “hives” and “bushes” and the many relationships between them; a full description is beyond the scope of this document. But here are the main registry keys you might need to know about now:

  • HKEY_LOCAL_MACHINE

This master root key (in win9x it is stored in the system.dat hidden file system) contains everything related to the current Windows installation. It is often abbreviated as HKLM.

  • HKEY_USERS

This master root key (in Win9x it is stored in a hidden user.dat file) contains configuration data for each installation user.

  • HKEY_CLASSES_ROOT

This is a link to HKEY_LOCAL_MACHINE\Software\Classes. It contains data that describes things like file associations, OLE document handlers, and COM classes.

  • HKEY_CURRENT_USER

This is a link to HKEY_USERS\your_name, i.e. your personal configuration.

Registry files

Now you are probably wondering how this maps to the Wine structure. The registry layout described above is actually in three different files in each user's ~/.wine directory:

  • system.reg

This file contains HKEY_LOCAL_MACHINE.

  • user.reg

This file contains HKEY_CURRENT_USER.

  • userdef.reg

This file contains HKEY_USERS\.Default (i.e. default user settings).

These files are automatically created the first time you use Wine. The set of global settings is stored in the wine.inf file and processed by the rundll32.exe program. The first time you start Wine, the wine.inf file is parsed to populate the original registry. The registry is also updated automatically when wine.inf is modified, such as when upgrading to a newer version of Wine.

It is not recommended to edit these files to change the registry as they are managed internally by Wine. Use regedit.exe, reg.exe, or any program that uses standard registry functions.

Using Regedit

An easy way to access and modify the registry is with the regedit tool.

regedit

Like the Windows program it replaces, regedit serves to provide a system-level view of the registry containing all the keys. When you run it, you will immediately notice that the cryptic keys displayed in the text file are organized in a hierarchy.

To navigate through the registry, click the items on the left to navigate to sub-items. To delete a key, click it and choose Delete from the Edit menu. To add a key or value, find where you want to put it and choose New from the Edit menu. Similarly, you modify an existing key by selecting it in the right pane of the window and choosing Edit from the Edit menu. Another way to perform the same actions is to right-click on a key or value.

Of particular interest to Wine users are the settings stored in HKEY_CURRENT_USER\Software\Wine. Most of the settings you change in winecfg are written to this area of the registry.

Full list of registry keys

See the wiki for an up-to-date list of useful registry keys and values.

Recommended for you:

Leave a Reply

Your email address will not be published. Required fields are marked *