On 2/16/06, Deephay <[EMAIL PROTECTED]> wrote: > Hi, > I have tried to add a line "xscreensaver -no-splash &" in the ~/.xsession > file > but the X cannot be started up currectly, it will return to the tty1 finally > after > the "startx" command was issued.
I think I know what the problem is now. When you put `xscreensaver` in ~/.xsession is that the only line there? If so I'm also going to guess that when you removed the line to use the other method you did so by deleting the file. If that is the case the problem is that when there is an .[xX]session file in your home directory the startx (among others) command terminates when the last command in that file has executed. In your case once xscreensaver has been put in the background control is returned to your shell since the process has finished. > But now the problem is solved, I created a file "98scrsvd" with a line > "xscreensaver -no-splash &" in it in /etc/X11/Xsession.d/ and now it works > well. > The prefix "98" indicates it will be sourced at last (the X is already > started up). By creating this file you are letting the Xsession scripts pass over the ~/.[xX]session file as its startup command and move to the next in the list which is x-session-manager followed by x-window-manager. To make it work with your ~/.[xX]session file you want it to contain the following: xscreensaver -no-splash & #Replace the following lines with what ever manager you want #if the defaults aren't quite right. if [ -x /usr/bin/x-session-manager ]; then exec x-session-manager elif [ -x /usr/bin/x-window-manager ]; then exec x-window-manager elif [ -x /usr/bin/x-terminal-emulator ]; then exec x-terminal-emulator > But I am still not very clear what is the really sequence and usage of > those .xinitrc > and the .xsession files, the manual seems not very much helpful. Anyone can > explain > this to me? Thx a lot! If you haven't already read it, read `man xsession`. The xinit man page doesn't say this but I believe that it first looks for .xinitrc and if it exists, runs that. If there is no .xinitrc it runs /etc/X11/xinit/xinitrc which simply sources /etc/X11/Xsession. So when you ran startx with a .xinitrc file you were put back at a shell after just .xinitrc was run. When you ran startx with a .xsession file the /etc/X11/Xsession and /etc/X11/Xsession.d scripts were run then you were put at a shell after your .xsession finished. With neither of these files the /etc/X11/Xsession script chose a different startup command and returned you to the shell after your x-session-manager or x-window-manager terminated. Hope this clarifies everything. It certainly did for me. --Dave