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: