[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

howto serialize tasks in .xsession



I run a hybrid desktop: gnome-control-center is installed, but not 
metacity.  Fluxbox is my WM; but I remove gnome-session as a Session 
Manager so I have No Session Manager.  Here is my .xsession:

#!/bin/sh
ARGS="--hide-menubar --window-with-profile=Default"
#gnome-control-center
gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon --oaf-ior-fd=21 &
xscreensaver -nosplash &
kdeinit &
gbuffy &
#xmms &
gnome-terminal $ARGS --geometry=80x25+1+22 &
gnome-terminal $ARGS --geometry=95x25+582+22 &
gnome-terminal $ARGS --geometry=80x40+1+418 &
gnome-terminal $ARGS --geometry=95x40+582+418 &
exec fluxbox

As you can see, I used to run gnome-control-center synchronously, and 
would double-click the Font applet, which would "wake up" the Gnome 
settings and make themes and junk work.  But I noticed what it runs is 
gnome-settings-daemon so I just run that directly.

The problem is I have to run gnome-settings-daemon, gbuffy, and 
gnome-terminal all in the background, because only the final task (exec 
fluxbox) can block.

The problem is if gbuffy or gnome-terminal starts before 
gnome-settings-daemon, themes and various gnome-ish things are broken.  
It's a classic race conditions.

How can I serialize the tasks?  Remember, none can block.  
gnome-settings-daemon doesn't return.



Reply to: