Get the highlights in your inbox every week.
Relive Linux history with the ROX desktop | Opensource.com
Relive Linux history with the ROX desktop
This article is part of a special series of 24 days of Linux desktops. If you're looking for a fun trip back in time, the ROX desktop is well worth a go.
The ROX desktop is no longer being actively developed, but its legacy resounds today, and even when it was active, it was a unique take on what a Linux desktop could be. While other desktops felt roughly similar to old Unix or Windows interfaces, ROX belongs solidly in the BeOS, AmigaOS, and RISC OS desktop camps.
It focuses on drag-and-drop actions (which makes its accessibility non-optimal for some users), point-and-click actions, pop-up contextual menus, and a unique system of app directories for running local applications with no installation required.
Today, ROX is mostly abandoned and left in fragments that the user is left to sort out. Luckily, the puzzle is relatively easy to solve, but don't get confused when you find bits and pieces of the ROX desktop in your distribution's repository—but not every bit of the ROX desktop. The popular parts of ROX—the file manager (ROX-Filer) and the terminal (ROXTerm)—seem to have endured in most of the popular distribution repositories, and you can install (and use) them as standalone applications. However, to run the ROX desktop, you must also install ROX-Session and the libraries it depends on.I installed ROX on Slackware 14.2, but it should work on any Linux or BSD system.
First, you must install ROX-lib2 from its repository. True to its philosophy of minimal installs, all you have to do to install ROX-lib2 is download the tarball, unarchive it, and move the ROX-Lib directory to /usr/local/lib.
Next, you have to install ROX-Session. This probably needs to be compiled from source code, as it's not likely to be in your software repository. The compile process requires build tools, which ship by default on Slackware but are often omitted in other distributions to save space on the initial download. The names of the packages you must install to build from source code vary depending on your distro, so refer to the documentation for specifics. For example, on Debian-based distributions, you can learn about build requirements in Debian's wiki, and on Fedora-based distributions, refer to Fedora's docs. Once you have the build tools installed, execute the custom ROX-Session build script:
This manages its own build and installation and prompts you for root permissions to add itself as an option on your login screen.
If you have not installed ROX-Filer from your software repository, do that before continuing.
Together, these components create a complete ROX desktop. To log into your new desktop, log out of your current desktop session. By default, your session manager (KDM, GDM, LightDM, or XDM, depending on your setup) will continue to log you into your previous desktop, so you must override that before logging in.
ROX desktop features
The ROX desktop is simple by default, with a single panel at the bottom of the screen and a shortcut icon to your home directory on the desktop. The panel contains shortcuts to common locations. That's all there is to the ROX desktop, at least as it's configured out of the box. If you want a clock or a calendar or a system tray, you need to find applications that provide them.
There is no taskbar, as such, but when you minimize a window, it becomes a temporary icon on your desktop. You can click the icon to bring its window back to its former size and placement.
The panel can be modified some, as well. You can place different shortcuts into it and even create your own applets.
There's no application menu, either, nor are there shortcuts to applications in a contextual menu. Instead, you can navigate manually to /usr/share/applications, or you can add your application directory or directories to the ROX panel.
The ROX desktop's workflow concentrates on being mouse-driven, reminiscent of Mac OS 7.5 and 8. With ROX-filer, you can manage permissions, file management, introspection, script launching, background setting, and nearly anything else you can think of, provided that you're patient enough for the point-and-click style of interaction. For power users, this seems slow, but ROX manages to make it relatively painless and very intuitive.
App directories, AppRun, and AppImage
The ROX desktop has an elegant convention by which a directory containing a script named AppRun is executed as if it were an application. This means that in order to make a ROX app, all you have to do is compile code into a directory, place a script called AppRun at the root of that directory to execute the binary you've compiled, and then mark the directory executable. ROX-Filer displays a directory configured in the manner you set with a special icon and color. When you click on an app directory, ROX-Filer automatically runs the AppRun script inside. It looks and behaves exactly like an application that has been installed, but it's local to the user's home directory and requires no special permissions.
This is a convenience feature, but it's one of those small features that feels great when you use it because it's so easy to implement. It's by no means essential, and it's only a few steps ahead of building an application locally, hiding the directory somewhere out of the way, and drumming up a quick .desktop file to act as your launcher. However, the concept of an application directory has been cited as an inspiration for the AppImage packaging system.
Why you should try ROX desktop
Getting ROX set up and usable is somewhat difficult, and it appears to truly be abandoned. However, its legacy lives on in many ways today, and it's a fascinating and fun bit of Linux history. It may not become your primary desktop, but if you're looking for a fun trip back in time, then ROX is well worth a go. Explore it, customize it, and see what clever ideas it contains. There may yet be hidden gems that the open source community can benefit from.