Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Winetricks

License

Homepage of Winetricks, previously hosted at https://code.google.com/p/winetricks.

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: https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

Tagged releases are accessible here: https://github.com/Winetricks/winetricks/releases

Installing

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.

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

Then, for Ubuntu, use a shell script to download the current winetricks script(s). E.g.:

#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "$(mktemp -d)" || exit 1
# Use a BASH "here document" to create an updater shell script file.
# See:
# https://www.tldp.org/LDP/abs/html/here-docs.html
# > 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
#!/bin/sh
# Create and switch to a temporary directory writeable by current user. See:
# https://www.tldp.org/LDP/abs/html/subshells.html
cd "\$(mktemp -d)"
# Download the latest winetricks script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
# Mark the winetricks script (we've just downloaded) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
chmod +x winetricks
# Move the winetricks script to a location which will be in the standard user PATH. See:
# https://www.tldp.org/LDP/abs/html/internalvariables.html
sudo mv winetricks /usr/bin
# Download the latest winetricks BASH completion script (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
# Move the winetricks BASH completion script to a standard location for BASH completion modules. See:
# https://www.tldp.org/LDP/abs/html/tabexpansion.html
sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks
# Download the latest winetricks MAN page (master="latest version") from Github.
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1
# Move the winetricks MAN page to a standard location for MAN pages. See:
# https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES
sudo mv winetricks.1 /usr/share/man/man1/winetricks.1
_EOF_SCRIPT
###### create update_winetricks FINISH ########
# Mark the update_winetricks script (we've just written out) as executable. See:
# https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm
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
#!/bin/sh
cd "\$(mktemp -d)"
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion
chmod +x winetricks
su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks'
_EOF_SCRIPT
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.

Updating

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 systemdtimer unit, and an associated systemdservice unit:

cd "$(mktemp -d)"
cat > winetricks_update.timer <<_EOF_TIMER_UNIT
[Unit]
Description=Run winetricks update script weekly (Saturday)
[Timer]
OnCalendar=Sat
Persistent=true
[Install]
WantedBy=timers.target
_EOF_TIMER_UNIT
cat > winetricks_update.service <<_EOF_SERVICE_UNIT
[Unit]
Description=Run winetricks update script
After=network.target
[Service]
ExecStart=/bin/sh /usr/bin/update_winetricks
Type=oneshot
_EOF_SERVICE_UNIT
sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/

See:

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

or:

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="icecat-38.8.0.en-US.win32.zip" \
installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe"
load_icecat()
{
w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213
w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip"
}

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.

Tests

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)

Support

About

Winetricks is an easy way to work around problems in Wine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages