My attempts at modifying /etc/ttys gave results inferior to the supported xdm_flags="", so...
1. Have xdm_flags="" in /etc/rc.conf.local 2. Apply this diff, then cd xenocara/app/xdm && make -f Makefile.bsd-wrapper build 3. Add printf '%s\0%s' username password > /var/xdm-auto-login to /etc/rc.local I grant this diff to the public domain. Index: xenocara/app/xdm/greeter/greet.c =================================================================== RCS file: /cvs/xenocara/app/xdm/greeter/greet.c,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 greet.c --- xenocara/app/xdm/greeter/greet.c 5 Aug 2007 19:01:03 -0000 1.1.1.2 +++ xenocara/app/xdm/greeter/greet.c 9 Dec 2008 08:34:46 -0000 @@ -69,6 +69,9 @@ # include "config.h" #endif +#include <stdio.h> +#include <string.h> + #include <X11/Intrinsic.h> #include <X11/StringDefs.h> #include <X11/Shell.h> @@ -354,6 +357,21 @@ { XEvent event; Arg arglist[3]; + + { + const char *s = "/var/xdm-auto-login"; + FILE *f; + static char b[50]; + + if ((f = fopen(s, "r")) != NULL) { + bzero(b + fread(b, 1, sizeof(b) - 2, f), 2); + fclose(f); + remove(s); + greet->name = b; + greet->password = strchr(b, 0) + 1; + return 0; + } + } XtSetArg (arglist[0], XtNallowAccess, False); XtSetValues (login, arglist, 1);