I managed to get this working well, and thought I'd share some pointers to others. This is assuming you're using the ltspsound package on the contribs section. VMWare doesn't like the fake sound. In order to gt a thin client using sound, the LD_PRELOAD= and AUDIOSERVER lines need to go into /etc/X11/xdm/Xsession. Unfortuntly, this then breaks local X servers running on the console as I have it copying the $DISPLAY variable, but ".0" is not a valid audio port. I therefore made a different Xsession for local X servers. I have appended Xsession and xdm-config so you can see what's what. I'm using Mandrake 8.0 -- Rob Davis, at home, on the Linux Box...
! $XConsortium: xdm-conf.cpp /main/3 1996/01/15 15:17:26 gildea $ DisplayManager.errorLogFile: /var/log/xdm-error.log DisplayManager.pidFile: /var/run/xdm.pid DisplayManager.keyFile: /etc/X11/xdm/xdm-keys DisplayManager.servers: /etc/X11/xdm/Xservers DisplayManager.accessFile: /etc/X11/xdm/Xaccess ! All displays should use authorization, but we cannot be sure ! X terminals will be configured that way, so by default ! use authorization only for local displays :0, :1, etc. DisplayManager._0.authorize: true DisplayManager._1.authorize: true ! The following three resources set up display :0 as the console. DisplayManager.*.setup: /etc/X11/xdm/Xsetup_0 DisplayManager._0.startup: /etc/X11/xdm/GiveConsole DisplayManager._0.reset: /etc/X11/xdm/TakeConsole !DisplayManager._0.startAttempts: 1 ! DisplayManager*resources: /etc/X11/xdm/Xresources DisplayManager._0.session: /etc/X11/Xsession.oac DisplayManager._1.session: /etc/X11/Xsession.oac DisplayManager._2.session: /etc/X11/Xsession.oac DisplayManager*session: /etc/X11/Xsession DisplayManager*authComplain: false
#!/bin/bash -login exec /etc/X11/Xsession $* # Xsession ends here