After a recent switch to LXDM, I wondered where LXDM read its sessions from and how to edit them or add my own. The solution was not nicely documented as far as I could tell, but easy enough in the end.

LXDM finds what it needs in the .desktop files in the folder /usr/share/xsessions/ (This is on Arch Linux, YMMV). You can either add your own files in this folder or edit one of the ones present. Basic example of the structure of one of these files is as follows.

[Desktop Entry]
Encoding=UTF-8
Name=i3
Comment=improved dynamic tiling window manager
Exec=i3
Type=XSession

i3 and Openbox both seem to use XSession as the Type here, while GNOME and XFCE both have Application. The specification would suggest Application is the correct thing to use. Not that GNOME or XFCE will have a much bigger file with translations and all that, but this seems to be enough to get going.