I wasted some precious time yesterday, but ended up with what I hope will eventually evolve into a conveniently-organzed theme switcher for Fluxbox. I'm not talking about just changing styles, but changing visual settings of other applications as well (maybe icon sets, too). Since I use a lot of text based applications, it's particularly useful for me to modify the foreground color of aterm and the bash prompt to blend with the chosen fluxbox style.
Currently I have a system set up in my liveCD backups which allow me to chose just before loading X which theme I want. If I do nothing, Fluxbox will look like this black&white screenshot
If I 'touch .fire_theme && startx' or 'startxfire', my X environment will load up looking like my recent screenshot
note: savefile.com seems to be a little iffy...
The difficult part is that the process is spread out through several config files, which check for the existence of $HOME/.fire_theme before doing their thing. For example, the bash prompt is split up into two functions within ~/.bashrc. If the fire file exists, the red prompt is chosen, and if it doesn't exist the b&w prompt is chosen:
[ -f "$HOME/.fire_theme" ] && set_promptFIRE || set_promptBW
~/.xinitrc also checks for this file. If it exists it creates ~/.Xdefaults including orange fg color for terms. If the file doesn't exist, ~/.Xdefaults is created with a white fg color in terms.
Other configurations and wrappers also exist which do similar things.
I'm hoping to find a more convenient way to do this so the process can easily be replicated on multiple systems, possibly storing all information in a separate directory which can be dynamically swapped out.
I'm also toying with a way to quickly swap extensions in and out (including xfree86) without a reboot. This will hopefully remove the need for the multiple CD thing I was trying to do earlier (that was getting confusing).
Eventually I'll have a 700mb CD (or maybe a DVD?) which can hopefully load and unload any number of configurations with a few keystrokes, no reboot necessary. This would be useful if you happen to boot into text mode, do some work, and then try to boot into an accelerated graphical system which turns out to be broken on a particular machine. Rather than mess around trying to repair the system, or worse reboot and lose your data, you could simply uninstall the offending package.
This setup is for later experimentation, though. For now I'm just working to simplify the process of customizing the system's appearance.