Estou usando o KDM há algum tempo e tenho uma grande quantidade de perfis de login personalizados.
O KDM procura em /usr/share/xsessions
por um monte de arquivos .desktop, que informam qual aplicativo executar para gerar a sessão.
cat /usr/share/xsessions/awesomex.desktop
[Desktop Entry]
Encoding=UTF-8
Name=awesomex ( Extended )
Comment=Highly configurable framework window manager
Exec=/usr/bin/awesomex
Na minha máquina, /usr/bin/awesomex
é um script de inicialização do Xsession totalmente personalizado que gera awesomewm com alguns dos meus próprios programas.
A melhor parte disso é que o KDM se lembra de qual sessão eu usei da última vez e depois a reutiliza cada vez que eu faço login até que eu decida o contrário.
(Acredito que outros gerenciadores de login, talvez o GDM, também reconheçam esses arquivos, mas não tenho certeza)