Crie um novo arquivo /user/share/xsessions/default.desktop(o nome é seu, mas deve conter o .desktopsufixo):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Agora, quando você seleciona esta sessão lightdme efetua login, seu ~/.xsessionarquivo, se existir, será executado.
Observe que o arquivo do usuário que é executado é ~/.xsession, e não ~/.xinitrc, mencionado na pergunta. ( ~/.xinitrcé usado quando a sessão X é iniciada usando o startxscript em uma linha de comando.)
Algumas explicações: A Nameentrada é o que lightdmseria exibido para esta sessão. A Execentrada é importante e deve ser o nome do programa que inicia a sessão real. Quando você efetua login, lightdmchama o /etc/X11/Xsessionscript, passando o valor de Execcomo argumento e Xsession, eventualmente, executará este programa (por exemplo, poderia ser startxfce4para iniciar uma xfce4sessão). Se a Execentrada for a sequência especial default, Xsessiono ~/.xsessionarquivo do usuário será executado . ( Xsessiontambém seria executado ~/.xsessionse for chamado sem argumentos).
Desculpe, sou novo aqui e, portanto, não posso comentar as respostas de outras pessoas, mas gostaria de comentar a resposta aceita, para tornar as coisas mais claras. Conforme minha explicação acima, o que acontecerá com o método dessa resposta é que Xsessionseria chamado lightdmcom um argumento que é (o caminho completo de) Xsession. Então, Xessionserá executado e depois se chamará, desta vez sem argumentos. O segundo Xsession, sendo chamado sem argumentos, executará o usuário ~/.xsession. Portanto, a ação desejada será, eventualmente, tomada, mas de uma maneira um pouco estranha.