xdm is a program that presents a graphical login widget. It's not good for much, except trying to impress your MS Windows friends. It's quite easy to set up. Find the xdm entry in /etc/ttys and uncomment it (remove the pound sign):
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure
The /etc/ttys file is read by the init process. You can cause init to re-read this file and have this change to take effect by sending a SIGHUP signal to the init process:
kill -HUP 1
There is a certain amount of control you have over the look of the xdm display, and most of the things you can set, including colors and the display graphic, are located in the /usr/X11R6/lib/X11/xdm/Xresources file.
/usr/X11R6/lib/X11/xdm/Xsetup_0 is a script that gets run when xdm starts, and I usually place a command in here to set a background.
It looks to me like themes.org used to carry themes for xdm, but they experienced some kind of system failure a while ago, and they have had a hard time getting back on their feet.
Here is the command I use to set a background:
xv -root filename.jpg -quit
Obviously xv must be installed already. xv can display a very wide variety of file formats. It probably helps if your image matches the dimensions of your display.
I tried to set up gdm once, which is supposed to be a GTK based clone of xdm. I jumped through a bunch of hoops, but I finally got to a point where it still didn't work and I gave up. If someone has some hints, please pass them along. It was a long time ago, probably with FreeBSD 4.4, so may I should attempt it again.