Créez un nouveau fichier /user/share/xsessions/default.desktop(le nom dépend de vous, mais il doit avoir le .desktopsuffixe):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Maintenant, lorsque vous sélectionnez cette session lightdmet vous connectez, votre ~/.xsessionfichier, s'il existe, sera exécuté.
Notez que le fichier de l'utilisateur qui est exécuté est ~/.xsession, et non ~/.xinitrc, ce qui a été mentionné dans la question. ( ~/.xinitrcest utilisé lorsque la session X est démarrée à l'aide du startxscript à partir d'une ligne de commande.)
Quelques explications: L' Nameentrée est ce lightdmqui s'afficherait pour cette session. L' Execentrée est la chose importante, et ce devrait être le nom du programme qui démarre la session proprement dite. Lorsque vous vous connectez, lightdmappelle le /etc/X11/Xsessionscript, lui transmet la valeur de Execcomme argument et Xsession, éventuellement, exécute ce programme (par exemple, il peut s'agir startxfce4du démarrage d'une xfce4session). Si l' Execentrée est la chaîne spéciale default, alors Xsessionexécutera le ~/.xsessionfichier de l'utilisateur . ( Xsessionserait également exécuté ~/.xsessions'il est appelé sans argument.)
Désolé, je suis nouveau ici et ne peux donc pas commenter les réponses des autres, mais je voudrais commenter la réponse acceptée, pour clarifier les choses. Selon mon explication ci-dessus, ce qui se passera avec la méthode de cette réponse est que ce Xsessionserait appelé par lightdmun argument qui est (le chemin complet de) Xsession. Alors Xessions'exécutera puis s'appellera, cette fois sans arguments. Le second Xsession, appelé sans argument, exécutera l'utilisateur ~/.xsession. Ainsi, l'action souhaitée sera finalement prise, mais de manière un peu maladroite.