Merge remote branch 'ponder'
[profile] / dot / xinitrc
index 2ef2a18..3d337a6 100755 (executable)
@@ -109,8 +109,36 @@ case "$wm,$vnc" in
     ;;
 esac
 
-start-window-manager () {
+start-e16 () {
   run bginit $wm $wmopts
+  win=nil
+  for i in $(seq 10); do
+    sleep 1
+    if eesh version >/dev/null 2>&1; then
+      win=t
+      break
+    fi
+  done
+  case $win in
+    t)
+      info "$wm started ok"
+      run init xsetroot -cursor_name left_ptr
+      ;;
+    nil)
+      info "$wm failed to start!"
+      ;;
+  esac
+}
+
+start-window-manager () {
+  case $(type -t start-$wm || echo "not-found") in
+    function)
+      start-$wm $wmopts
+      ;;
+    *)
+      run bginit $wm $wmopts
+      ;;
+  esac
 }
 
 ###--------------------------------------------------------------------------
@@ -118,10 +146,24 @@ start-window-manager () {
 
 start-clients-local () { :; }
 
+scsv=$(pick_program screensaver gnome-screensaver xscreensaver)
+case $scsv in
+  xscreensaver)
+    scsvopts="-no-splash"
+    ;;
+  *)
+    scsvopts=""
+    ;;
+esac
+
 start-clients () {
   ## Mail notification.
   run bginit mail-notification
 
+  ## Gnome session.  With great reluctance.  At least it doesn't actually do
+  ## anything.
+  run bginit gnome-session
+
   ## Policykit authentication agent.
   agent=/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
   if [ -x $agent ]; then run bginit $agent; fi
@@ -133,16 +175,13 @@ start-clients () {
   case $vnc in
     no)
       run init xscreensaver-command -exit
-      run bginit xscreensaver -no-splash
+      run bginit $scsv $scsvopts
       ;;
   esac
 
   ## Panel.
   case $vnc in no) run bginit gnome-panel ;; esac
 
-  ## System tray.
-  ## run bginit stalonetray
-
   ## Local clients.
   start-clients-local
 }