WHAT IS XSESSION? The xsession program is a session manager. It is normally executed by your ~/.xinitrc (or ~/.xsession) script and controls your X Window session. As soon as it is started, xsession launches a window manager and some applications of your choice. At anytime during your session, you may switch to another window manager or execute some other applications from the xsession menus. You may also lock your screen using an independent locker application. The window contains a message area which is used to notify the user whenever an application or a window manager starts or ends, and also to display all the output and error messages of the programs (the applications and the window managers) run by xsession. One useful feature of xsession is the preprocessing of window managers' configuration files. When a window manager is launched, its startup file can be filtered through m4(1) or cpp(1). Some macros are defined (such as the host name, screen size and so on) that will help you customize your menus and screen layout. One advantage of this feature is that several window managers can share the same startup file: some lines are protected by a test on the "WM_NAME" macro, but the other lines are common. This saves a lot of time if you want to maintain the same menu structure for the four of them. You can also use "include" statements in your file. USAGE The best way to execute xsession is to include it in your ~/.xinitrc (or ~/.xsession) file, as the last client. The xinit(1) manual page says that "the last long-lived program started [...] should be left in the foreground so that the script won't exit". You will find a similar statement in the xdm(1) manual page. This last program should be xsession. As a matter of fact, this may even be the only program executed in your startup file, because xsession itself provides a way to launch other applications. When started, xsession will look in your home directory and execute a file named .X11Startup, if found. This shell script is used to start your client programs. FTP SITES FTP sites where you can look for the latest versions are: ftp.x.org (198.112.44.100) /pub/contrib bear.montefiore.ulg.ac.be (139.165.8.25) /pub/xsession Please use the one nearest to you: bear.montefiore.ulg.ac.be in Europe, ftp.x.org elsewhere. If you are willing to distribute xsession, please notify us. We'll update this list with your site and directory in the next release of xsession. REQUIREMENTS You will need UNIX, the X11R5 libraries (including the Athena widget library) and a (K&R or ANSI) C compiler to compile and link this software. This X client application should run with all X Window compatible servers. COMPILING & INSTALLING Read the INSTALL file. TESTING We have personally compiled and run xsession on o Sun3 with SunOS 4.1.1 (using gcc) linking with MIT X11R5 (patch level 25) libraries, o Sun4 (Sparc) with SunOS 4.1.[2,3] (using gcc) linking with MIT X11R5 (patch level 25) libraries, o DEC 3100 with Ultrix 4.2 (using cc) linking with MIT X11R5 (patch level 25) libraries, o IBM RS/6000 with AIX 3.2.5 (using cc) linking with AIXwindows 1.2.5 libraries, o SGI Indigo with Irix 4.0.5F (using cc running in K&R mode) linking with SGI X11R5 libraries, o IBM-PC compatibles with Linux 0.99pl14 (using gcc) linking with XFree86 X11R5 libraries. It has been reported to us that the program also compiles and runs on o Sun4 (Sparc) with SunOS 4.1.0 (using gcc) linking with MIT X11R5 libraries, o DEC Alpha with OSF/1.3 (using cc) linking with X11R5 libraries. We have successfully run xsession with OpenWindows [2.0,3.0] servers, with NCDware 3.1 servers, with AIXwindows 1.2.5 servers, and with MIT X11R5 (patch level 25) servers. We would be grateful to anybody that will inform us of successful buildings and running of xsession on different platforms. KNOWN BUGS None. But some peculiar features are explained in the manual page. If you find a bug or something unusual, please report the problem to us. We'll try and fix it as soon as possible. REPORTING BUGS When reporting bugs, make sure you include the following: o If the bug happened while compiling xsession: - which release of xsession did you try to compile? - which type of computer did you use? - which release of the operating system are you using? - which compiler and flags were used? - include the Makefile used for building xsession. - include any output related to the bug. o If the bug happened while running xsession: - which release of xsession did you use? - which type of computer did you use? - which release of the operating system are you using? - which compiler and flags were used when compiling xsession? (to be included only if you know these informations) - which X server was running when the bug occured (vendor, release number)? (to be included only if you know these informations) - include the Makefile used for building xsession. (to be included only if you still have this file) - include any output related to the bug. - give a description of what you did before the bug occured; this description should be as detailed as possible. Mail the bug report to the authors. FUTURE PLANS o Add a "-quiet" or "-warns"/"-nowarns" option. o Add a "-longMenus" option. This will show the full application names in the menus. Or add a third optional field in the application resource string. This extra field will be shown in the menus if present (instead of the short name). o Add support for SIGALRM signals from window managers like OLWM, OLVWM, ... o Enable choosing between m4 and cpp at runtime rather than at compilation time. o Add an optional support for the Motif widgets instead of the Athena widgets. Some people cannot live without Motif... You can send us any suggestion/enhancement about xsession. We'll try to merge it in the next release. If you send us some piece of code, please document it: we won't include in xsession any misunderstood code! AUTHORS Raphael Quinet Alain Nissen CREDITS Claude Lecommandeur wrote the "ctwm" window manager. The preprocessor features in xsession were clearly inspired by his work. "ctwm" is available on "ftp.x.org", in the "/contrib" directory. Mark Boyns wrote the "rplay" package. This great library is used to play sounds on various hosts. It is available on "sounds.sdsu.edu" and "bear.montefiore.ulg.ac.be", in "/pub/rplay". COPYRIGHT Copyright (C) 1993, 1994, Alain Nissen & Raphael Quinet, University of Liege, Belgium. XSession is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. XSession is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, either from the authors or from the University of Liege; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with xsession; see the file COPYING. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.