Hamish,
I was messing around with r.colors for 5.7. As it is currently (or at least as of 4/24 - my current installation) it is pretty close to what I was suggesting. For what it is worth, the changes I'd recommend are:
1. change the rules=[file] so that it just looks for a color table file in any user-defined location, not $GISBASE/etc/colors. It should have a gisprompt: 'file,file,file' in the tcltk header for g.parser to read. This makes it a built-in version of the redirect command that Helena mentioned. I'd change the description from 'predefined rules file' to 'user-defined color table' or simply 'color table file'. There would be no need to find a way to read and parse a list for users to see. They could simple browse to a location where they wanted to store extra color tables and see what is there.
2. split out the color=rules from color=[type], and make it a flag. Currently, color=rules works from the command line but not from the autogenerated GUI. Unlike the other color=[type] options, it needs to exec an xterm. Making it a flag rather than a possible color type might make this easier to solve. The color=[type] option could then be described as 'predefined GRASS color tables' and the flag as 'create color table interactively'
Does this sound more easily doable?
Michael
____________________
C. Michael Barton, Professor
School of Human Origins, Cultures, & Societies
PO Box 872402
Arizona State University
Tempe, AZ 85287-2402
USA
Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>