Skip to content

Winetricks is an easy way to work around problems in Wine


Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation



Homepage of Winetricks, previously hosted at

Winetricks is an easy way to work around problems in Wine.

It has a menu of supported games/apps for which it can do all the workarounds automatically. It also allows the installation of missing DLLs and tweaking of various Wine settings.

The latest version can be downloaded here:

Tagged releases are accessible here:


The winetricks package should be used if it is available and up to date. The package is available in most mainstream (Unix-like) Operating Systems:

Note: packaged Debian / Ubuntu winetricks versions are typically outdated, so a manual installation is recommended.

Manual Install

If the package is unavailable, outdated, or the latest version is desired, a manual installation of winetricks can be done. It is highly recommended to uninstall any previously installed version of winetricks first.

If you don't uninstall a previously installed, packaged version of winetricks... Well then you get to pick up the pieces!

E.g. for Debian / Ubuntu:

sudo apt-get purge winetricks

Installing The Latest Stable Release

Download the latest release from Github.

Extract the archive and cd into the extracted folder.

Run sudo make install to install Winetricks system-wide.

Scripted Install

You can use a shell script to download the current winetricks script(s):

# Create and switch to a temporary directory writeable by current user. See:
cd "$(mktemp -d)" || exit 1

# Use a BASH "here document" to create an updater shell script file.
# See:
# >  outputs stdout to a file, overwriting any pre-existing file
# << takes input, directly from the script itself, till the second '_EOF_SCRIPT' marker, as stdin
# the cat command hooks these 2 streams up (stdin and stdout)
###### create update_winetricks START ########
cat > update_winetricks <<_EOF_SCRIPT

# Create and switch to a temporary directory writeable by current user. See:
cd "\$(mktemp -d)"

# Download the latest winetricks script (master="latest version") from Github.

# Mark the winetricks script (we've just downloaded) as executable. See:
chmod +x winetricks

# Move the winetricks script to a location which will be in the standard user PATH. See:
sudo mv winetricks /usr/bin

# Download the latest winetricks BASH completion script (master="latest version") from Github.

# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks

# Download the latest winetricks MAN page (master="latest version") from Github.

# Move the winetricks MAN page to a standard location for MAN pages. See:
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
###### create update_winetricks FINISH ########

# Mark the update_winetricks script (we've just written out) as executable. See:
chmod +x update_winetricks

# We must escalate privileges to root, as regular Linux users do not have write access to '/usr/bin'.
sudo mv update_winetricks /usr/bin/

See the manpages for the individual functions, if you are not clear how they are being used, e.g.

man mktemp
man mv
man wget
man sudo

An alternative updater script implementation, using su in place of sudo, is also possible:

cd "$(mktemp -d)"
cat > update_winetricks <<_EOF_SCRIPT

cd "\$(mktemp -d)"
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'

chmod +x update_winetricks
su root sh -c 'mv update_winetricks /usr/bin/'

To use curl instead of wget: substitute all wget calls with curl -O, in the winetricks update script.


Using the traditional Unix crontab...

sudo ln "/usr/bin/update_winetricks" "/etc/cron.weekly/update_winetricks"

Note: ensure you have a cron utility installed and enabled, on systems utilizing systemd by default.

The update script can be automated, to run on a set schedule, via (where available) systemd units. E.g. to create a scheduled winetricks updater systemd timer unit, and an associated systemd service unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
Description=Run winetricks update script weekly (Saturday)



cat > winetricks_update.service <<_EOF_SERVICE_UNIT
Description=Run winetricks update script

ExecStart=/bin/sh /usr/bin/update_winetricks

sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/


To start and enable the winetricks update timer:

sudo systemctl daemon-reload
sudo systemctl enable winetricks_update.timer
sudo systemctl start winetricks_update.timer

The core winetricks script can also be updated by simply doing:

winetricks --self-update


sudo winetricks --self-update

for a system-wide winetricks installation.

Custom .verb files

New dll/settings/programs can be added to Winetricks by passing a custom .verb (format below)

Example icecat.verb:

w_metadata icecat apps \
    title="GNU Icecat 38.8.0" \
    publisher="GNU Foundation" \
    year="2016" \
    media="download" \
    file1="" \

    w_download${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
    w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/"

Note that the file prefix (icecat.verb) and command name (icecat) must match. All metadata fields are optional, only the command name and category are required.


The tests need bashate and shellcheck>=0.4.4 installed. Makefile supports a few test targets:

  • check - runs './tests/winetricks-tests quick' (without first clearing $WINETRICKS_CACHE)
  • shell-checks - runs './tests/shell-checks'
  • test - runs './tests/winetricks-tests full' (and clears $WINETRICKS_CACHE first)
  • xvfb-check - runs './tests/winetricks-tests xvfb-check' (without first clearing $WINETRICKS_CACHE first)