Usability: WineCfg Part 1 -- Desktop Integration tab

Reece Dunn msclrhd at googlemail.com
Wed Oct 8 14:27:12 CDT 2008


2008/10/8 Owen Rudge <owen at owenrudge.net>:
> Hi all,
>
>> Reading up on the wineconf WWN issue, I noticed that it mentions
>> usability and winecfg. Therefore, I decided to dig up my RFC relating
>> to some ideas I had about winecfg that I sent to the list.
>
> Ah, lovely. This is something I'm planning on doing some work on, once I get
> a bit more free time.

Great.

>> == APPEARANCE ==
>
> I've currently got some code that splits the Appearance and Theme sections
> of Winecfg out into separate control panels. I've not yet submitted this
> code (I hope to do so relatively soon), but your suggestions can certainly
> be incorporated into them.

I was thinking of creating a control panel applet that invokes winecfg
to only display the appearance/theme tab. This is to allow the theme
selection command-line to share the code with the displaying of the
configuration UI. That would be harder to do using a control panel.

That said, I am happy to go with your approach and move the logic into
a separate control panel application with an appearance and a theme
tab.

>> 4.  There is a divider between the theme and appearance settings. This
>> is to make it clearer that these are separate, but related.
>
> Currently, my control panel code has these split onto separate tabs. Perhaps
> some sort of text explaining the link between the two may be a good idea
> here.

Sounds good.

>> 6.  The "Font" button has an elipsis at the end. This button brings up
>> another dialog, so should have an elipsis.
>
> Sensible suggestions indeed. It's little things like these that are
> important when designing a user interface, so thanks for picking those up.
> :-)

^_^

>> == FOLDERS ==
>
> Just for information, my current plan is for this section to remain within
> winecfg. But your changes would certainly be good to implement, too.

Sure. In that case, we could probably drop the "Folder" groupbox,
rename the tab "Folders" and just have the content of what is
currently within the Shell folders section here.

>> 1.  We may want to provide a set of colour themes (e.g. Windows 95,
>> Windows 2000, Ubuntu Human, ClearLooks, KDE Oxygen) to provide a
>> better experience for the user by default - i.e. not just have the "No
>> Theme" option initially.
>
> Well, the way Windows does it is to have themes, and colour schemes within
> those. For instance, the Windows Classic theme has all the old colour
> schemes that have been in Windows since Windows 3.x, whereas the Windows XP
> theme has the different variations of "blue", "silver", etc. The
> desk.cpl/winecfg code supports themes to a certain degree, but I don't think
> it has support for the colour schemes (from memory). This is something that
> I can work on once I get my basic code finished.

The winecfg code supports colour schemes. I know because I added some
fixes to support importing a Ubuntu Human colour scheme based theme
file :).

In my screenshot, I kind of munged the two together.

>> 2.  We may want to be able to load a theme using the command line.
>> This would allow - for example - distributions to setup Wine with a
>> theme that matches their desktop, providing a more integrated
>> experience to the user.
>
> There are various configuration-based things that we want to be able to
> control by command line (appearance, uninstallers, etc) - this was brought
> up at WineConf in the desktop integration talk. It would probably be best to
> try to unify such things as much as possible - a command-line based
> extension to winecfg may be most sensible. This will require a bit more
> thinking, based on what sort of things we are going to want to configure.

Sure. Also, if the code is being moved out into a control panel
application, it makes it trickier.

However, a cpl is essentially just a DLL with a specific export for
displaying a control panel IIRC. Therefore, the desk.cpl DLL could
have:

    LoadThemeFromFileW(LPCWSTR filename, THEMEDATA * theme);
    SaveThemeToFileW(LPCWSTR filename, const THEMEDATA * theme);

where THEMEDATA is a data structure representing things like the
element name, colour and size metric data from the theme and a HTHEME
handle to the XP-style theme if one is present.

That way, winecfg and desk.cpl can be kept in sync with each other, we
can avoid copy/paste-style duplication and winecfg can be used to
provide the command-line functionality.

A similar thing could be done for install/uninstall/etc. when
providing command-line access to that.

>> 3.  We may want to have a "Use the system's appearance" checkbox to
>> enable Gnome/KDE/other integration, so that the colours and/or
>> appearance is picked up from (and updated with) the native Linux
>> environment. This would go above the theme drop-down.
>
> Something like that may be sensible, or alternatively, have a "(No theme,
> use system appearance)" item in the theme drop-down (which would then
> disable the appearance tab, or replace it with a "to modify appearance,
> please use your window manager's configuration panel" message).

Or simply "Current system theme", since there is always a "theme", it
may just be a colour scheme-based theme, but it is still a theme.

So, coordinating this: I'm happy to hold of on doing major changes in
this area until you land desk.cpl.

Thanks,
- Reece



More information about the wine-devel mailing list