Xclients 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #!/bin/bash
  2. # by Jun Nishii <jun@vinelinux.org>
  3. # by Ryoichi INAGAKI <ryo1@bc.wakwak.com>
  4. # Time-stamp: <2010-02-27 21:41:08 inagaki>
  5. msgfile="$HOME/.xwm.msgs"
  6. startWM(){
  7. WM=$1
  8. shift
  9. CMD="$(type -p $1)"
  10. shift
  11. if [ -n "$CMD" ]; then
  12. echo Starting $WM >>$msgfile
  13. env > "$HOME"/Xrootenv.0
  14. exec ${XSESSION_WRAPPER} $CMD $@ >>$msgfile 2>&1
  15. return 0
  16. fi
  17. return -1
  18. }
  19. # First thing - check the user preferences
  20. if [ -f $HOME/.wm_style ] ; then
  21. WMSTYLE=`cat $HOME/.wm_style`
  22. case "$WMSTYLE" in
  23. gnome*|Gnome*|GNOME*)
  24. startWM Gnome gnome-session
  25. ;;
  26. startkde*|kde*|KDE*)
  27. startWM KDE startkde
  28. ;;
  29. startxfce4*|xfce*|XFce*|XFCE*)
  30. startWM XFce startxfce4
  31. ;;
  32. startlxde*|lxde*|LXDE*)
  33. startWM lxde startlxde
  34. ;;
  35. startmate*|mate*|MATE*)
  36. startWM Mate mate-session
  37. ;;
  38. wmaker*|WindowMaker*)
  39. startWM WindowMaker RunWM --WindowMaker
  40. ;;
  41. afterstep*|Afterstep*|AfterStep*)
  42. startWM AfterStep RunWM --AfterStep
  43. ;;
  44. blackbox*|BlackBox*|BLACKBOX*)
  45. startWM BlackBox blackbox
  46. ;;
  47. fluxbox*|FluxBox*|FLUXBOX*)
  48. startWM FluxBox startfluxbox
  49. ;;
  50. icewm*|IceWm*|ICEWM*)
  51. startWM icewm icewm
  52. ;;
  53. enlightenment*|Enlightenment*|ENLIGHT*)
  54. startWM Enlightenment enlightenment
  55. ;;
  56. sawfish*)
  57. startWM sawfish sawfish
  58. ;;
  59. sawmill*)
  60. startWM sawmill sawmill
  61. ;;
  62. qvwm*|QVWM*)
  63. startWM qvwm qvwm
  64. ;;
  65. fvwm2*|FVWM2*)
  66. startWM fvwm2 fvwm2
  67. ;;
  68. twm*|TWM*)
  69. startWM twm twm &&\
  70. exec kterm -C -title Login -n Login -sb -geometry 80x25-0-0 -ls
  71. ;;
  72. default*)
  73. startWM Gnome gnome-session
  74. ;;
  75. esac
  76. fi
  77. GSESSION="$(type -p gnome-session)"
  78. STARTKDE="$(type -p startkde)"
  79. # check to see if the user has a preferred desktop
  80. PREFERRED=
  81. if [ -f /etc/sysconfig/desktop ]; then
  82. . /etc/sysconfig/desktop
  83. if [ "$DESKTOP" = "GNOME" ]; then
  84. PREFERRED="$GSESSION"
  85. elif [ "$DESKTOP" = "KDE" ]; then
  86. PREFERRED="$STARTKDE"
  87. elif [ -n "`grep -i AnotherLevel /etc/sysconfig/desktop`" ]; then
  88. PREFERRED=AnotherLevel
  89. elif [ -x /usr/bin/gnome-session ]; then
  90. PREFERRED=gnome-session
  91. fi
  92. fi
  93. if [ -n "$PREFERRED" -a "$PREFERRED" != "AnotherLevel" ] && \
  94. which $PREFERRED >/dev/null 2>&1; then
  95. PREFERRED=`which $PREFERRED`
  96. exec ${XSESSION_WRAPPER} $PREFERRED
  97. fi
  98. # We should also support /etc/X11/xinit/Xclients.d scripts
  99. XCLIENTS_D=/etc/X11/xinit/Xclients.d
  100. if [ "$#" -eq 1 ] && [ -x "$XCLIENTS_D/Xclients.$1.sh" ]; then
  101. exec -l $SHELL -c "$SSH_AGENT $XCLIENTS_D/Xclients.$1.sh"
  102. fi
  103. # Failsafe.
  104. # these files are left sitting around by TheNextLevel.
  105. rm -f $HOME/Xrootenv.0
  106. # Argh! Nothing good is isntalled. Fall back to fvwm2 (win95-style) or twm
  107. {
  108. # fall back to failsafe settings
  109. [ -x /usr/bin/xsetroot ] && /usr/bin/xsetroot -solid '#222E45'
  110. if [ -x /usr/bin/xclock ] ; then
  111. /usr/bin/xclock -geometry 100x100-5+5 &
  112. fi
  113. if [ -x /usr/bin/kterm ] ; then
  114. /usr/bin/kterm -geometry 80x50-50+150 &
  115. fi
  116. if [ -x /usr/bin/firefox -a -f /usr/share/doc/HTML/index.html ]; then
  117. /usr/bin/firefox /usr/share/doc/HTML/index.html &
  118. fi
  119. startWM fvwm2 fvwm2 || startWM twm twm
  120. }