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...
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:
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!
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.
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:
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.
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!
OroboROX lets you define a keyboard short-cut for this.
For other window managers, or if you want a clickable button, Andras Mohari suggests this script:
#!/bin/sh if wmctrl -m | grep -q '"showing the desktop" mode: ON'; then exec wmctrl -k off else exec wmctrl -k on fi
This requires the wmctrl program and was tested using xfwm4 (should work with any other EWMH-compatible window manager that implements the 'show desktop' feature, at least in theory).
Save the script and set its permissions to make it executable (File -> Permissions). You can now drag it to your panel and click on it to show the desktop. You can also bind a keyboard short-cut to it using the panel's Edit Item menu item.
This assumes that you are running ROX-Session.
There are three different methods you can use:
dbus-send --print-reply --type=method_call --dest=net.sf.rox.Session \ /Settings net.sf.rox.Session.Settings.SetString string:ROX/WindowManager string:xfwm4
Side panels can be managed by ROX-Filer, but by default they are not turned on. They allow you to create short-cuts to files, directories and applications. Panels work much like the pinboard (the desktop background), except that they come to the front when the mouse hits the edge of the screen and the layout is more rigid. You can also run small programs called applets inside a panel.
To add a border panel:
$ rox -b Default
Here, Default is the name of the panel to use. You can use different names to switch between different setups.
Note that ROX-Session will automatically turn on the pinboard and one panel when you log in, by running the command rox -S from the RunROX script. The -S flag makes it use the configuration set in ROX-Filer's Options box, under Desktop.
See also the Customization page in the guide-book.
To hide a panel, give the side of the screen on which it is currently displayed but without naming a panel to put there:
$ rox --bottom=
To get the semi-transparent panel shown in the screenshot, I used the new XComposite extension provided by the x.org X server. To use it, you need to turn the extension on in /etc/X11/xorg.conf:
Section "Extensions" Option "Composite" "Enable" EndSection
You also need to be running xcompmgr. Use the transset command to adjust the opacity of windows.
You can give an argument to set the level, from fully transparent to fully opaque.
Note: this is all experimental (and rather slow!), but it makes for more interesting screenshots!
The desktop background is called the pinboard. To enable turn it on and enable desktop-icons, use this command:
$ rox --pinboard Default
You can now drag files, directories and applications onto the pinboard to create short-cuts to them.
You cannot actually save things to the pinboard; you can only create links to things that exist in directories elsewhere.
If you use ROX-Session, then a pinboard will be set up for you on login automatically.