The hard part of custom environments on Fedora (or any Linux)
At one level, doing a custom X environment on top of Fedora is easy
(as I alluded to in reply to a comment on this earlier entry). I do it in a perverse way with my desktop, and people who are sane enough to use the
standard graphical login can do it by simply writing a script that
starts everything (including their window manager) and putting an
appropriately formatted file in
/usr/share/xsessions (as of Fedora
But all of that is the simple part. (As shown by the fact that I can look all of it up in about five minutes.)
The hard, complicated, and painful part of doing a custom environment on a modern Linux machine is figuring out all of the things that you need to run (and to do) to make all of the usual automatic things happen in your custom environment. Long gone are the days when a desktop environment was a window manager with a 'run some programs' menu; these days, a modern desktop environment has an ever growing number of moving parts, most of them mostly not documented and many of them needing other things as support. If you want things like automatic mounting and handling of removable disks, support for easy handling of wireless networks, and your laptop to suspend properly when you close the lid, you may be in for quite a bit of research and experimentation.
The other painful bit is due to where you usually have to get these programs from. There are independent implementations of some of what you need, but for most of it you generally have to selectively pick bits out of an existing desktop environment; you figure out what Gnome or KDE program is run to do a particular job, and then you start it in your desktop environment too. Of course these programs are not a stable, public interface that Gnome or KDE support as things that can be run outside the full Gnome or KDE environment. Instead they're internal implementation details, and such they keep changing. What program you run changes, how you run it changes, what it requires changes, and so on. Every time I upgrade Fedora, I can count on a couple of days of picking up the pieces of my custom environment again; I consider it a victory if only a few bits have to change.
(Increasingly you may also be up a creek if you are not running the standard environment. In Gnome 2, much of this functionality was provided by independent programs that you could run outside of the Gnome desktop environment. In Gnome 3 the Gnome Shell model is for 'applet' code to mostly run inside Gnome Shell itself, which means that you can't run it yourself in a different environment. So far the old 'applet' versions of various things are still being provided, but that probably won't last forever.)