The ROX-Filer is the key component of the
ROX Desktop—it’s a file manager, like
Windows Explorer or Nautilus or Konqueror, but one that takes some hints
from Risc OS. I love it, and I use it all the time. But there are some
ways I think it could be better. I’m not posting this list to the
ROX mailing lists, because it’s not
constructive criticism—there is no way I could implement this stuff, so
I’d just be whining for someone else to write code for me. I can put it
here, though. :)
Make the Filer spatial
This is the key thing. John Siracusa has explained, in detail, the
concept of a Spatial Finder on the Mac, and I want my desktop to
work like that. The
Filer
already can be configured to give a new window for each folder, but it
doesn’t remember settings; if you resize a folder window, then the Filer
doesn’t remember that. I’ve looked into having my window manager do it,
but you can’t. The Filer does put the path it’s displaying into the
window role property on the window, which theoretically could be used to
have an external program “remember” Filer settings for that folder and
resize the Filer window when it’s created. However, devilspie, which
can do things to windows on window creation, can’t resize windows, and
it only runs on creation; there’s no way of capturing a resize event on
a Filer window to “save” the details of the new size somewhere.
wmctrl can resize windows, but it’s not hooked into any window
events, so you’d have to just run it in a cron job every second or so
(oof), and you can’t detect Filer windows with it (it returns a window
title, but not necessarily the owning app, so you can’t tell that a
Filer window is a Filer window). It should be possible to write
something that wraps libwnck and hooks window creation and resize
events, and records changes to Filer windows, but this should be a
fundamental property of the Filer rather than something implemented
externally. Even if the external approach was the way to go anyway, I
couldn’t do it: I’m no good at C, and I can’t find Python bindings for
libwnck.
Proxy icons for files
Siracusa also flags the idea of “search folders“, which are folders
that contain the results of a search, and are always up to date with the
results of that search. ROXFilter nearly
does this, but it’s missing a couple of things. The first is some
GUI configuration, so the user can manually
create search folders (without having to know Perl, yeesh). Ideally,
search folders would be created for you by some search tool, but that’s
OK. The second, and most important thing, is that the search folder
should be populated with proxy icons. When you drag a proxy icon for
app A or file B to a different Filer window, then app A or file B
should be moved there. This is why
ROXFilter’s current approach, of using
symlinks, isn’t good; if you drag a symlink from a
ROXFilter folder, it’ll move the symlink, not
the file the symlink points to. I don’t think that this can be done
without support from the Filer.
Make the desktop a Filer window
It should be possible to drag things to the desktop. At the moment, you
can’t; the desktop can only contain shortcuts. This is a real pain; when
I unpack AppDirs, I want to drop them on my desktop, run them, and then
move them somewhere if I like them. At the moment I have to open a Filer
window to have somewhere to put an unpacked thing. I don’t like this.
Make entering a path into the Filer quicker on big directories
I’m not sure about this one, because I’m halfway convinced that the
Filer shouldn’t show pathnames at all. But, given that it does: on a
Debian box (or probably other things too), bring up a Filer window, hit
/ to enter a path, hit backspace a few times to remove the path that’s
in there, and then type (at normal typing speed) /usr/share/doc/python
(or any existing path in /usr/share/doc). Doesn’t work, because after
you’ve typed /usr/share, the Filer takes a second or so to display the
window, and during that time doesn’t respond to keypresses. So you end
up typing /usr/share/c or something. I’m not clear how to make this
better, since until the Filer’s parsed the folder contents it can’t tell
whether what you’re typing in is a legit path.
Stuff that I would love to see happen to the ROX-Filer
I'm currently available for hire, to help you plan, architect, and build new systems, and for technical writing
and articles. You can take a look at some projects I've worked on and
some of my writing. If you'd like to talk about your upcoming project,
do get in touch.