How I use ROX

Watching how other people use programs often shows you tips and tricks you didn't know. ROX-Filer has lots of features; some are extremely useful while some I almost never use. Here are my favourite features and settings...

Window management

A good way to find out what the most important settings are is to try using a new system for a bit. Anything you change in the first few minutes is probably important to you!

No matter what system I'm using, the first thing I have to do is turn off click-to-raise (where clicking anywhere inside a window brings it in front of other windows). Without this, it's almost impossible to use multiple programs together. I'd wondered whether people who do use click-to-raise have developed their own way to use the system efficiently with it, but watching over the shoulders of experienced and computer-savvy Windows users, I've come to the conclusion that it's always awkward, no matter how good you are.

Actually, I thought drag-and-drop couldn't be done with overlapping windows on Windows until I watched experienced users. Here's how they drag a link from a web browser to another window:

  1. Start dragging on the link (this causes the web browser to jump to the front of the stack, covering the target window).
  2. Drag to the bottom of the screen and wait for the Start bar to pop up.
  3. Drag over the button for the window that just got covered up.
  4. Wait (still holding down the mouse button) and after a bit the window will re-appear.
  5. Move to the target location in the window and let go.

Ouch. It's not just drag-and-drop that suffers with click-to-raise. Try using a standalone calculator application with a word processor. As soon as you try to paste a result into the document, the calculator disappears! This is why OroboROX (at least, the version in Zero Install) defaults to no click-to-raise. It's also why Metacity is so low on ROX-Session's list of window managers - it provides no way to turn this off.

Tip for Windows users: TX-Mouse will sort you out.

I also use sloppy focus, but I didn't make that the default because I think that's just a personal preference, whereas click-to-raise affects the whole desktop experience (and, if you're a prorgammer, even the way you design applications). Programs designed in click-to-raise environments have to have everything built in, because using multiple applications is too painful. Programs designed in non-click-to-raise environments tend to be smaller and make use of interaction with other programs.

Although clicking inside a window doesn't bring it to the front in OroboROX, clicking or dragging the titlebar with the left mouse button does. To move a window without changing the stacking order, drag with the right mouse button (button-3). This also works in XFWM4, which is very similar to OroboROX (so similar, in fact, that I use OroboROX at home and XFWM4 at work without getting confused).

I generally use six workspaces, with Pager on my panel, giving me plenty of room. I used to have problems nagivating (having to remember which one I was on), but I've found the solution. I use the Windows key + the six letter keys in the top-left of the keyboard (QWE / ASD) to switch to the six desktops, so that the layout on the keyboard is the same as the layout in the pager and I avoid the need to remember where I am!

Pager on my panel

ROX-Filer

For me, ROX-Filer isn't an application that I start, use and quit; it's part of the desktop environment that I invoke without thinking about it. I know I use it all the time because sometimes I break it during development and I think "I'll do something else and fix it later". Typically, within five seconds or so of having this thought I've automatically tried to run ROX-Filer in order to get to the "something else"! Then I think "I must fix it now!", and automatically try to run it again to get to the source code to fix it ;-)

I use ROX-Filer to manage the desktop background and one panel. ROX-Filer starts pretty quickly anyway, but this way it's always loaded, which allows it to keep directories cached and open its windows even faster!

One of the most common operations is opening my home directory from any program. For this, I set up a global short-cut (Ctrl-Tab for some reason), which you can do by dragging your home directory to either the pinboard or the panel, right-clicking, and choosing Edit Item. Short-cuts set this way will work even if some other application has the input focus.

Whatever I want to do, I first use ROX-Filer to navigate to the directory I want to use (usually starting with Ctrl-Tab to open my home). I move around with the keyboard: just press / (forward slash) and start typing. The cursor highlights the first match, and Tab-completion works as any shell user expects. You can use the Up and Down arrows to move between matches, and Return opens the file or directory under the cursor. To enter a hidden directory, just type the initial . (period) and ROX-Filer will display all hidden items.

Pressing Backspace moves to the parent directory when you delete the last slash. This also removes the leaf name, so each further press of Backspace moves you up one directory, even when the path entry minibuffer is open (this was originally a bug, but I liked it so much it's now a feature ;-).

Often, I don't want to keep the filer window open while I'm editing a file, so I click with the middle mouse button to open the file and close the filer window at the same time. I set default run actions for each file type using the menu (Set Run Action...), but I'll want to load almost every kind of file into my text editor (Vim!) eventually: click with Shift held down to do that.

The other program I use all the time is good old xterm (yes, I'm a command-line lover!). I prefer xterm to gnome-terminal because it's faster and because you can adjust the selection using button-3, which is very useful. Press ` (backtick) to open a terminal with the current directory set to the directory ROX-Filer is showing. Again, I often want to close the filer window at the same time, and Shift+` does this (this isn't set by default, but it's on the Window menu and setting menu short-cuts is easy).

The key to effective use of ROX-Filer is being able to open filer windows quickly. We've seen how to close a filer window while starting Vim or xterm... how do we get back to the filer window?

From xterm you can always just type rox of course, but four key-presses it way too slow! Besides, it's annoying if you're in the middle of typing a long command (even with zsh's excellent Esc-Q short-cut). So, I bind it to F12 and then I can open a ROX-Filer window onto whichever directory I'm in with a single key.

For Vim, I use the same F12 short-cut to open the window containing the file being edited. My .vimrc line uses the filer's --show option to make the file itself wink a couple of times in the new window so you can see where you came from, just like when going to the parent directory from another directory.

If you can't get back to a filer window from the application, you can always open your home directory (Ctrl-Tab!) and use the bookmarks button on the toolbar - the directory you want is probably in the handy Recently Visited submenu.

The primary selection

If you've used X for a while, you'll have discovered the middle-button-paste feature. This pastes the currently-selected text (not the clipboard!) to wherever you click. In particular, if you select some files in ROX-Filer then middle clicking into any application will paste the filenames. That includes:

  • Paste into Firefox's address bar (or even just into the main window) to view that file.
  • Paste into an xterm to add a filename to a command.
  • Paste into a file Open dialog box for applications that don't support drag-and-drop.

If you select something else in another window, ROX-Filer loses the primary selection (it shows the selection greyed out). To get it back, just click on any item in the greyed-out selection.

Tip: to select files quickly by glob, use . (period). For example, typing .png will instantly select all files ending in .png. With a bit of editing of the pattern with the cursor keys, you can select on other parts of the name (e.g., all files starting with test-).

Tab and Shift-Tab move forwards and backwards through the selected items. You can also select based on more complex rules by pressing ? and entering an expression (e.g., size > 10 Mb). Click on the help icon that appears next to the entry box for some hints about that, or (gasp!) read the manual.

Conclusion

Turning off click-to-raise makes it easy to use programs together, and this is how ROX is designed to be used. You should make sure you can switch effortlessly between ROX-Filer and your most-used applications (xterm and Vim in my case). ROX provides a good interface for use in scripts (including a more comprehensive set of SOAP calls - see the manual).

Of course, I use many more programs than discussed here. Archive is something I use a lot too (and it's well worth adding it to your SendTo menu for directories), and I use several panel applets like NetStat, Load and Clock... but this article is too long already. Check out the Hints and Tips section of the web-site for more!