Сегодня разбирался, как в Федора 8 запускается оконная среда. Почти что разобрался. У меня теперь работает это так:
1. Кто-то (gdm?) запускает бинарь /usr/bin/gnome-session из одноимённого пакета.
2. gnome-session запускает шелл-скрипт /usr/bin/gnome-wm (тоже из пакета gnome-session).
3. gnome-wm смотрит, что записано в переменную среды WINDOW_MANAGER. Если ничего, то смотрит, что в переменной /apps/gnome-session/rh/window_manager в GConf. Если что-то нашёл -- запоминает.
Если нет, то берёт дефолтный список из нескольких WM (sawfish sawmill enlightenment icewm wmaker fvwm2 qvwm fvwm twm kwm). Далее смотрит, есть ли на десктопе COMPOSITE extension, и добавляет в начало того списка ещё compiz и beryl, а потом безусловно metacity. Далее идёт по этому списку и ищет первый wm, который можно запустить, и запоминает.
Далее для выбранного WM выставляет флаги (для каждого -- свои). Далее, если это compiz, то безусловно запускает в фоне gtk-window-decorator, а если beryl -- то emerald. Ну и наконец уже запускает сам выбранный WM.
В моём случае, однако, в /apps/gnome-session/rh/window_manager прописаны слова compiz-manager.
4. compiz-manager -- это шелл-скрипт из одноимённого пакета. Он делает кучу проверок (поддерживается ли COMPOSITE extension, какая видеокарта, какой драйвер, какие библиотеки, сколько видеопамяти, какие фичи даёт GL драйвер. Если ему что-то кажется неправильным, то он запускает metacity в качестве фоллбека, а если всё хорошо -- то один из "декораторов" (emerald, gtk-window-decorator, kde-window-decorator) и наконец сам compiz.
Примерно вот так вот...