----------------------------------------------------------------------------- XDM Program Loop | |----. | Chooser program | if the XDMCP call is `indirect'. | DisplayManager.DISPLAY.chooser: /usr/lib/X11/xdm/chooser | | ,-->--v---<-------' | | | V | Xsetup script | Run as root. | Do any initialization required before login display. ^ Set default font path (should really be done as server option). | Start the xconsole program (read only) for local screens (on Suns). | DisplayManager.DISPLAY.setup: /usr/lib/X11/xdm/Xsetup | | Xlogin program | The xlogin executable in /usr/bin/X11. | Display the login window and verify users password. ^ If the login window completes this section exits. | I believe the UNDOCUMENTED xdm-config resource exists :- | DisplayManager.DISPLAY.loginProgram: /usr/lib/X11/xdm/Xlogin | This should allow you to pick an alternative X login window program | (SGI's do this for pandora) However what the programs requirements | are is not known. | | Xstartup script | Run as root. | Check that the user is valid, and ensure dislay is user-ready. ^ Make a copy of the display authorization to the root authority file. | Log the users login in the wtmp and utmp files. | Change the ownership various devices to user (console, keyboard, bitmap). | Start any root owned processes (xautolock?). ^-47>=- ps -ax | awk "/xdm/ && ! /(awk)/" 445 ? IW 0:34 /usr/bin/X11/././././././xdm <- parent daemon 780 ? IW 0:01 -ncd115.cit.gu.edu.au:0 (xdm) <- sub-daemons 1039 ? IW 0:04 -ncd109.cit.gu.edu.au:0 (xdm) 3958 ? IW 0:01 -ncd127.cit.gu.edu.au:0 (xdm) ....etc... If argv[0] is not large enough to hold this string the string will be just cut off. The (xdm) in the `ps' output is provided by `ps' to show the real name of the command as it was changed. IE: real command /usr/bin/X11/././././././xdm length of argv[0] <--------------------------> argv[0] replaced with -ncd???.cit.gu.edu.au:0 output in ps -ncd???.cit.gu.edu.au:0 (xdm) OR: command without dots /usr/bin/X11/xdm length of argv[0] <--------------> argv[0] replacement -ncd???.cit.gu.e output in ps is then -ncd???.cit.gu.e (xdm) ----------------------------------------------------------------------------- Undocumented resoure for xdm's xlogin This was found in the SGI indigo2 xdm-config file. It is not documented. DisplayManager._0.loginProgram: /usr/lib/X11/xdm/Xlogin The program is a script which sets various colors (cursor included) and the ``gamma'' level of the display (non-standard command). /usr/bin/X11/xsetroot -solid sgilightblue -display $screen /usr/bin/X11/xsetroot -cursor_name X_cursor \ -fg red -bg white -display $screen It then exec's a program called `pandora' to handle the login proceedure. ----------------------------------------------------------------------------- Adding a bitmap to the login screen (in the Xsetup script program ) ON Backgound create a full screen background patter with the image wanted. # Is this a color workstation (well, 8-bit color)? $XBIN/xdpyinfo 2> /dev/null | /bin/grep -s 'bits_per_pixel 8' && COLOR=true # Put a bitmap on root window if [ -f /usr/local/pub/deakin_logo.xbm ]; then # Use the Deakin logo case $COLOR in true ) $XBIN/xsetroot -bitmap /usr/local/pub/deakin_logo.xbm \ -bg rgb:0/0/c0 -fg rgb:0/0/90 ;; * ) $XBIN/xsetroot -bitmap /usr/local/pub/deakin_logo.xbm -rv ;; esac else $XBIN/xsetroot -bitmap /usr/X11/include/bitmaps/escherknot -rv fi ON background at a specific position This fails as the rest of the background pattern in lost! (becomes black) xloadimage -quiet -onroot -border black -at 550,300 pics/GUlogo_medium.xbm This works but requires a special rutine to delete the window later xloadimage -quiet -g +550+300 pics/GUlogo_medium.xbm & Insert it into the login window The xloadimage program can set a bitmap pas the background pattern on a window, however the login window is not created when xsetup is ruuning. Presumably this will work if the command is backgrounded and deleyed until the xdm login window is created. (see above, and hints.Scripts) Add the bitmap to the greeting font This is simple and works, however the space around the greeting will also expand by the same heigth as the bitmap used, making the window look large and ugly. Arrggg... ----------------------------------------------------------------------------- libXdmGreet.so.1.0 (New for X11R6) I think they are here in order to allow a simpler customization of XDM. For example, if you want to change the look of the XDM banner (the Login widget), you just have to change the shared lib and you can do so even if you don't have the full XDM source distribution (i've done such a work in order to build an "iconic" XDM which allows user to login by clicking hist photograph). --- Pierre FICHEUX ----------------------------------------------------------------------------- Resources for XLogin (Fonts and colors only) ! ! NCD Version ! xlogin*greetFont: -*-charter-bold-r-normal--*-180-*-*-p-*-iso8859-1 xlogin*Font: -*-charter-bold-r-normal--*-120-*-*-p-*-iso8859-1 xlogin*failFont: fg-22 xlogin*borderWidth: 3 #ifdef COLOR xlogin*greetColor: #f63 xlogin*failColor: red xlogin*Foreground: black xlogin*Background: #fdc #else xlogin*Foreground: black xlogin*Background: white #endif ! ! Our Version (to be improved ! xlogin.Login.greetFont: -*-*schoolbook-bold-r-*-240-75-* xlogin.Login.failFont: -*-*schoolbook-bold-i-*-180-75-* xlogin.Login.promptFont: -*-lucidabright-medium-r-*-180-100-* xlogin.Login.Font: -*-lucida-medium-r-*-180-100-* xlogin*borderWidth: 3 #ifdef COLOR xlogin*greetColor: dodger blue xlogin*failColor: red *Foreground: black *Background: wheat #else xlogin*Foreground: black xlogin*Background: white #endif ! ! All Xdm's should have ! xlogin*login.translations: #override\ CtrlR: abort-display()\n\ F1: set-session-argument(failsafe) finish-field()\n\ osfHelp: set-session-argument(failsafe) finish-field()\n\ CtrlReturn: set-session-argument(failsafe) finish-field()\n -----------------------------------------------------------------------------