Add features to Wine configuration window (winecfg)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Fincer 602ce481ad Add preconfiguration shell script 6 years ago
images Add images 6 years ago
1-preconf-winecfg.sh Add preconfiguration shell script 6 years ago
LICENSE Initial commit 6 years ago
README.md Update README 6 years ago

README.md

winecfg_patch

An unofficial patch for Wine configuration window (winecfg)

About

This project adds the following features to the default Wine configuration dialog window (winecfg):

Winecfg About tab

  • Shows Wine prefix architecture (either 32-bit or 64-bit)

  • Adds Wine prefix folder URL link: open the current prefix folder with your default file manager (Dolphin, Nautilus, Thunar etc.)

Winecfg Staging tab

  • Adds checkbox: Disable GLSL support

  • Adds checkbox: Disable Multisampling Support

  • Adds checkbox: Check Float Constants in D3D shaders

winecfg-links

NEW WINECFG FEATURES. The project adds prefix architecture information & prefix folder link to 'About' tab, and several new checkboxes to 'Staging' tab. These features have already been implemented.

System Requirements

  • Wine or Wine Staging (Staging version is recommended for the provided patch file)

  • The following Unix/Linux binaries must be found in the PATH: patch, diff, make, git, ping, nproc, wine

Tested on Arch Linux, 64-bit Wine Staging Git


Roadmap

There are several ideas how to improve usability of Wine configuration window. These ideas have not yet been implemented but are as follows.

TODO list

  • meet quality requirements - get rid of compiler warnings

  • Staging tab - add the following sections:

    • Combobox: DirectDrawRenderer (Direct3D)

      • Values: [gdi, opengl]
    • Combobox: MaxVersionGL (Direct3D)

      • Values: [4.5, 3.2, 1.0]
    • Combobox: OffscreenRenderingMode (Direct3D)

      • Values: [fbo, backbuffer]
    • Combobox: VideoMemorySize (Direct3D)

      • Values: [8192, 4096, 3072, 2048, 1024, 768, 512, 384, 256, 128, 64, 32]
    • Combobox: MouseWarpOverride (DirectInput)

      • Values: [enable, disable, force]
    • ShowCrashDialog (WineDbg)

      • Checkbutton: [yes, no]
      • If set to yes, show default crash pop-up window when an application crashes
    • Input value: ForceRefreshRate (DirectDraw)

      • Value: User input (only integers allowed, max value is 120, min value is 1)
  • Libraries tab:

    • Expanded list of available DLL overrides for easier management

      • In current Wine it is only a single-line list which is troublesome to use

      winecfg-dlloverride-redesign

      DLL OVERRIDE RE-DESIGN. This manipulated image is for demonstration purposes.

    • DLL override multiselection

      • with possibility to set all selected overrides to use any mixture of Native, Builtin DLLs

      winecfg-dlloverride-multiselection

      DLL MULTISELECTION. This manipulated image is for demonstration purposes.

  • Debug tab - add new this new tab to winecfg with the following contents:

    • Button: Generate bug report
      • Wine version
      • CPU model
      • GPU model
      • GPU Drivers
      • OpenGL version
      • DLL overrides
      • Windows version
      • etc. (Other Wine prefix-specific configuration...)
  • Winetricks tab - implement Winetricks management directly into winecfg

    • Improves usability of Winetricks on Wine

    • Features:

      • 1) Find Winetricks script file

        • a) Find Winetricks script automatically

        • b) IF Winetricks script is not automatically found, THEN let user define its location in the system and print text "Winetricks not configured" to winecfg Winetricks tab

      • 2) Available Winetricks packages

        • Parse all available packages listed in Winetricks script file

        • Create an item array list "Available runtime libraries" which consist of all these packages for winecfg

        • Make all items selectable in winecfg. Support for multiselection

      • 3) Create back-end for installing and uninstalling Wineprefix runtime libraries

        • Button: Install

          • Available if single or multiple libraries with status "Not installed" is selected from the runtime library list in winecfg
          • If above conditions are not met, grey the button out
        • Button: Uninstall

          • Available if single or multiple libraries with status "Installed" is selected from runtime library list in winecfg
          • If above conditions are not met, grey the button out
          • Needs additional back-end support, reverting Winetricks changes not yet implemented in Wine

winecfg-winetricks

WINETRICKS TAB. This manipulated image is for demonstration purposes.


Purpose & Motivation

Purpose of this project is to improve usability of Wine Configuration dialog window for a casual Wine user


Usage

  • 1) Set up the environment: 1-preconf-winecfg.sh

    • Downloads Wine & Wine Staging sources, sets up development environment & applies the patched code provided by wine-staging_winecfg.patch
    • Run only once
  • 2) Test winecfg changes: 2-run-winecfg.sh

    • Creates a new Wine prefix for winecfg test runs and runs Wine configuration window
    • Run after every code change
  • 3) Create a new patch file: 3-create-patchfile.sh

    • Run whenever you patch the code in 'winecfg_edits' subfolder and want to create a new patch file. NOTE: Replaces the patch file wine-staging_winecfg.patch

If you just want to apply the modifications for Wine configuration window but not to involve into development, grab wine-staging_winecfg.patch and apply it to Wine source code after having applied Staging patchsets (Wine source <- Wine Staging patchsets <- wine-staging_winecfg.patch).


FAQ

  • Q: Which users this project is targeted to?

    • A: Mainly to developers who want to improve Wine and to people who want to try new things.
  • Q: Can I use this patch on my default Wine installation?

    • A: Yes, but you probably need to compile Wine from source first.
  • Q: Which licence does this project use?

    • A: The code is licensed under the same license than the Wine main project. See 'License' section for details.
  • Q: I have an idea and want to implement it? Can I contribute the project?

    • A: Absolutely! Feel free to fork and improve the code as you wish. Just follow the terms of the project license.

License

This project is licensed under LGPLv2.1 to stay compatible with the Wine main project. For Wine licensing, see the following links: