
Using shared source to brighten up the desktop
Published on 27th Feb 2008, 23:24:52, source is drobe.co.uk
By Chris Wraight
Chris Wraight reveals how the RISC OS Window Manager is being improved by a small group of volunteers to allow users to fully customise the appearance of their desktops
In October 2006, I wrote an article highlighting some of the ways in which RISC OS could have its look and feel modified. I concluded that, although there was much that could be done to improve the somewhat dated look of RISC OS 4.x, there were significant barriers to creating complete replacement themes. To my mind, the OS support for adding new themes, or 'skins', to RISC OS was strangely incomplete, which was a somewhat frustrating situation.
The purpose of this article is to draw attention to a project which is changing this. I hope it will encourage people to get involved, and to see the potential for improving RISC OS which we now have.
Managing themes
One of the things I bemoaned in my original piece was the lack of a simple way of switching between themes. RISC OS provides support for changing the window tools (the icons which surround the edge of a window) and file icons, but the Configure application has no front-end for this. With all the various user interface options added by RISC OS 4 and after (especially the flexibility provided in Select), attempting to alter the default settings can be a bit of a pain.
As a result, I started work on a Theme Manager application. The aim of this was to provide a very simple method of installing and selecting complete themes. In the scheme I came up with, each theme consists of up to three files: a sprite file defining the window tools, a second sprite file with the file icons and window gadgets (icons like r option selection buttons), and a short text file controlling all the other miscellaneous user interface options, such as 3D windows, button colours, and so on. These come packaged in a single directory, and sit in the !Boot.Resources.!Themes application.
A key design objective was simplicity for the user. The Theme Manager works as a Configure plug-in. Installing a theme is just a matter of dragging it to the Theme Manager window. Selecting a theme can be done by choosing it from a drop-down menu. At any point, the changes can be reversed by selecting the "[No theme]" option.
Currently, the Theme Manager software is being used on a range of systems, from RISC OS 4.x, through Select and Adjust, to RISC OS 5.x. Feedback has been quite positive, and I'm currently working on a new version taking account of comments received. It's not perfect (there are some glitches with font handling and icon boxes which I'm looking into), but it does the job it was designed for, and has greatly simplified working with third-party themes on RISC OS. The software is open source, and any comments are of course most welcome.
Extending the OS
This fills one gap in the OS's theme handling. However, in my earlier article I drew attention to more fundamental problems with the window manager's support for themes. The most important were:
• The way input focus (showing which window is active) was handled was very crude. It was impossible to replace a set of ordinary tool sprites with a special set of 'input focus' ones. As a result, many theme designers had to choose between clumsy masked tool sprites, or lose graphical indication of the active window.
• All versions of RISC OS have incomplete facilities for re-colouring buttons. On RISC OS 4 and 5, default buttons are hard-wired light grey. On Select and Adjust, this can be altered, but the coverage is incomplete (information fields remain stubbornly grey). So even if you come up with a snazzy colourful theme, some elements of the desktop remain out of place.
• The colours used to draw window outlines were also effectively limited to black (it was and is still possible to alter this value on a per-window basis by changing the internal window definition, but not across the whole OS).
These limitations meant that desktop themes could only ever be partial affairs. However, all has now changed thanks to the RISC OS Open project. Last year, the sources to the Window Manager module were opened up, and it became feasible for third-party programmers to delve into the innards. After I raised the issue on the ROOL forums, programmer Fred Graute of StrongED fame offered to look into the possibility of fixing these problems.
I'm pleased to report that he's done a fantastic job. It's now possible, using his replacement WimpSA module, to design themes with alternative sprites for input focus, and to change the window outline colour. To see this in action, look at the following screenshots. The windows in question have proper input focus, and also have user-defined colours for the window outline. My Theme Manager application has been updated to support these changes, opening up the way to fully-themeable RISC OS.


The third of these screenshots is from an incomplete Mac-style theme, which illustrates the neat outlines now possible even if the tool sprites themselves don't have hard edges.
Fred's changes have been available for a couple of weeks for testing (again, see the ROOL forums), and users have found them very reliable. I've replaced the Wimp module with Fred's version on my RISC OS 4 setup, and have had no problems. Again, however, the software is not quite complete. The next step is to implement button colouring. This is a tricky task, and Fred is currently looking into the best way of doing this. As far as possible, we're hoping to make the changes API-compatible with the Select implementation for compatibility reasons.
Prospects
This work seems to have generated quite a lot of interest, and Fred's sterling work has been much appreciated by the current batch of testers. We hope that, when complete, his module will offer a more complete desktop experience for all users. At present, the WimpSA module is soft-loadable over RISC OS 4.x and 5.x. Because Select and Adjust have rather different Window Manager modules, it currently hasn't been tested on those OS versions (and we expect it won't work). However, since Fred's code is part of the ROOL initiative, there is nothing to stop ROL adding similar changes to their OS branch.
What this does show is that, with a bit of enthusiasm and time, the shortcomings in our favourite OS can be addressed. No one should pretend that the user interface is the most pressing of RISC OS's problems, nor that every issue can be fixed in such a short time. But talented programmers like Fred are still interested in working on the OS. If all of us - users, programmers, designers - work together, the ROOL project means we can now fix all those things we all like to moan about so much. As part of the ROOL initiative, there is currently work going on to improve RISC OS's antiquated file system - a huge job - as well as updates to the OS applications, printing system, and other elements. Since there seems to at least be the will to work together with ROL, there is also the chance that these efforts will benefit everyone.
So let's try and generate some optimism for a change. There is still the chance of getting RISC OS back on its feet, but only if we get our sleeves rolled-up and help out. Whether in terms of small projects to fix a specific problem, or large endeavours to make the whole OS more modern, there are now plenty of options. And with the recent updates to Firefox, NetSurf, Parmesan, Messenger, DataPower and other great apps, there is plenty of hope to go round.
Accessing the updated Window Manager
When testing is complete, the new module will be available via the ROOL site. In the meantime, you can get hold of the WimpSA module by going to the ROOL forums. Look for the topic 'Themed Wimp' in the 'Code Review' section, and follow the link in Fred's post.
Links
RISC OS Open websiteRelated articles
USB in latest RISC OS 5 source release
Morison in Organizer open source u-turn
RISC OS 5 core source release imminent
This article has been linked to, or is available in the following formats:
Design and concept (c) Fudgecake Design, 1999 - 2001. Content (c) The Drobe Team, 1999 - 2006. See www.drobe.co.uk for more information. For non-commercial personal use only.