Top Related Projects
My custom build of wine, made to use with lutris. Built with lutris's buildbot.
Compatibility tool for Steam Play based on Wine and additional components
A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
Quick Overview
Wine-tkg-git is a custom Wine build project maintained by the Frogging-Family community. It aims to provide an enhanced version of Wine with various patches, optimizations, and customization options for improved compatibility and performance when running Windows applications on Linux and other Unix-like systems.
Pros
- Includes numerous patches and optimizations not found in standard Wine builds
- Offers extensive customization options through build configuration files
- Regularly updated with the latest Wine developments and community contributions
- Provides improved compatibility for many Windows games and applications
Cons
- Requires manual compilation, which can be time-consuming and complex for beginners
- May introduce instability or compatibility issues not present in official Wine releases
- Requires more system resources due to additional features and optimizations
- Documentation can be overwhelming for new users due to the many configuration options
Getting Started
To build wine-tkg-git:
-
Clone the repository:
git clone https://github.com/Frogging-Family/wine-tkg-git.git cd wine-tkg-git
-
Copy the sample configuration file:
cp customization.cfg.example customization.cfg
-
Edit
customization.cfg
to set your desired options -
Run the build script:
./non-makepkg-build.sh
-
Wait for the compilation to complete (this may take a while)
-
The built Wine package will be available in the
wine-tkg-git/non-makepkg-builds
directory
Note: Detailed instructions and additional information can be found in the project's README and wiki pages on GitHub.
Competitor Comparisons
My custom build of wine, made to use with lutris. Built with lutris's buildbot.
Pros of wine-ge-custom
- Pre-built binaries available, making it easier for users to install and use
- More frequent updates and releases, providing quicker access to new features and fixes
- Specifically optimized for gaming, with a focus on compatibility with popular game platforms like Steam
Cons of wine-ge-custom
- Less customizable than wine-tkg-git, as it doesn't offer the same level of build options
- May not include some of the more experimental patches found in wine-tkg-git
- Potentially less suitable for non-gaming applications due to its gaming-centric focus
Code Comparison
wine-ge-custom:
#!/bin/bash
set -e
export WINEDEBUG=-all
export DXVK_LOG_LEVEL=none
export DXVK_STATE_CACHE=0
wine-tkg-git:
#!/bin/bash
_NUKR="false"
_NOINITIALPROMPT="false"
_NOREVERTS="false"
_NOPREPS="false"
_NOPATCHMSG="false"
The code snippets show differences in initial setup and environment variables, reflecting the different focuses of each project. wine-ge-custom emphasizes gaming-specific settings, while wine-tkg-git provides more customization options.
Compatibility tool for Steam Play based on Wine and additional components
Pros of Proton
- Officially supported by Valve for Steam games
- Includes additional compatibility layers like DXVK and VKD3D
- Regular updates and optimizations for popular games
Cons of Proton
- Less customizable than wine-tkg-git
- Primarily focused on Steam games, may not be optimal for non-Steam applications
- Limited control over Wine version and patches
Code Comparison
While both projects are based on Wine, their approaches to implementation differ:
Proton:
#!/usr/bin/env python3
from __future__ import print_function
import os
import sys
import subprocess
wine-tkg-git:
#!/bin/bash
_where="$PWD"
srcdir="$_where"
_pkgname="wine-tkg-git"
pkgdesc="Wine - Custom Wine build with patches"
The Proton codebase uses Python for its main script, while wine-tkg-git primarily uses Bash scripting. This reflects their different focuses, with Proton aiming for a more integrated approach within the Steam ecosystem, and wine-tkg-git offering greater flexibility for custom builds.
A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
Pros of protontricks
- Specifically designed for managing Proton prefixes and Windows games on Linux
- Simpler to use for Proton-specific tasks
- Integrates well with Steam and Proton environments
Cons of protontricks
- Limited to Proton-specific functionality
- Less customizable compared to wine-tkg-git
- May not support advanced Wine configuration options
Code Comparison
protontricks:
def run_command(command, env=None, cwd=None):
process = subprocess.Popen(
command, env=env, cwd=cwd,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
return process.returncode, stdout, stderr
wine-tkg-git:
_proton_tkg() {
_pkgname="proton_tkg"
pkgdesc="Valve's Proton with Wine-tkg-git patches"
depends+=('steam')
provides+=('proton')
conflicts+=('proton')
}
The code snippets show that protontricks focuses on running commands within the Proton environment, while wine-tkg-git includes functionality for building custom Proton packages with Wine patches. This reflects their different purposes: protontricks for managing Proton prefixes, and wine-tkg-git for creating customized Wine/Proton builds.
Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
Pros of vkd3d-proton
- Focused specifically on DirectX 12 to Vulkan translation
- Optimized for use with Proton and Steam Play
- Actively maintained by Valve developers
Cons of vkd3d-proton
- More limited scope compared to wine-tkg-git's full Wine implementation
- May require additional components for full Windows game compatibility
- Less customization options for end users
Code Comparison
vkd3d-proton (DirectX 12 to Vulkan translation):
VkResult vkd3d_create_instance(const struct vkd3d_instance_create_info *create_info,
struct vkd3d_instance **instance)
{
struct vkd3d_instance *object;
VkResult vr;
// ... (implementation details)
}
wine-tkg-git (Wine implementation):
NTSTATUS WINAPI NtCreateFile(PHANDLE FileHandle, ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes, PIO_STATUS_BLOCK IoStatusBlock,
PLARGE_INTEGER AllocationSize, ULONG FileAttributes, ULONG ShareAccess,
ULONG CreateDisposition, ULONG CreateOptions, PVOID EaBuffer, ULONG EaLength)
{
// ... (implementation details)
}
The code snippets demonstrate the different focus areas of each project. vkd3d-proton deals with Vulkan instance creation for DirectX 12 translation, while wine-tkg-git implements Windows API functions like file creation.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Wine to rule them all !
You must be logged in to GitHub in order to download Wine or Proton nightly builds.
Wine nightly builds
- wine-staging patchset applied
Wine | Arch Linux | Fedora | Ubuntu |
---|
Valve Wine | Exp Bleeding Edge Arch Linux | Exp Bleeding Edge Other distro |
---|
The Exp Bleeding Edge Other distro versions are built on Ubuntu latest, which should work fine on most distros not using years old packages
Proton nightly builds
- wine-staging patchset applied
- built on Arch current, making glibc 2.36 a requirement
Proton | Valve Exp Bleeding Edge | Wine Master |
---|
(drop the extracted folder in /$HOME/.steam/root/compatibilitytools.d/
or, for Ubuntu/Debian based, the /$HOME/.steam/compatibilitytools.d/
dir)
PLEASE DO NOT REPORT BUGS ENCOUNTERED WITH THIS AT WINEHQ OR VALVESOFTWARE, REPORT HERE INSTEAD !
Wine-tkg is a build-system aiming at easier custom wine builds creation. You can now easily get the "plain wine + pba + steam fix" build you've been dreaming about!
It can also make custom Proton builds with its wrapping script: https://github.com/Frogging-Family/wine-tkg-git/tree/master/proton-tkg
By default, it'll pull current wine/wine-staging git versions. You can target a specific release or commit in the .cfg if needed.
A comfortable selection of patches is available to you, with some of them being enabled by default for your convenience (see this sample config file for the full list and details)
An ever evolving selection of staging, experimental and/or hacky patches are also available in the community-patches
Can be built with your own patches - See README in wine-tkg-git/wine-tkg-userpatches for instructions
Generated Wine-tkg sources (staging-based):
- Wine-tkg : https://github.com/Tk-Glitch/wine-tkg
- Proton-tkg : https://github.com/Tk-Glitch/wine-proton-tkg
Wine : https://github.com/wine-mirror/wine
Wine-staging : https://github.com/wine-staging/wine-staging
Wine esync : https://github.com/zfigura/wine/tree/esync
Wine fsync : https://github.com/zfigura/wine/tree/fsync
Proton : https://github.com/ValveSoftware/Proton
Wine-pba (Only working correctly up to 3.18 - Force disabled on newer wine bases due to regressions) : https://github.com/acomminos/wine-pba
Thanks to @Firerat and @bobwya for their rebase work :
For Gallium 9 support, use https://github.com/iXit/wine-nine-standalone (available from winetricks and AUR) - Legacy nine support can still be turned on if you're building a 4.1 base or older.
Top Related Projects
My custom build of wine, made to use with lutris. Built with lutris's buildbot.
Compatibility tool for Steam Play based on Wine and additional components
A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot