KDEGuidanceWineSpec

Revision 4 as of 2006-05-26 05:28:55

Clear message

Summary

This specification describes a KControl/KDE-guidance module for wine. This SoC project aims to improve wine ease of use and integration in Kubuntu.

Rationale

Currently, it can be difficult install or use Windows applications, configure Wine, or explore the virtual Windows environment (C: drive). In order to make the transition from Windows to KDE, there needs to be an intuitive Qt/KDE frontend to Wine administration. A user should be able to access settings from one place (System Settings), rather than typing “winecfg” in a terminal. This adds to overall KDE/Kubuntu integration and ease of use, as well as follows Ubuntu's philosophy of having an easy to use integrated GUI for all configuration.

Use cases

  • Joe Gamer wishes to switch to Ubuntu because he heard that he can run his latest games in it and it is faster and easier to use than Windows. To run Wine currently, however, he has to open most things through a terminal window and read several howtos on Google.
  • Mike multiplatform prefers to use a Windows program to do some task but native programs to do others. However, when he does things such as click web or email links in a Windows app, Wine doesn't know to launch his native Linux program unless he hand-configures Wine's registry.

Scope

This specification covers new features in kde-guidance and potentially KIO and some other changes at the desktop environment level. It does not cover changes in wine itself.

Design

System Settings

The project is to create a kde-guidance and KControl module that will take the place of winecfg in KDE. This will provide all of the functions of winecfg, but be easily accessible and well integrated with other KDE settings. The module should only appear if wine is installed.

Audio Settings

Sound in my experience is often a problem with wine, though it has been getting a lot better. This projects aims to alleviate some issues. This is mostly a benefit for KDE4 (edgy+1? alpha for edgy?), for which the hope is all applications can use phonon, a single API, which can use xine, gstreamer, etc as a back end (see phonon.kde.org). Besides that, some settings in winecfg, such as sample rate, are also present in System Settings's multimedia settings. If the wine configuration module is part of System Settings, those settings either can get the correct defaults from the multimedia (currently arts) module, or can be eliminated altogether, using the KDE (arts/phonon) settings automatically.

Graphics Settings

Similar to audio, the graphics settings can rely more on KDE's settings, again requiring less (somewhat redundant) user configuration. (For this to be really relevant, they System Settings display module would need more 3d-related driver settings.)

Wine Setup

The module will provide the ability to create or relocate the fake windows drive, including options to customize the folders on the drive.

Application Setup

Software, most notably games, should be as easy to install as on windows or maybe even as easy as on Kubuntu. A partial goal of this spec is to streamline gaming on Kubuntu. Possibility: integrate installer scripts for applications such as those from www.liflg.org

The Windows Program Group

Currently, a wine folder appears in the KMenu with some installed programs, but this works inconsistently. The new configuration module will allow this menu to be configured properly. The user can then select KMenu->Windows->Program Files, where his virtual Windows start menu will reside.. Links to Wine's included utilities can be placed here as well, the program uninstaller ("Uninstall Windows Programs"), wineboot ("Simulate Windows Reboot"), the registry editor ("Registry Editor"), and even notepad ("Notepad").

Not all of these should be visible by default (particularly the registry editor and notepad), and can be set to visible/not visibile in the settings.

Native application integration

If files or links have to be opened from wine, the guidance module will set the applications used to KDE's defaults. For example, links clicked on in wine should open KDE's default browser. Helpful links: http://winehq.org/?issue=307#Launching%20Native%20Apps http://wiki.jswindle.com/index.php/Advanced_Wine_User_Information#Runing_Linux_software_From_Wine

The module will allow KDE themes to be used in wine programs, chosen in the Desktop Integration tab. I don't know how wine deals with themes, so this may be more difficult than I imagine, but it's a maybe.

The project could provide KIO integration. Meaning, the ability to set up, for example, c:/ to be the fake windows C: drive, or perhaps wine:/ to show the installed windows applications. These can be turned on and off in the settings module.

Winetools

Winetools should not be used. Part of the goal of this project is to implement some of what winetools does in a user friendly interface.

Implementation

Code

  1. Configuration module written in pyKDE
  2. Options to access wine registry:
  3. regedit commandline (simple, slow?, needs maintaining, not the best option but a good start.)
  4. create a proxy interface in winecfg, and use it to access wine's settings (a lot more difficult work, extends the scope of the project)

Data preservation and migration

Outstanding issues

BoF agenda and discussion


CategorySpec