KDEGuidanceWineSpec

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. Wine applications also don't fit well into the KDE desktop. This configuration module will provide options to improve the look of wine applications to match KDE better.

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

Future ideas: 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

Future ideas: 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 create the fake windows drive and set defaults for all the settings

Application Setup

The winecfg per-application settings are unintuitive. This configuration module will improve on the interface and leave the possibility open to add a context menu to exe's to make access to application specific settings easy. There will also be options to set native applications to be used with wine applications, such as the default browser to be opened when links are clicked in wine applications. Being a KDE module, the browser can be set to the same as the default browser in KDE. 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

Future ideas: 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.

Additional Notes/Features

  • From Simon: It is difficult to unmount the disk when wine is still using it. But there is a "wine eject" command which you can use to eject a disk when wine is still using it. Perhaps the context "Eject" menu item in KDE needs to be aware of wine and the "wine eject" command too.
  • 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. See http://www.wine-doors.org/trac/wiki/Goals#Replacewinetools for some problems with winetools.

  • 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.

Implementation

Progress will be kept track of here: KDEGuidanceWineSpec/KdeGuidanceWineProgress

Code

  1. Configuration module written in pyKDE
  2. Options to access wine registry:
    1. regedit commandline (simple, slow?, needs maintaining, not the best option but a good start.)
    2. 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)
  3. A KIO slave and a windows start menu have already been created in kwine (kwine.sourceforge.net)

  4. The code is kept in KDE SVN.
  5. The module consists of three python scripts:
    • wineconfig.py - the module wineread.py - methods for reading wine's setings winewrite.py - methods for writing wines's settings

Data preservation and migration

The module will be compatible with fresh installations and existing installations of wine. Users will be able to use wineconfig and winecfg interchangably without any settings getting messed up.

Outstanding issues

Menu integration is being worked on by wine developers: http://www.winehq.org/pipermail/wine-devel/2006-August/050210.html Some of the features discussed here are being worked on in another project for KDE: http://developer.kde.org/seasonofkde/project.php?kde_wine.xml An audio test needs to be written.

BoF agenda and discussion


CategorySpec

KDEGuidanceWineSpec (last edited 2008-08-06 16:29:14 by localhost)