General information

Helping out with ROX

As a user

The easiest way to help out with ROX is to add useful comments to the pages on this site. If you see something that's confusing, wrong, or out-of-date, leave a comment and we'll fit it! If you know a better answer to a question in the FAQ or you've got some links for the Theme Gallery, put them in.

You can also help by trying out each new version and sending bug reports and suggestions for new features. Graphics for file icons and toolbar buttons may also be accepted.

You might like to join in discussions on the Mailing Lists.

As a programmer

You can add features and fix bugs in the ROX programs yourself - send us patch files when you do and we may
include your changes in future releases. You can also help out by writing your own, ROX-compliant, programs or by helping other people who are doing this. The tutorials will help you get started.

Donations

Click on the $ sign beside a developer's username in the list of developers to send them money. Not all developers have $ signs, as they don't all accept donations this way.

Relation to RISC OS

What's RISC OS?

RISC OS is an operating system used in Acorn/Castle machines. It had some good GUI features, but was poor in other areas. ROX seeks to bring these good UI features to Unix-type platforms.

Can I run RISC OS apps within ROX?

No - ROX is not an emulator, it's just another Unix desktop. RISC OS applications need to be ported to run under ROX (at least until riscose gets good enough to run graphical applications). You can, however, run a RISC OS desktop in a window using an emulator such as ArcEm.

Why did you not implement the back icon as part of the window furniture when you designed ROX?

Under X, you can choose to run any window manager with any desktop. Many of the screenshots show the xfwm4 or OroboROX window managers in a more-or-less default configuration. In this, clicking the middle mouse button anywhere on the window frame will send a window to the back. Other window managers may offer an explicit back button, or you can configure them to have one.

How can I make ROX even more like RISC OS?

There are several things you can do:

  • Open ROX-Filer's Options box (by choosing `Options...' from the menu)
    and turn on all the `(RISC OS Style)' options.
  • You can use xfwm4 as your window manager to get the RISC OS behaviour of using the right mouse button to move or resize windows without bringing them to the front. Set the 'raise_on_click' option to 'false' too.
  • You can get Adjust-reverse-scrolling by applying this patch (might need a little tweaking now).
  • There are various RISC OS themes around, including Andrew Flegg's RISC OS theme (for IceWM and Gtk) and Peter Howkins's sawfish theme.

Take a look at this screenshot:

RISC OS style

Isn't pre-emptive multitasking slow?

On RISC OS (eg, using a task window or wimp2), yes. On systems designed for it, like Linux, it actually makes the system faster and more responsive.

  • Multitasking is used when you have more runnable processes than CPUs. Most systems only have 1 CPU.
  • A runnable process is one which wants to use the CPU (not just a program which is loaded but doing nothing).
  • Most of the time, nothing is runnable (the computer is waiting for you to do something). In that case, it doesn't matter which system is used.
  • Most of the rest of the time, exactly one process is runnable (eg, when you press a key your word processor needs to run to insert the character). When only one process is runnable, it doesn't matter which system is used. The one runnable process is always chosen.
  • The only time the type of multi-tasking makes any difference at all is when you have several programs all trying to do things at once (eg, printing, rendering an image and checking your email).

In the rare case when you have several runnable processes, the type of multi-tasking matters. Cooperative systems (like RISC OS) run one process, and won't let any other process run until that one says it's OK. Preemptive systems (like Linux) can switch between runnable processes whenever they please. RISC OS users will note that the case of, say, formatting a floppy, printing a document and checking your email is a situation where RISC OS performs poorly (the system becomes unresponsive). Linux does not become less responsive in this situation.

Another effect of the RISC OS system is that processes using some resource other than the CPU can still prevent others from running, because a process can't do something and tell the system to run another process at the same time. This doesn't happen on Linux.

Here's an example of what happens on RISC OS:

  • The floppy disk formatting program tries to write to the disk. Floppies are slow, so this takes a while.
  • The user presses a key. The keypress is queued for later.
  • After a second or so, the write operation completes. The floppy program wants to write another block to disk, but to be nice, it gives up control in case anything else needs to be done.
  • The text editor runs, inserts the character and redraws the screen. The floppy disk is idle while this happens.
  • The formatter runs again, and starts writing the next block.

The same thing on Linux:

  • The floppy disk formatting program tries to write to the disk. Floppies are slow, so this takes a while.
  • The user presses a key. Since the formatter doesn't need the CPU, and PMT systems can switch processes whenever they please, Linux switches to the text editor without any delay.
  • The text editor inserts the character and redraws the screen while the block is written to the disk.

Can't RISC OS be made to do preemptive multi-tasking?

Although it can do it in a limited form, fast and reliable support requires the whole system to be designed with this in mind.
Consider something as simple as redrawing a window. On RISC OS:

  • The system asks Edit to redraw window number 5, for example.
  • Edit gets the size and location of the region to be redrawn (100x100 in the centre of the screen).
  • Edit asks the system to draw the contents in the middle of the screen.

On a system which can switch between processes at any point in time, the user might open another window, or move Edit's window, between Edit finding its location and doing the drawing. Then the drawing would appear in the wrong place, or over another window!

On Linux:

  • The system asks Edit to redraw window number 5.
  • Edit gets the size and location of the region to be redrawn (100x100 in the centre of window 5).
  • Edit asks the system to draw the contents in the middle of window 5.

Notice that if Edit's window is moved or covered then the final drawing operation is still correct, because the drawing is done relative to a window, not to the screen. It's little changes like this that are needed throughout the system. As another example, consider the case of loading a file. On RISC OS:

  • Edit gets the size of the file (1Mb).
  • Edit allocates 1Mb of memory at address 0xc000.
  • Edit asks the system to load the file at address 0xc000.

On Linux:

  • Edit gets the size of the file (1Mb).
  • Edit allocates 1Mb of memory at address 0xc000.
  • Edit asks the system to load the first 1Mb of the file at address 0xc000.

Because the file (perhaps a log file) may grow in size between Edit checking the size and Edit loading it, the size must be passed to the load operation to avoid overwriting other memory and crashing. Linux therefore does not provide any system call to 'load a whole file'.

Of course, RISC OS's lack of PMT also means it can't easily support machines with multiple processors, and it may be unreliable when using network filesystems (a remote log file can still grow).

Why not replace X with a new graphics system?

Because there's no point. X has a few problems, but they're not the things people usually blame on it. X is a graphics system that works on a huge range of graphics cards (laptops, desktops, mobile devices), has excellent backwards compatibility (decade-old software still works with modern X servers), 3D acceleration (for some cards) and support from many hardware vendors. X's policy is to have no policy about style (e.g., what a menu should look like, or which side of the window the scroll bar goes on). People therefore like to blame X for the fact that there are several different interface styles used on X (ROX, GNOME, KDE, etc).

When people suggest replacing X, they don't really want to replace X. They want to force people to use their preferred interface style by hard-coding it into the graphics system. In fact, this would just lead to people creating new graphics systems, one for each interface (after which everyone would complain that they couldn't run ROX applications under KDE's new graphics system, or that they couldn't run firefox under ROX, etc). In fact, the reason X is still here (and the older graphics systems aren't) is probably because it didn't enforce policy. Amusingly, after proposing that differing interface styles be made impossible by replacing X, there is then the problem that many useful X applications won't be available on the new system. No problem; the plans for the new graphics system gain an X-emulation layer. And we're back where we started...

What licenses do you use?

The content of the web-site is made available under the terms of the Creative Commons Attribution-ShareAlike 2.5 license. The software uses various licenses, but mainly GPL.

GPL

GNU General Public License

  • ROX-Filerthe file manager at the core of the ROX desktop
  • VixnA vi-like GUI text editor for programmers
  • SysBarsshow CPU load etc in bars on the panel
  • ScreensaverControl screensaver settings with ROX-Session
  • XDGStartEdits XDG autostart entries
  • AlgoScoreInteractive graphical score for algorithmic composition
  • RAWThumbnailGenerates thumbnails for the Digital RAW files
  • Reinteract-ROXa system for interactive experimentation with python
  • ROX-Sambabrowse Samba networks via FUSE
  • DevTrayshows devices in the panel
  • XDGSupportcreates SendTo items for .desktop files
  • ROX-TrasherTrashcan application for the ROX Filer and Desktop
  • Zero2Bundlecreate self-contained bundles from a Zero Install feed
  • mplayer-roxWraper around mplayer
  • Fontfont selection and smoothing configuration
  • AppearanceGTK and Icon theme configuration
  • Pickyan Image Viewer
  • Thumbssimple thumbnail manager
  • WiFia Wireless quality monitor applet
  • XAttrview or edit extended file attributes
  • IndigoMagicIndigoMagic icon theme for ROX
  • Weathershows the weather
  • TaskTrayshows open windows as icons in a growing widget
  • RETickernewsticker for the rox-panel
  • ExecuteGUI to run programs by command / run programs as different user
  • Trashcana trashcan that complies with the freedesktop-trash-spec
  • ROXTermLike gnome-terminal without Gnome baggage
  • DependA utility for checking dependencies of other ROX utilities.
  • XDG-Menua menu applet
  • HddTempa front end to "hddtemp" daemon showing temperature of hard drives
  • PanelClocka simple clock for the panel
  • Rubbisha very simple rubbish bin.
  • Trasha unified trashcan application for ROX.
  • ComicThumbGenerates thumbnails for comix archives (cbr,cbz,cbt)
  • ROX-thumbnailersIt generates thumbnails for ROX-Filer using various thumbnailers
  • ToggleDesktopToggle Show/Hide Window
  • Tasklista panel applet that shows a list of currently open applications
  • Systemprocess and disk monitor
  • Resolutionchange screen resolution dynamically
  • Mousemouse configuration applet
  • Memoalarm clock and reminder list
  • Keyboardkeyboard configuration applet
  • Gammaset the gamma correction for your screen
  • MIME-Editorchange the rules for guessing a file's type
  • OroboROXa lightweight Window Manager for ROX
  • Pageran application and panel applet that shows a miniature view of your desktop.
  • Archivecreate and unpack archive files (supported formats include zip, tar, gz and bz).
  • ROX-Sessiona simple session manager for the ROX Desktop.
  • PostalAn Applet to Check IMAP, POP and MBOX accounts for new mail
  • Wallpapercan be used to place an image on your desktop background
  • MenuAn Application Launch Menu
  • RipperA CD Ripper/Encoder
  • Volumea Volume control Panel Applet and Mixer Application
  • MusicBoxA Music Player
  • DownloadManagerdownload manager for Fetch, limiting the number of simultaneous downloads
  • FreeFSMonitor free space on a file system
  • VideoThumbnailProvides thumbnail images for video files.
  • FetchThis program acts as a download handler for ROX-Filer.
  • Edita simple text editor
  • FindA Graphical Find-In-Files Utility
  • ROX-Alla single archive containing launchers for most of the ROX applications
  • AddAppcreate ROX application launchers

LGPL

GNU Lesser General Public License

  • ROX-Libcontains shared code used by other ROX applications

BSD style license

  • AutostartFreedesktop.org autostart manager
  • BelugaWireless network manager
  • JamminMPD playlist randomizer
  • ROX-MAMEMAME frontend
  • RatatoskA Jabber client for the ROX desktop
  • Lindorm-FlatA flatter version of the Lindorm theme
  • LindormOroboROX theme based on the "Oroborus" theme
  • roxunzip.shshell script that unpacks lots of archives
  • Lithiuma Battery Status Monitor Applet

Other license

Where are the changelogs?

Most programs contain a change log in their Help directory. You can open this directory by right-clicking on the application's icon in a ROX-Filer window and choosing Help from the popup-menu.

If you don't want to download the whole program just to see the changelog, you can also view it using the Notes link on the file releases page.

For a full log of changes to each file, you can access our public CVS repository.