← Back to team overview

ubuntu-wine team mailing list archive

Re: BetterIntegratedWine & UDS

 

Sorry Steve, I had to move out quickly in the past two days so things have been a bit hectic for responding to email. I did get your original message.

Steve Dodier wrote:
Hello folks,

This email was meant to be sent to Scott Ritchie, but as he doesn't answer, i fear it went to junk, so i'm re-sending through the mailing list. Also, I thought someone would like to append comments / idea on it.

Something else, who will for sure be at the next UDS ?


I will ;)

Cordially, SD.

---------- Forwarded message ----------
From: *Steve Dodier* <sidnioulz@xxxxxxxxx <mailto:sidnioulz@xxxxxxxxx>>
Date: 2009/4/4
Subject: Ubuntu in Wine
To: scottritchie@xxxxxxxxxx <mailto:scottritchie@xxxxxxxxxx>


Hello Scott,

I read BetterWineIntegration (for the second time, since i read it before joining the Ubuntu Wine Team a while ago ;) ), and i've had a few things coming to my mind. As i don't know wether or not i'll be at the UDS, and as i very dislike editing wiki pages (meh :p), i thought i'd mail you my thoughts about the specs you wrote, so here be it :



________________________________________
Packaging Windows apps in .deb :

How to install ? i don't think we want to rewrite installers that will fill registry and copy files, so do we run the windows installer upon app install ? What if the installer fails, should we find a way to tell apt/dpkg that installing the package failed ?



We don't have to rewrite an installer, all we really have to do is create a separate wine prefix, install the app into that, configure it, and then tar that up and turn it into a package. One clever way to make this system wide without duplication is to have each user run a small script upon first run of the program that creates a wine prefix for that particular app, however this prefix is configured to have the C:\ drive in the system folder where the app is installed.


________________________________________
Integration into GNOME

- Clicking .exe : Isn't this doable via adding a single mimetype in GNOME ? What happens in GNOME if you open a .7z file without p7zip installed, for instance ? (i'm asking because i don't run GNOME :p). At least we must remove the mimetype that associates Win32 binaries to file-roller.


This is doable this way, however we gain something in usability by writing a special dialog explaining that this is a windows application, what Wine is, and why things will end up in a special Applications->Wine menu. Most importantly, we can use this opportunity to lower expectations and tell them that Wine might not work with all apps.

- Applications menu's name : i'm against naming it Windows instead of Wine. Nothing would bug me more, as a linux user, than having "Windows" written anywhere on my PC :)


I think there's a nice consistency when we call it the Wine menu and then also provide a (small) wine icon on the individual programs. That way I can see it's a Wine installer when I get it, and when I double click it and it actually works perfectly I'm not surprised to see it end up in the Wine menu.

- Wine apps menu items : placing them in a submenu related to what they do would be great, but its only possible for apps that we ship within .deb packages, by manually making the menu items, because there obviously is no way to guess what category an app should go in, neither is a way to keep an exhaustive list of apps with their associated category. I'm more for leaving it as it is, and finding a way to help users to move their shortcuts (apart from the .deb case).


Technically it's possible to try and make an exhaustive list of Apps - Microsoft actually attempts this with Windows Vista's "Games" section in the start menu. But I'm not sure it adds any usability, especially when it's still important to let the user know it's a Wine app (and thus lower their expectations). It's ok for them to have high expectations for the applications we package though, and thus we can put them in the normal menu.

- Another suggestion : we should be able to find out what are uninstall/doc/editor's website menu items and remove them upon install, to keep it approximately readable for the user (because windows apps love to create 10 useless/spam shortcuts for 1 useful one). We could then move the remaining items to Wine/ or Wine/Programs/ directly, to make them faster to access.



Cleaning up this kind of cruft properly is even more difficult than making the exhaustive list of every application, and it's not even clear that the user benefits from this since they are likely expecting the same thing as Windows.


________________________________________
winecfg additional options

- I suppose we'll have to rewrite winecfg as a GTK app, but i don't know if it's technically possible. Either, we gotta ask wine devs how to send dbus signals / call commands via a wine app to the linux box, so we can directly use their winecfg.


We don't need to rewrite winecfg, since most of the stuff it does should be handled automatically (eg support for pixel shaders and the sound driver chooser). We only need a GTK app that controls the 3 or 4 options we could expect a human being to understand and set (eg windows version), and even then most of the time they shouldn't want to.

- Here i'm quoting you :

* (unchecked by default) Automatically launch applications upon inserting a disc +1, this is an important feature to add * (radio button default): Allow full screen applications to change the resolution * (radio button alternate): Contain full screen applications in a window when smaller... I propose we keep winecfg's current form, and then we add per-app options (i'll explain that below). - What we can do is merge the winecfg and wine app installer/uninstaller (yeh, they have one, now :p). My idea is that we change the "apps" tab in winecfg, and here put a list of currently installed apps (with their version / wineprefix written), and we add the buttons "Uninstall", "Advanced settings" for each app (see below). We also add a "Install apps" button, and why not a "Install an app in a particular prefix" button (or any other GUI feature for installing an app explicitely in its own prefix).


What benefit do we have by making the user go through a separate work flow to uninstall Wine applications? Why not just put them right into Applications->Add/Remove? Similarly, having a central "Wine application settings editor" is just repeating the same mistake as winecfg - such things should be editable by right clicking the application (or its shortcut in the applications menu), like most users would expect.

And, realistically, I don't think we can expect to make a workable implementation of separate prefixes any time soon. They really, really complicate things, especially when we have to worry about navigating around them in the Places menu.

-- Standalone apps : we can add, in the "Applications" tab, a button to "register" a standalone app (it always happens to have some of these in windows), and then the registered app would appear in the list of installed apps, and thus the user could modify its per-app settings with the same interface.


This just adds work flow that's unnecessary - if the user can edit the settings for the app by finding it and right clicking->properties directly, then there's no need for a separate registration since we can do it there for them.

-- For the apps that dont wanna uninstall (or that were manually removed), we could just add a link that would clean the regedit entry and remove the app from the list.


Yes, this is something we should worry about - there are quite a few third party utilities for Windows that clean up registry settings after users have manually deleted programs.

- For the per-app settings, it's almost a fork of winecfg, since now winecfg allows per-app settings for almost everything (apart from sound settings / desktop integration).


Well yeah, the whole idea is to not have to use winecfg for anything. We'll be writing the same data files though (the registry for the ~/.wine prefix)

- We could add a wineprefixes tab that would allow modifying the wineprefixes / installing dotnet/vcrun/dx9 via winetricks easily (if we can legally do it, ofc).


It's still very very dicey, and it's not even clear that having separate prefixes has a sufficient use case to work into the design. We'll always need a default prefix which more than one app installs into anyway, so we don't exactly shoot ourselves in the foot by not worrying about a Wine prefix manager until users actually demand it.



________________________________________
winecfg additional options

- Wine fonts : we can add a "recommands msttcorefonts" to wine, it'd help for a lot of font troubles. Also, shipping "Sans" (or the future default font in karmic) to wine will be helpful, for Wine's desktop integration.


Wine upstream is already pretty good about providing aliases for the fonts now (as well as making their own eg Tahoma). With every system shipping the liberation fonts and so on, we probably won't have to worry much about it.

- Theme : nothing to add to what you said. i'm a total noob with msstyles thing so i cant help here, but it would be awesome to manage to get a theme for all the community themes, and package them in a wine-themes .deb.


The problem with msstyles is there really is no free software for making one from scratch. Every theme comes from editing an existing theme, so there's no such thing as a copyright-free Windows theme.

However, upcoming versions of system theming are going to be based on CSS, and as I understand it this is much easier to work into a usable Wine theme that doesn't look ugly. So maybe it'll be possible to guess colors from the system theme after all. It's all a little beyond me at this point.

________________________________________
Documentation

- I don't know the status of the documentation, but if you wanna ship it in a more proper way, and possibly add a "wine doc" menu item, i'll be able to help you write/review the doc, and to make the whole french translation.


Wine's documentation should be with the rest of the system documentation, indexed by scrollkeeper, and available from the normal help menus.

Rewriting the docs was actually the very first thing I did for the Wine project. Nowadays, however, I'm convinced that it'll be ok if users don't read it since we can make the interface much much more intuitive. We'll still need docs, of course, especially for the more esoteric aspects of Wine and the new users who are completely unaware of what it is, and I'll be happy to give it a new write once the interface is working.





________________________________________
On First Run

- First run is actually wineprefix creation. A less intrusive solution to a popup window would be a notification (and we have a nice notify server now, don't we ? :D) saying Wine is creating a fake windows install (or w/e for the formulation), this takes only 15 secs and is a one-time thing.


Yes, an ephemeral notification is a much better thing to use now that we have them. I wrote this spec long ago ;)

It would still be nice to provide some information that "Places->Wine C:\ Drive" and "Applications->Wine" now exist, though I'm not sure how to do it. Perhaps we can just add it to the text.

- Browse C:\ Drives : i'm for turning this into a Browse wineprefixes thing, and we could create a folder such as ".config/wine/prefixes" containing symlinks to the wine prefixes (or to their c:\ drives).


Possibly, if multiple prefixes is something we end up doing. We'll have a straightforward migration path then. 90+% of the time the user will want the default though.




________________________________________
Gecko / Mono integration

- I don't know anything about Gecko, but making a wine-mono package would be awesome, esp. since it removes most of the needs for dotnet2 and dotnet3, that are very big dependencies on windows. I think this is a major issue.


Yes.  We'll see how mono and winetricks progress.



I think i said most of what i had in mind. I'm going to have free time in the summer and am willing to help you. The first thing we need to go is to begin working, and i think it'll go on quite well from there. I'm very unexperienced with Linux programming / app packaging, but willing to learn (and, at least i think, capable of learning).

Cordially, SD.


Thanks, it is awesome to have you here.  We'll chat more online :)

Thanks,
Scott Ritchie




References